2013-10-01 03:25:52 +01:00
|
|
|
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
|
|
|
|
2013-10-09 09:08:50 +01:00
|
|
|
Shindo.tests('Compute::VcloudDirector | tasks', ['vclouddirector']) do
|
2014-06-18 21:09:34 +01:00
|
|
|
|
|
|
|
@service = Fog::Compute::VcloudDirector.new()
|
|
|
|
|
|
|
|
if Fog.mocking?
|
|
|
|
# add a bunch of tasks
|
|
|
|
50.times do
|
|
|
|
task_id = @service.enqueue_task(
|
2014-06-19 08:58:02 +01:00
|
|
|
"Bogus Task",
|
|
|
|
'BogusTaskName',
|
|
|
|
{
|
|
|
|
:href => 'https://example.com/api/bogus/12345678-1234-1234-1234-123456789012',
|
|
|
|
:name => 'Bogus object',
|
|
|
|
:type => 'application/vnd.vmware.vcloud.bogus+xml'
|
|
|
|
}
|
2014-06-18 21:09:34 +01:00
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
2013-10-01 03:25:52 +01:00
|
|
|
|
2013-10-09 09:08:50 +01:00
|
|
|
tasks = organization.tasks
|
|
|
|
pending if tasks.empty?
|
|
|
|
task = tasks.first
|
2013-10-01 03:25:52 +01:00
|
|
|
|
2013-10-09 09:08:50 +01:00
|
|
|
tests('Compute::VcloudDirector | task') do
|
|
|
|
tests('#href').returns(String) { task.href.class }
|
|
|
|
tests('#type').returns('application/vnd.vmware.vcloud.task+xml') { task.type }
|
|
|
|
tests('#id').returns(String) { task.id.class }
|
|
|
|
tests('#name').returns(String) { task.name.class }
|
|
|
|
tests('#status').returns(String) { task.status.class }
|
2014-09-23 22:41:22 +01:00
|
|
|
tests('#end_time').returns(Time) { task.end_time.class }
|
|
|
|
tests('#expiry_time').returns(Time) { task.expiry_time.class }
|
2013-10-09 09:08:50 +01:00
|
|
|
tests('#operation').returns(String) { task.operation.class }
|
|
|
|
tests('#operation_name').returns(String) { task.operation_name.class }
|
|
|
|
end
|
2013-10-01 03:25:52 +01:00
|
|
|
|
2013-10-09 09:08:50 +01:00
|
|
|
tests('Compute::VcloudDirector | task', ['get']) do
|
|
|
|
tests('#get_by_name').returns(task.name) { tasks.get_by_name(task.name).name }
|
|
|
|
tests('#get').returns(task.id) { tasks.get(task.id).id }
|
2013-10-01 03:25:52 +01:00
|
|
|
end
|
2014-06-19 08:27:33 +01:00
|
|
|
|
|
|
|
# We should also be able to find tasks via the Query API
|
2014-09-23 22:39:24 +01:00
|
|
|
# NB: Query name == task.operation_name
|
2014-06-19 08:27:33 +01:00
|
|
|
tests("Compute::VcloudDirector | tasks", ['find_by_query']) do
|
2014-09-23 22:39:24 +01:00
|
|
|
tests('we can retrieve :name without lazy loading').returns(task.operation_name) do
|
|
|
|
query_task = tasks.find_by_query(:filter => "name==#{task.operation_name}").first
|
2014-06-19 08:27:33 +01:00
|
|
|
query_task.attributes[:name]
|
|
|
|
end
|
2014-09-23 22:39:24 +01:00
|
|
|
tests('by name').returns(task.operation_name) do
|
|
|
|
query_task = tasks.find_by_query(:filter => "name==#{task.operation_name}").first
|
2014-06-19 08:27:33 +01:00
|
|
|
query_task.name
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-10-01 03:25:52 +01:00
|
|
|
end
|