---
src/app/models/instance.rb | 3 ++-
src/task-omatic/taskomatic_instance.rb | 9 +++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/app/models/instance.rb b/src/app/models/instance.rb
index 4ce0459..582b1b8 100644
--- a/src/app/models/instance.rb
+++ b/src/app/models/instance.rb
@@ -24,10 +24,11 @@ class Instance < ActiveRecord::Base
STATE_RUNNING = "running"
STATE_SHUTTING_DOWN = "shutting_down"
STATE_STOPPED = "stopped"
+ STATE_CREATE_FAILED = "create_failed"
validates_inclusion_of :state,
:in => [STATE_NEW, STATE_PENDING, STATE_RUNNING,
- STATE_SHUTTING_DOWN, STATE_STOPPED]
+ STATE_SHUTTING_DOWN, STATE_STOPPED, STATE_CREATE_FAILED]
def get_action_list(user=nil)
# return empty list rather than nil
diff --git a/src/task-omatic/taskomatic_instance.rb
b/src/task-omatic/taskomatic_instance.rb
index 216bb53..324f3fc 100644
--- a/src/task-omatic/taskomatic_instance.rb
+++ b/src/task-omatic/taskomatic_instance.rb
@@ -46,11 +46,16 @@ 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}"
+ @logger.info "Creating instance with name #{(a)task.instance.image.external_key},
flavor #{(a)task.instance.flavor.external_key}, realm #{(a)task.instance.realm.external_key},
name #{(a)task.instance.name}"
dcloud_instance = client.create_instance((a)task.instance.image.external_key,
:flavor =>
@task.instance.flavor.external_key,
:realm =>
@task.instance.realm.external_key,
:name => @task.instance.name)
+ if dcloud_instance.class == Net::HTTPInternalServerError
+ @task.instance.state = Instance::STATE_CREATE_FAILED
+ raise "Error creating dcloud instance, returned internal server error."
+ end
+
@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_to_instance_state(dcloud_instance.state)
@@ -130,7 +135,7 @@ class TaskomaticInstanceStop < TaskomaticTask
@task.instance.state = dcloud_to_instance_state(dcloud_instance.state)
@task.instance.save!
- @logger.info("Instance started.")
+ @logger.info("Instance stopped.")
end
end
--
1.6.2.5
Show replies by date