+
+ def set_started(self):
+ """ Mark ResourceManager as STARTED """
+ self.set_state(ResourceState.STARTED, "_start_time")
+
+ def set_stopped(self):
+ """ Mark ResourceManager as STOPPED """
+ self.set_state(ResourceState.STOPPED, "_stop_time")
+
+ def set_ready(self):
+ """ Mark ResourceManager as READY """
+ self.set_state(ResourceState.READY, "_ready_time")
+
+ def set_released(self):
+ """ Mark ResourceManager as REALEASED """
+ self.set_state(ResourceState.RELEASED, "_release_time")
+
+ def set_finished(self):
+ """ Mark ResourceManager as FINISHED """
+ self.set_state(ResourceState.FINISHED, "_finish_time")
+
+ def set_failed(self):
+ """ Mark ResourceManager as FAILED """
+ self.set_state(ResourceState.FAILED, "_failed_time")
+
+ def set_discovered(self):
+ """ Mark ResourceManager as DISCOVERED """
+ self.set_state(ResourceState.DISCOVERED, "_discover_time")
+
+ def set_provisioned(self):
+ """ Mark ResourceManager as PROVISIONED """
+ self.set_state(ResourceState.PROVISIONED, "_provision_time")
+
+ def set_state(self, state, state_time_attr):
+ # Ensure that RM state will not change after released
+ if self._state == ResourceState.RELEASED:
+ return
+
+ setattr(self, state_time_attr, tnow())
+ self._state = state