mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
13ed21eaa5
- 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
58 lines
1.4 KiB
Ruby
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
|