--- src/task-omatic/taskomatic.rb | 18 +++++++++--------- src/task-omatic/taskomatic_instance.rb | 24 +++++++++++++++++++++++- 2 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/src/task-omatic/taskomatic.rb b/src/task-omatic/taskomatic.rb index 29e0358..3357815 100755 --- a/src/task-omatic/taskomatic.rb +++ b/src/task-omatic/taskomatic.rb @@ -53,7 +53,7 @@ class TaskOmatic def initialize() super()
- @sleeptime = 2 + @sleeptime = 20 @nth_host = 0
do_daemon = true @@ -132,15 +132,15 @@ class TaskOmatic state = Task::STATE_FINISHED begin case task.action - when InstanceTask::CREATE + when InstanceTask::ACTION_CREATE tasko_task = TaskomaticInstanceCreate.new(@logger, task) - when InstanceTask::START + when InstanceTask::ACTION_START tasko_task = TaskomaticInstanceStart.new(@logger, task) - when InstanceTask::STOP + when InstanceTask::ACTION_STOP tasko_task = TaskomaticInstanceStop.new(@logger, task) - when InstanceTask::REBOOT + when InstanceTask::ACTION_REBOOT tasko_task = TaskomaticInstanceReboot.new(@logger, task) - when InstanceTask::DESTROY + when InstanceTask::ACTION_DESTROY tasko_task = TaskomaticInstanceDestroy.new(@logger, task) else @logger.error "unknown task " + task.action @@ -159,10 +159,10 @@ class TaskOmatic task.message = ex.message end
- task.state = state - task.time_ended = Time.now + #task.state = state + #task.time_ended = Time.now begin - task.save! + #task.save! rescue Exception => ex @logger.error "Error saving task state for task #{task.id}: #{ex.class}: #{ex.message}" @logger.error ex.backtrace diff --git a/src/task-omatic/taskomatic_instance.rb b/src/task-omatic/taskomatic_instance.rb index c9d16ab..60eeadf 100644 --- a/src/task-omatic/taskomatic_instance.rb +++ b/src/task-omatic/taskomatic_instance.rb @@ -28,7 +28,29 @@ class TaskomaticInstanceCreate < TaskomaticTask
def run client = @task.instance.portal_pool.cloud_account.connect - instance = client.create_instance(@task.instance.image.name) + dcloud_instance = client.create_instance(@task.instance.image.name) + dcloud_instance.methods.sort.each do |method| + puts "method is #{method}" + end + #@logger.info "Instance created with state #{dcloud_instance[:state]}" + @task.instance.external_key = dcloud_instance.id + @task.instance.state = dcloud_instance[:state] + @task.instance.save! + + while instance[:state] == 'PENDING' + instance = client.instance(@task.instance.external_key) + sleep(5) + end + + @task.instance.state = instance.state + @task.instance.save! + + # Instance::STATE_NEW + # Instance::STATE_PENDING + # Instance::STATE_RUNNING + # Instance::STATE_SHUTTING_DOWN + # Instance::STATE_STOPPED + @logger.info("New instance created.") end end
--- src/task-omatic/taskomatic_instance.rb | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/src/task-omatic/taskomatic_instance.rb b/src/task-omatic/taskomatic_instance.rb index 60eeadf..6899997 100644 --- a/src/task-omatic/taskomatic_instance.rb +++ b/src/task-omatic/taskomatic_instance.rb @@ -28,21 +28,22 @@ class TaskomaticInstanceCreate < TaskomaticTask
def run client = @task.instance.portal_pool.cloud_account.connect - dcloud_instance = client.create_instance(@task.instance.image.name) - dcloud_instance.methods.sort.each do |method| - puts "method is #{method}" - end - #@logger.info "Instance created with state #{dcloud_instance[:state]}" + 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}" + dcloud_instance = client.create_instance(@task.instance.image.external_key, + :flavor => @task.instance.flavor.name, + :realm => @task.instance.realm.name) + @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_instance.state @task.instance.save!
- while instance[:state] == 'PENDING' - instance = client.instance(@task.instance.external_key) + while dcloud_instance.state == 'PENDING' + dcloud_instance = client.instance(@task.instance.external_key) sleep(5) end
- @task.instance.state = instance.state + @task.instance.state = dcloud_instance.state @task.instance.save!
# Instance::STATE_NEW
--- src/task-omatic/taskomatic.rb | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/task-omatic/taskomatic.rb b/src/task-omatic/taskomatic.rb index 3357815..5c019a9 100755 --- a/src/task-omatic/taskomatic.rb +++ b/src/task-omatic/taskomatic.rb @@ -53,7 +53,7 @@ class TaskOmatic def initialize() super()
- @sleeptime = 20 + @sleeptime = 5 @nth_host = 0
do_daemon = true @@ -159,10 +159,10 @@ class TaskOmatic task.message = ex.message end
- #task.state = state - #task.time_ended = Time.now + task.state = state + task.time_ended = Time.now begin - #task.save! + task.save! rescue Exception => ex @logger.error "Error saving task state for task #{task.id}: #{ex.class}: #{ex.message}" @logger.error ex.backtrace
deltacloud-devel@lists.fedorahosted.org