---
src/task-omatic/taskomatic_instance.rb | 23 ++++++++++++++++++-----
1 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/task-omatic/taskomatic_instance.rb
b/src/task-omatic/taskomatic_instance.rb
index 6899997..dcb9e6b 100644
--- a/src/task-omatic/taskomatic_instance.rb
+++ b/src/task-omatic/taskomatic_instance.rb
@@ -18,6 +18,19 @@
require 'taskomatic_task'
+def dcloud_to_instance_state(state_str)
+ case state_str
+ when 'PENDING'
+ return InstanceTask::STATE_PENDING
+ when 'RUNNING'
+ return InstanceTask::STATE_RUNNING
+ when 'STOPPED'
+ return InstanceTask::STATE_STOPPED
+ else
+ return InstanceTask::STATE_PENDING
+ end
+end
+
# Create a new instance on a cloud.
class TaskomaticInstanceCreate < TaskomaticTask
@@ -30,12 +43,12 @@ class TaskomaticInstanceCreate < TaskomaticTask
client = @task.instance.portal_pool.cloud_account.connect
puts "client is #{client.type}"
@logger.info "Creating instance with name #{(a)task.instance.image.external_key},
flavor #{(a)task.instance.flavor.name}, realm #{(a)task.instance.realm.name}"
- dcloud_instance = client.create_instance((a)task.instance.image.external_key,
- :flavor => @task.instance.flavor.name,
- :realm => @task.instance.realm.name)
+ dcloud_instance = client.create_instance((a)task.instance.image.external_key)
+ #:flavor =>
@task.instance.image.external_key,
+ #:realm =>
@task.instance.image.external_key)
@logger.info "Instance created with key #{dcloud_instance.id} and state
#{dcloud_instance.state}"
@task.instance.external_key = dcloud_instance.id
- @task.instance.state = dcloud_instance.state
+ @task.instance.state = dcloud_to_instance_state(dcloud_instance.state)
@task.instance.save!
while dcloud_instance.state == 'PENDING'
@@ -43,7 +56,7 @@ class TaskomaticInstanceCreate < TaskomaticTask
sleep(5)
end
- @task.instance.state = dcloud_instance.state
+ @task.instance.state = dcloud_to_instance_state(dcloud_instance.state)
@task.instance.save!
# Instance::STATE_NEW
--
1.6.2.5
Show replies by date