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/terremark/models/shared/tasks.rb
geemus b554eb0bb4 Revert "move vcloud models to its directory since the format is common to both"
Conflicts with work freeformz is doing, reverting in favor of those changes for now.

This reverts commit 9907d4ed59.
2010-05-17 20:57:13 -07:00

58 lines
1.3 KiB
Ruby

require 'fog/collection'
require 'fog/terremark/models/shared/server'
module Fog
module Terremark
module Shared
module Mock
def tasks
Fog::Terremark::Shared::Tasks.new(:connection => self)
end
end
module Real
def tasks
Fog::Terremark::Shared::Tasks.new(:connection => self)
end
end
class Tasks < Fog::Collection
model Fog::Terremark::Shared::Task
def all
data = connection.get_tasks_list(task_list_id).body['Tasks']
load(data)
end
def get(task_id)
if task_id && task = connection.get_task(task_id).body
new(task)
elsif !task_id
nil
end
rescue Excon::Errors::Forbidden
nil
end
def task_list_id
@task_list_id ||=
if connection.default_organization_id && organization = connection.get_organization(connection.default_organization_id).body
organization['Links'].detect {|link| link['type'] == 'application/vnd.vmware.vcloud.tasksList+xml'}['href'].split('/').last.to_i
else
nil
end
end
private
def task_list_id=(new_task_list_id)
@task_list_id = new_task_list_id
end
end
end
end
end