1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/vcloud_director/models/compute/task.rb
Nick Osborn 13ed21eaa5 [vcloud_director] Improve support for Tasks.
- add Organization#tasks
- add Task#cancel
- rename Task#expirity_time to expiry_time
- Task#progress is an integer
- add missing Task#start_time
- expose Task attributes introduced in 5.1 API
2013-09-10 18:07:36 +01:00

58 lines
1.4 KiB
Ruby

require 'fog/core/model'
module Fog
module Compute
class VcloudDirector
class Task < Fog::Model
identity :id
attribute :name
attribute :type
attribute :href
attribute :status
attribute :operation
attribute :operation_name, :aliases => :operationName
attribute :expiry_time, :aliases => :expiryTime, :type => :time
attribute :end_time, :aliases => :endTime, :type => :time
attribute :start_time, :aliases => :startTime, :type => :time
attribute :error, :aliases => :Error
attribute :result, :aliases => :Result
attribute :progress, :aliases => :Progress, :type => :integer
# Since 5.1
attribute :operation_key, :aliases => :operationKey
attribute :cancel_requested, :aliases => :cancelRequested, :type => :boolean
attribute :service_namespace, :aliases => :serviceNamespace
def ready?
status == 'success'
end
def success?
status == 'success'
end
def non_running?
if status == 'running'
if progress.to_i == 0
printf '.'
else
print " #{progress} %\r"
end
else
puts " #{status}"
end
status != 'running'
end
def cancel
service.post_task_cancel(id)
end
end
end
end
end