+ def do_discover(self):
+ self.set_discovered()
+
+ def do_provision(self):
+ self.set_provisioned()
+
+ def do_start(self):
+ self.set_started()
+
+ def do_stop(self):
+ self.set_stopped()
+
+ def do_deploy(self):
+ self.set_ready()
+
+ def do_release(self):
+ self.set_released()
+
+ def do_fail(self):
+ self.set_failed()
+
+ def set_started(self):
+ """ Mark ResourceManager as STARTED """
+ self.set_state(ResourceState.STARTED, "_start_time")
+ self.debug("----- STARTED ---- ")
+
+ def set_stopped(self):
+ """ Mark ResourceManager as STOPPED """
+ self.set_state(ResourceState.STOPPED, "_stop_time")
+ self.debug("----- STOPPED ---- ")
+
+ def set_ready(self):
+ """ Mark ResourceManager as READY """
+ self.set_state(ResourceState.READY, "_ready_time")
+ self.debug("----- READY ---- ")
+
+ def set_released(self):
+ """ Mark ResourceManager as REALEASED """
+ self.set_state(ResourceState.RELEASED, "_release_time")
+ self.debug("----- RELEASED ---- ")
+
+ def set_failed(self):
+ """ Mark ResourceManager as FAILED """
+ self.set_state(ResourceState.FAILED, "_failed_time")
+ self.debug("----- FAILED ---- ")
+
+ def set_discovered(self):
+ """ Mark ResourceManager as DISCOVERED """
+ self.set_state(ResourceState.DISCOVERED, "_discover_time")
+ self.debug("----- DISCOVERED ---- ")
+
+ def set_provisioned(self):
+ """ Mark ResourceManager as PROVISIONED """
+ self.set_state(ResourceState.PROVISIONED, "_provision_time")
+ self.debug("----- PROVISIONED ---- ")
+
+ def set_state(self, state, state_time_attr):
+ """ Set the state of the RM while keeping a trace of the time """
+
+ # Ensure that RM state will not change after released
+ if self._state == ResourceState.RELEASED:
+ return
+
+ setattr(self, state_time_attr, tnow())
+ self._state = state
+