Power state is the state we get by calling virt driver on a particular domain. The hypervisor is always considered the authority on the status of a particular VM, and the power_state in the DB should be viewed as a snapshot of the VMs’s state in the (recent) past. It can be periodically updated, and should also be updated at the end of a task if the task is supposed to affect power_state.