The amount of cut/paste coding going on is high here but I'll fix it later. --- src/task-omatic/taskomatic_instance.rb | 38 +++++++++++++++++++++++++++++++- 1 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/src/task-omatic/taskomatic_instance.rb b/src/task-omatic/taskomatic_instance.rb index 171112c..05186e3 100644 --- a/src/task-omatic/taskomatic_instance.rb +++ b/src/task-omatic/taskomatic_instance.rb @@ -110,7 +110,7 @@ class TaskomaticInstanceStop < TaskomaticTask end
def run - @logger.info("TaskomaticInstanceStart running.") + @logger.info("TaskomaticInstanceStop running.")
client = @task.instance.portal_pool.cloud_account.connect dcloud_instance = client.instance(@task.instance.external_key) @@ -140,6 +140,24 @@ class TaskomaticInstanceReboot < TaskomaticTask end
def run + @logger.info("TaskomaticInstanceReboot running.") + + client = @task.instance.portal_pool.cloud_account.connect + dcloud_instance = client.instance(@task.instance.external_key) + dcloud_instance.reboot! + + @task.instance.state = dcloud_to_instance_state(dcloud_instance.state) + @task.instance.save! + + while dcloud_instance.state == 'PENDING' or dcloud_instance.state == "SHUTTING_DOWN" + sleep(5) + dcloud_instance = client.instance(@task.instance.external_key) + end + + @task.instance.state = dcloud_to_instance_state(dcloud_instance.state) + @task.instance.save! + + @logger.info("Reboot completed.") end end
@@ -152,5 +170,23 @@ class TaskomaticInstanceDestroy < TaskomaticTask end
def run + @logger.info("TaskomaticInstanceDestroy running.") + + client = @task.instance.portal_pool.cloud_account.connect + dcloud_instance = client.instance(@task.instance.external_key) + dcloud_instance.destroy! + + @task.instance.state = dcloud_to_instance_state(dcloud_instance.state) + @task.instance.save! + + while dcloud_instance.state == 'PENDING' or dcloud_instance.state == "SHUTTING_DOWN" + sleep(5) + dcloud_instance = client.instance(@task.instance.external_key) + end + + @task.instance.state = dcloud_to_instance_state(dcloud_instance.state) + @task.instance.save! + + @logger.info("Destroy completed.") end end
deltacloud-devel@lists.fedorahosted.org