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

59 lines
1.7 KiB
Ruby

require 'fog/core/model'
module Fog
module Compute
class VcloudDirector
class Task < Fog::Model
identity :id
attribute :href
attribute :type
attribute :name
attribute :end_time, :aliases => :endTime, :type => :time
attribute :expiry_time, :aliases => :expiryTime, :type => :time
attribute :operation
attribute :operation_name, :aliases => :operationName
attribute :start_time, :aliases => :startTime, :type => :time
attribute :status
attribute :description, :aliases => :Description
attribute :error, :aliases => :Error
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
attribute :details, :aliases => :Details
def ready?
status == 'success'
end
def success?
status == 'success'
end
def non_running?
if @service.show_progress? && (@last_progress ||= 0) < 100
if status == 'running'
Formatador.redisplay_progressbar(progress, 100, :label => operation_name, :started_at => start_time)
@last_progress = progress
elsif status == 'success'
Formatador.redisplay_progressbar(100, 100, :label => operation_name, :started_at => start_time)
@last_progress = 100
end
end
status != 'running'
end
def cancel
service.post_cancel_task(id)
end
end
end
end
end