--- 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 #{@task.instance.image.external_key}, flavor #{@task.instance.flavor.name}, realm #{@task.instance.realm.name}" + @logger.info "Creating instance with name #{@task.instance.image.external_key}, flavor #{@task.instance.flavor.external_key}, realm #{@task.instance.realm.external_key}, name #{@task.instance.name}" dcloud_instance = client.create_instance(@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
deltacloud-devel@lists.fedorahosted.org