fog 1.16.0 → 1.17.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +6 -0
- data/README.md +25 -0
- data/changelog.txt +108 -0
- data/fog.gemspec +7 -5
- data/lib/fog/aws.rb +8 -2
- data/lib/fog/aws/cloud_formation.rb +0 -1
- data/lib/fog/aws/compute.rb +1 -1
- data/lib/fog/aws/elb.rb +0 -1
- data/lib/fog/aws/iam.rb +4 -1
- data/lib/fog/aws/models/iam/access_key.rb +5 -1
- data/lib/fog/aws/models/iam/access_keys.rb +0 -1
- data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +2 -1
- data/lib/fog/aws/parsers/storage/get_bucket_tagging.rb +37 -0
- data/lib/fog/aws/requests/compute/copy_image.rb +1 -1
- data/lib/fog/aws/requests/compute/describe_reserved_instances.rb +1 -0
- data/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb +1 -0
- data/lib/fog/aws/requests/iam/create_access_key.rb +22 -15
- data/lib/fog/aws/requests/iam/list_access_keys.rb +15 -11
- data/lib/fog/aws/requests/iam/update_access_key.rb +22 -0
- data/lib/fog/aws/requests/storage/delete_bucket_tagging.rb +46 -0
- data/lib/fog/aws/requests/storage/get_bucket_tagging.rb +53 -0
- data/lib/fog/aws/requests/storage/put_bucket_tagging.rb +60 -0
- data/lib/fog/aws/storage.rb +32 -19
- data/lib/fog/brightbox/models/compute/load_balancer.rb +47 -2
- data/lib/fog/core/logger.rb +4 -5
- data/lib/fog/core/service.rb +1 -1
- data/lib/fog/google/README.md +2 -2
- data/lib/fog/google/compute.rb +2 -1
- data/lib/fog/google/examples/bootstrap.rb +1 -1
- data/lib/fog/google/examples/get_list_images.rb +1 -2
- data/lib/fog/google/examples/network.rb +2 -0
- data/lib/fog/google/models/compute/disk.rb +23 -0
- data/lib/fog/google/models/compute/snapshot.rb +1 -0
- data/lib/fog/google/requests/compute/insert_server.rb +1 -1
- data/lib/fog/google/requests/compute/insert_snapshot.rb +49 -0
- data/lib/fog/google/storage.rb +54 -29
- data/lib/fog/hp.rb +0 -4
- data/lib/fog/hp/block_storage.rb +2 -2
- data/lib/fog/hp/cdn.rb +2 -2
- data/lib/fog/hp/compute.rb +2 -2
- data/lib/fog/hp/storage.rb +3 -3
- data/lib/fog/linode/compute.rb +1 -1
- data/lib/fog/linode/dns.rb +1 -1
- data/lib/fog/rackspace/block_storage.rb +0 -2
- data/lib/fog/vcloud_director/compute.rb +76 -2
- data/lib/fog/vcloud_director/generators/compute/{edge_gateway.rb → edge_gateway_service_configuration.rb} +2 -1
- data/lib/fog/vcloud_director/requests/compute/delete_disk.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/delete_media.rb +82 -2
- data/lib/fog/vcloud_director/requests/compute/get_disk.rb +99 -1
- data/lib/fog/vcloud_director/requests/compute/get_disk_owner.rb +45 -0
- data/lib/fog/vcloud_director/requests/compute/get_edge_gateway.rb +33 -19
- data/lib/fog/vcloud_director/requests/compute/get_media.rb +75 -4
- data/lib/fog/vcloud_director/requests/compute/get_media_owner.rb +34 -4
- data/lib/fog/vcloud_director/requests/compute/get_task.rb +122 -3
- data/lib/fog/vcloud_director/requests/compute/get_task_list.rb +80 -37
- data/lib/fog/vcloud_director/requests/compute/{get_vms_disks_attached_to.rb → get_vms_disk_attached_to.rb} +16 -2
- data/lib/fog/vcloud_director/requests/compute/post_cancel_task.rb +18 -0
- data/lib/fog/vcloud_director/requests/compute/post_clone_media.rb +52 -1
- data/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb +14 -2
- data/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb +2 -2
- data/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb +133 -0
- data/lib/fog/vcloud_director/requests/compute/post_upload_media.rb +48 -4
- data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +103 -26
- data/lib/fog/vcloud_director/requests/compute/put_network_connection_system_section_vapp.rb +90 -32
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +29 -14
- data/lib/fog/vsphere/models/compute/server.rb +18 -6
- data/lib/fog/vsphere/requests/compute/create_vm.rb +1 -0
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +2 -9
- data/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb +2 -2
- data/lib/fog/xenserver/requests/compute/create_server.rb +1 -1
- data/tests/aws/requests/compute/instance_tests.rb +1 -0
- data/tests/aws/requests/storage/bucket_tests.rb +19 -3
- data/tests/brightbox/compute/schema.rb +1 -0
- data/tests/core/credential_tests.rb +7 -1
- data/tests/core/parser_tests.rb +1 -1
- data/tests/rackspace/block_storage_tests.rb +1 -1
- data/tests/rackspace/cdn_tests.rb +1 -1
- data/tests/rackspace/compute_tests.rb +1 -1
- data/tests/rackspace/compute_v2_tests.rb +1 -1
- data/tests/rackspace/databases_tests.rb +1 -1
- data/tests/rackspace/dns_tests.rb +1 -1
- data/tests/rackspace/load_balancer_tests.rb +1 -1
- data/tests/rackspace/storage_tests.rb +1 -1
- data/tests/vcloud_director/ensure_list_tests.rb +30 -2
- data/tests/vcloud_director/requests/compute/disk_tests.rb +160 -5
- data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +59 -1
- data/tests/vcloud_director/requests/compute/helper.rb +5 -1
- data/tests/vcloud_director/requests/compute/media_tests.rb +109 -99
- data/tests/vcloud_director/requests/compute/schema_helper.rb +15 -2
- data/tests/vcloud_director/requests/compute/task_tests.rb +21 -6
- metadata +27 -21
@@ -25,7 +25,57 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector
|
|
25
25
|
end
|
26
26
|
|
27
27
|
tests('#get_edge_gateway').data_matches_schema(VcloudDirector::Compute::Schema::GATEWAY_TYPE) do
|
28
|
-
@
|
28
|
+
@edge_gateway_id = @edge_gateways[:EdgeGatewayRecord].first[:href].split('/').last
|
29
|
+
@edge_gateway_configuration = @service.get_edge_gateway(@edge_gateway_id).body
|
30
|
+
end
|
31
|
+
|
32
|
+
tests('#post_configure_edge_gateway_services') do
|
33
|
+
@new_edge_gateway_configuration = {
|
34
|
+
:FirewallService =>
|
35
|
+
{
|
36
|
+
:IsEnabled => "true",
|
37
|
+
:DefaultAction => "allow",
|
38
|
+
:LogDefaultAction => "false",
|
39
|
+
:FirewallRule => [
|
40
|
+
{
|
41
|
+
:IsEnabled => "false",
|
42
|
+
:MatchOnTranslate => "false",
|
43
|
+
:Id => "1000",
|
44
|
+
:Policy => "drop",
|
45
|
+
:Description => "description",
|
46
|
+
:Protocols => {
|
47
|
+
:Tcp => "true"
|
48
|
+
},
|
49
|
+
:Port => "3412",
|
50
|
+
:DestinationPortRange => "3412",
|
51
|
+
:DestinationIp => "internal",
|
52
|
+
:SourcePort => "3412",
|
53
|
+
:SourceIp => "internal",
|
54
|
+
:SourcePortRange => "3412",
|
55
|
+
:EnableLogging => "false"
|
56
|
+
}
|
57
|
+
]
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
response = @service.post_configure_edge_gateway_services(@edge_gateway_id, @new_edge_gateway_configuration)
|
62
|
+
@service.process_task(response.body) unless Fog.mocking?
|
63
|
+
end
|
64
|
+
|
65
|
+
tests('#check for new firewall rule').returns(@new_edge_gateway_configuration[:FirewallService][:FirewallRule]) do
|
66
|
+
edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body
|
67
|
+
|
68
|
+
edge_gateway[:Configuration][:EdgeGatewayServiceConfiguration][:FirewallService][:FirewallRule]
|
69
|
+
end
|
70
|
+
|
71
|
+
tests('#remove the firewall rule added by test').returns(nil) do
|
72
|
+
response = @service.post_configure_edge_gateway_services(@edge_gateway_id,
|
73
|
+
@edge_gateway_configuration[:Configuration][:EdgeGatewayServiceConfiguration])
|
74
|
+
|
75
|
+
@service.process_task(response.body) unless Fog.mocking?
|
76
|
+
|
77
|
+
edge_gateway = @service.get_edge_gateway(@edge_gateway_id).body
|
78
|
+
edge_gateway[:Configuration][:EdgeGatewayServiceConfiguration][:FirewallService][:FirewallRule].find { |rule| rule[:Id] == '1000' }
|
29
79
|
end
|
30
80
|
|
31
81
|
tests('Retrieve non-existent edge gateway').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
@@ -36,4 +86,12 @@ Shindo.tests('Compute::VcloudDirector | edge gateway requests', ['vclouddirector
|
|
36
86
|
end
|
37
87
|
end
|
38
88
|
|
89
|
+
tests('Configure non-existent edge gateway').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
90
|
+
begin
|
91
|
+
@service.post_configure_edge_gateway_services('00000000-0000-0000-0000-000000000000', {})
|
92
|
+
rescue Fog::Compute::VcloudDirector::Unauthorized # bug, may be localised
|
93
|
+
retry
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
39
97
|
end
|
@@ -11,11 +11,15 @@ class VcloudDirector
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.current_org(service)
|
14
|
+
service.get_organization(current_org_id(service)).body
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.current_org_id(service)
|
14
18
|
session = service.get_current_session.body
|
15
19
|
link = session[:Link].detect do |l|
|
16
20
|
l[:type] == 'application/vnd.vmware.vcloud.org+xml'
|
17
21
|
end
|
18
|
-
|
22
|
+
link[:href].split('/').last
|
19
23
|
end
|
20
24
|
|
21
25
|
def self.first_vdc_id(org)
|
@@ -1,31 +1,60 @@
|
|
1
1
|
Shindo.tests('Compute::VcloudDirector | media requests', ['vclouddirector']) do
|
2
2
|
|
3
3
|
@service = Fog::Compute::VcloudDirector.new
|
4
|
+
|
5
|
+
tests('error conditions') do
|
6
|
+
tests('#post_upload_media') do
|
7
|
+
tests('Invalid image_type').raises(Fog::Compute::VcloudDirector::BadRequest) do
|
8
|
+
@service.post_upload_media('00000000-0000-0000-0000-000000000000', 'test.iso', 'isox', 0)
|
9
|
+
end
|
10
|
+
tests('Invalid size').raises(Fog::Compute::VcloudDirector::BadRequest) do
|
11
|
+
@service.post_upload_media('00000000-0000-0000-0000-000000000000', 'test.iso', 'iso', -1)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
tests('Upload to non-existent vDC').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
15
|
+
@service.post_upload_media('00000000-0000-0000-0000-000000000000', 'test.iso', 'iso', 0)
|
16
|
+
end
|
17
|
+
tests('Retrieve non-existent Media').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
18
|
+
@service.get_media('00000000-0000-0000-0000-000000000000')
|
19
|
+
end
|
20
|
+
tests('Retrieve owner of non-existent Media').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
21
|
+
@service.get_media_owner('00000000-0000-0000-0000-000000000000')
|
22
|
+
end
|
23
|
+
tests('Delete non-existent Media').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
24
|
+
@service.delete_media('00000000-0000-0000-0000-000000000000')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
4
28
|
@org = VcloudDirector::Compute::Helper.current_org(@service)
|
5
29
|
@media_name = VcloudDirector::Compute::Helper.test_name
|
6
30
|
|
7
31
|
tests('Upload and manipulate a media object') do
|
8
|
-
pending if Fog.mocking?
|
9
|
-
|
10
32
|
File.open(VcloudDirector::Compute::Helper.fixture('test.iso'), 'rb') do |iso|
|
11
33
|
tests('#post_upload_media').data_matches_schema(VcloudDirector::Compute::Schema::MEDIA_TYPE) do
|
12
34
|
@vdc_id = VcloudDirector::Compute::Helper.first_vdc_id(@org)
|
13
|
-
@
|
35
|
+
@size = File.size(iso.path)
|
36
|
+
@media = @service.post_upload_media(@vdc_id, @media_name, 'iso', @size).body
|
14
37
|
end
|
15
38
|
|
16
|
-
tests('media object has
|
17
|
-
@
|
39
|
+
tests('media object has exactly one file').returns(true) do
|
40
|
+
@media[:Files][:File].size == 1
|
41
|
+
end
|
42
|
+
|
43
|
+
tests('media object file has an upload link').returns(true) do
|
44
|
+
@link = @media[:Files][:File].first[:Link]
|
18
45
|
@link[:rel] == 'upload:default'
|
19
46
|
end
|
20
47
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
48
|
+
unless Fog.mocking?
|
49
|
+
headers = {
|
50
|
+
'Content-Length' => @size,
|
51
|
+
'Content-Type' => 'application/octet-stream',
|
52
|
+
'x-vcloud-authorization' => @service.vcloud_token
|
53
|
+
}
|
54
|
+
Excon.put(
|
55
|
+
@link[:href], :body => iso.read, :expects => 200, :headers => headers
|
56
|
+
)
|
57
|
+
end
|
29
58
|
|
30
59
|
@service.process_task(@media[:Tasks][:Task])
|
31
60
|
@media_id = @media[:href].split('/').last
|
@@ -35,81 +64,85 @@ Shindo.tests('Compute::VcloudDirector | media requests', ['vclouddirector']) do
|
|
35
64
|
end
|
36
65
|
tests("media[:name]").returns(@media_name) { @media[:name] }
|
37
66
|
tests("media[:imageType]").returns('iso') { @media[:imageType] }
|
38
|
-
tests("media[:size]").returns(
|
67
|
+
tests("media[:size]").returns(@size) { @media[:size].to_i }
|
39
68
|
|
40
69
|
tests("#get_media_owner(#{@media_id})").data_matches_schema(VcloudDirector::Compute::Schema::OWNER_TYPE) do
|
41
70
|
@owner = @service.get_media_owner(@media_id).body
|
42
71
|
end
|
43
72
|
tests("owner[:User][:name]").returns(@service.user_name) { @owner[:User][:name] }
|
44
73
|
|
45
|
-
tests(
|
46
|
-
|
47
|
-
end
|
48
|
-
@service.process_task(@task)
|
74
|
+
tests('media metadata') do
|
75
|
+
pending if Fog.mocking?
|
49
76
|
|
50
|
-
|
51
|
-
|
52
|
-
task = @service.put_media_metadata_item_metadata(@media_id, 'fog-test-boolean', true).body
|
53
|
-
@service.process_task(task)
|
77
|
+
tests("#put_media_metadata_item_metadata(#{@media_id})").data_matches_schema(VcloudDirector::Compute::Schema::TASK_TYPE) do
|
78
|
+
@task = @service.put_media_metadata_item_metadata(@media_id, 'fog-test-key', 'fog-test-value').body
|
54
79
|
end
|
55
|
-
|
56
|
-
task = @service.put_media_metadata_item_metadata(@media_id, 'fog-test-datetime', DateTime.now).body
|
57
|
-
@service.process_task(task)
|
58
|
-
end
|
59
|
-
tests("#put_media_metadata_item_metadata(Number)").returns(true) do
|
60
|
-
task = @service.put_media_metadata_item_metadata(@media_id, 'fog-test-number', 111).body
|
61
|
-
@service.process_task(task)
|
62
|
-
end
|
63
|
-
end
|
80
|
+
@service.process_task(@task)
|
64
81
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
'fog-test-datetime-update' => DateTime.now,
|
70
|
-
'fog-test-number-update' => 222
|
71
|
-
}
|
72
|
-
@task = @service.post_update_media_metadata(@media_id, metadata).body
|
73
|
-
end
|
74
|
-
@service.process_task(@task)
|
75
|
-
|
76
|
-
tests("#get_media_metadata(#{@media_id})") do
|
77
|
-
tests('response format').data_matches_schema(VcloudDirector::Compute::Schema::METADATA_TYPE) do
|
78
|
-
@metadata = @service.get_media_metadata(@media_id).body
|
79
|
-
end
|
80
|
-
tests('TypedValue') do
|
81
|
-
pending if @service.api_version.to_f < 5.1
|
82
|
-
tests('key').returns('MetadataStringValue') do
|
83
|
-
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-key'}
|
84
|
-
entry[:TypedValue][:xsi_type]
|
85
|
-
end
|
86
|
-
tests('boolean').returns('MetadataBooleanValue') do
|
87
|
-
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-boolean'}
|
88
|
-
entry[:TypedValue][:xsi_type]
|
89
|
-
end
|
90
|
-
tests('datetime').returns('MetadataDateTimeValue') do
|
91
|
-
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-datetime'}
|
92
|
-
entry[:TypedValue][:xsi_type]
|
93
|
-
end
|
94
|
-
tests('number').returns('MetadataNumberValue') do
|
95
|
-
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-number'}
|
96
|
-
entry[:TypedValue][:xsi_type]
|
82
|
+
tests("#put_media_metadata_item_metadata(#{@media_id})") do
|
83
|
+
tests("#put_media_metadata_item_metadata(Boolean)").returns(true) do
|
84
|
+
task = @service.put_media_metadata_item_metadata(@media_id, 'fog-test-boolean', true).body
|
85
|
+
@service.process_task(task)
|
97
86
|
end
|
98
|
-
tests(
|
99
|
-
|
100
|
-
|
87
|
+
tests("#put_media_metadata_item_metadata(DateTime)").returns(true) do
|
88
|
+
task = @service.put_media_metadata_item_metadata(@media_id, 'fog-test-datetime', DateTime.now).body
|
89
|
+
@service.process_task(task)
|
101
90
|
end
|
102
|
-
tests(
|
103
|
-
|
104
|
-
|
91
|
+
tests("#put_media_metadata_item_metadata(Number)").returns(true) do
|
92
|
+
task = @service.put_media_metadata_item_metadata(@media_id, 'fog-test-number', 111).body
|
93
|
+
@service.process_task(task)
|
105
94
|
end
|
106
|
-
|
107
|
-
|
108
|
-
|
95
|
+
end
|
96
|
+
|
97
|
+
tests("#post_update_media_metadata(#{@media_id})").data_matches_schema(VcloudDirector::Compute::Schema::TASK_TYPE) do
|
98
|
+
metadata = {
|
99
|
+
'fog-test-key-update' => 'fog-test-value-update',
|
100
|
+
'fog-test-boolean-update' => false,
|
101
|
+
'fog-test-datetime-update' => DateTime.now,
|
102
|
+
'fog-test-number-update' => 222
|
103
|
+
}
|
104
|
+
@task = @service.post_update_media_metadata(@media_id, metadata).body
|
105
|
+
end
|
106
|
+
@service.process_task(@task)
|
107
|
+
|
108
|
+
tests("#get_media_metadata(#{@media_id})") do
|
109
|
+
tests('response format').data_matches_schema(VcloudDirector::Compute::Schema::METADATA_TYPE) do
|
110
|
+
@metadata = @service.get_media_metadata(@media_id).body
|
109
111
|
end
|
110
|
-
tests('
|
111
|
-
|
112
|
-
|
112
|
+
tests('TypedValue') do
|
113
|
+
pending if @service.api_version.to_f < 5.1
|
114
|
+
tests('key').returns('MetadataStringValue') do
|
115
|
+
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-key'}
|
116
|
+
entry[:TypedValue][:xsi_type]
|
117
|
+
end
|
118
|
+
tests('boolean').returns('MetadataBooleanValue') do
|
119
|
+
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-boolean'}
|
120
|
+
entry[:TypedValue][:xsi_type]
|
121
|
+
end
|
122
|
+
tests('datetime').returns('MetadataDateTimeValue') do
|
123
|
+
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-datetime'}
|
124
|
+
entry[:TypedValue][:xsi_type]
|
125
|
+
end
|
126
|
+
tests('number').returns('MetadataNumberValue') do
|
127
|
+
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-number'}
|
128
|
+
entry[:TypedValue][:xsi_type]
|
129
|
+
end
|
130
|
+
tests('key-update').returns('MetadataStringValue') do
|
131
|
+
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-key-update'}
|
132
|
+
entry[:TypedValue][:xsi_type]
|
133
|
+
end
|
134
|
+
tests('boolean-update').returns('MetadataBooleanValue') do
|
135
|
+
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-boolean-update'}
|
136
|
+
entry[:TypedValue][:xsi_type]
|
137
|
+
end
|
138
|
+
tests('datetime-update').returns('MetadataDateTimeValue') do
|
139
|
+
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-datetime-update'}
|
140
|
+
entry[:TypedValue][:xsi_type]
|
141
|
+
end
|
142
|
+
tests('number-update').returns('MetadataNumberValue') do
|
143
|
+
entry = @metadata[:MetadataEntry].detect {|e| e[:Key] == 'fog-test-number-update'}
|
144
|
+
entry[:TypedValue][:xsi_type]
|
145
|
+
end
|
113
146
|
end
|
114
147
|
end
|
115
148
|
end
|
@@ -131,7 +164,6 @@ Shindo.tests('Compute::VcloudDirector | media requests', ['vclouddirector']) do
|
|
131
164
|
end
|
132
165
|
|
133
166
|
tests('Media item no longer exists') do
|
134
|
-
pending if Fog.mocking?
|
135
167
|
tests("#get_media(#{@media_id})").raises(Fog::Compute::VcloudDirector::Forbidden) do
|
136
168
|
@service.get_media(@media_id)
|
137
169
|
end
|
@@ -139,6 +171,7 @@ Shindo.tests('Compute::VcloudDirector | media requests', ['vclouddirector']) do
|
|
139
171
|
@service.get_media_owner(@media_id)
|
140
172
|
end
|
141
173
|
tests("#get_media_metadata(#{@media_id})").raises(Fog::Compute::VcloudDirector::Forbidden) do
|
174
|
+
pending if Fog.mocking?
|
142
175
|
@service.get_media_metadata(@media_id)
|
143
176
|
end
|
144
177
|
tests("#delete_media(#{@media_id})").raises(Fog::Compute::VcloudDirector::Forbidden) do
|
@@ -159,27 +192,4 @@ Shindo.tests('Compute::VcloudDirector | media requests', ['vclouddirector']) do
|
|
159
192
|
end
|
160
193
|
end
|
161
194
|
|
162
|
-
tests('Invalid image_type').raises(Fog::Compute::VcloudDirector::BadRequest) do
|
163
|
-
@service.post_upload_media('00000000-0000-0000-0000-000000000000', 'test.iso', 'isox', 0)
|
164
|
-
end
|
165
|
-
tests('Invalid size').raises(Fog::Compute::VcloudDirector::BadRequest) do
|
166
|
-
@service.post_upload_media('00000000-0000-0000-0000-000000000000', 'test.iso', 'iso', -1)
|
167
|
-
end
|
168
|
-
|
169
|
-
tests('Upload to non-existent vDC').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
170
|
-
@service.post_upload_media('00000000-0000-0000-0000-000000000000', 'test.iso', 'iso', 0)
|
171
|
-
end
|
172
|
-
|
173
|
-
tests('Retrieve non-existent Media').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
174
|
-
@service.get_media('00000000-0000-0000-0000-000000000000')
|
175
|
-
end
|
176
|
-
|
177
|
-
tests('Retrieve owner of non-existent Media').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
178
|
-
@service.get_media_owner('00000000-0000-0000-0000-000000000000')
|
179
|
-
end
|
180
|
-
|
181
|
-
tests('Delete non-existent Media').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
182
|
-
@service.delete_media('00000000-0000-0000-0000-000000000000')
|
183
|
-
end
|
184
|
-
|
185
195
|
end
|
@@ -81,7 +81,7 @@ class VcloudDirector
|
|
81
81
|
|
82
82
|
# Represents a list of files to be transferred (uploaded or downloaded).
|
83
83
|
FILES_LIST_TYPE = {
|
84
|
-
:File => FILE_TYPE
|
84
|
+
:File => [FILE_TYPE]
|
85
85
|
}
|
86
86
|
|
87
87
|
# Container for query result sets.
|
@@ -123,7 +123,7 @@ class VcloudDirector
|
|
123
123
|
:status => Fog::Nullable::String,
|
124
124
|
:Description => Fog::Nullable::String,
|
125
125
|
# :Tasks => TASKS_IN_PROGRESS_TYPE,
|
126
|
-
#
|
126
|
+
# :Files => FILES_LIST_TYPE
|
127
127
|
})
|
128
128
|
|
129
129
|
# Container for references to ResourceEntity objects in this vDC.
|
@@ -620,6 +620,19 @@ class VcloudDirector
|
|
620
620
|
:RoleReferences => ROLE_REFERENCES_TYPE,
|
621
621
|
:Networks => NETWORKS_TYPE
|
622
622
|
})
|
623
|
+
|
624
|
+
# Represents a named disk.
|
625
|
+
DISK_TYPE = RESOURCE_ENTITY_TYPE.merge({
|
626
|
+
:busSubType => Fog::Nullable::String,
|
627
|
+
:busType => Fog::Nullable::String,
|
628
|
+
:size => String,
|
629
|
+
:StorageProfile => REFERENCE_TYPE,
|
630
|
+
:Owner => OWNER_TYPE
|
631
|
+
})
|
632
|
+
|
633
|
+
VMS_TYPE = RESOURCE_TYPE.merge({
|
634
|
+
:VmReference => [REFERENCE_TYPE]
|
635
|
+
})
|
623
636
|
end
|
624
637
|
end
|
625
638
|
end
|
@@ -2,6 +2,20 @@ Shindo.tests('Compute::VcloudDirector | task requests', ['vclouddirector']) do
|
|
2
2
|
|
3
3
|
@service = Fog::Compute::VcloudDirector.new
|
4
4
|
|
5
|
+
tests('error conditions') do
|
6
|
+
tests('retrieve non-existent TasksList').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
7
|
+
@service.get_task_list('00000000-0000-0000-0000-000000000000')
|
8
|
+
end
|
9
|
+
tests('retrieve non-existent Task').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
10
|
+
@service.get_task('00000000-0000-0000-0000-000000000000')
|
11
|
+
end
|
12
|
+
tests('cancel non-existent Task').raises(Fog::Compute::VcloudDirector::Forbidden) do
|
13
|
+
@service.post_cancel_task('00000000-0000-0000-0000-000000000000')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
@org_id = VcloudDirector::Compute::Helper.current_org_id(@service)
|
18
|
+
|
5
19
|
tests('#get_task_list').data_matches_schema(VcloudDirector::Compute::Schema::TASKS_LIST_TYPE) do
|
6
20
|
session = @service.get_current_session.body
|
7
21
|
org_href = session[:Link].detect {|l| l[:type] == 'application/vnd.vmware.vcloud.org+xml'}[:href]
|
@@ -9,12 +23,13 @@ Shindo.tests('Compute::VcloudDirector | task requests', ['vclouddirector']) do
|
|
9
23
|
@tasks_list = @service.get_task_list(@org_uuid).body
|
10
24
|
end
|
11
25
|
|
12
|
-
tests('
|
13
|
-
@
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
26
|
+
tests('each task in the task list') do
|
27
|
+
@tasks_list[:Task].each do |task|
|
28
|
+
task_id = task[:href].split('/').last
|
29
|
+
tests("#get_task(#{task_id}").data_matches_schema(VcloudDirector::Compute::Schema::TASK_TYPE) do
|
30
|
+
@service.get_task(task_id).body
|
31
|
+
end
|
32
|
+
end
|
18
33
|
end
|
19
34
|
|
20
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.17.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: builder
|
@@ -155,22 +155,6 @@ dependencies:
|
|
155
155
|
- - ! '>='
|
156
156
|
- !ruby/object:Gem::Version
|
157
157
|
version: '0'
|
158
|
-
- !ruby/object:Gem::Dependency
|
159
|
-
name: unicode
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
|
-
requirements:
|
163
|
-
- - ~>
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: 0.4.4
|
166
|
-
type: :runtime
|
167
|
-
prerelease: false
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - ~>
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: 0.4.4
|
174
158
|
- !ruby/object:Gem::Dependency
|
175
159
|
name: jekyll
|
176
160
|
requirement: !ruby/object:Gem::Requirement
|
@@ -347,6 +331,22 @@ dependencies:
|
|
347
331
|
- - ~>
|
348
332
|
- !ruby/object:Gem::Version
|
349
333
|
version: 0.6.2
|
334
|
+
- !ruby/object:Gem::Dependency
|
335
|
+
name: unf
|
336
|
+
requirement: !ruby/object:Gem::Requirement
|
337
|
+
none: false
|
338
|
+
requirements:
|
339
|
+
- - ! '>='
|
340
|
+
- !ruby/object:Gem::Version
|
341
|
+
version: '0'
|
342
|
+
type: :development
|
343
|
+
prerelease: false
|
344
|
+
version_requirements: !ruby/object:Gem::Requirement
|
345
|
+
none: false
|
346
|
+
requirements:
|
347
|
+
- - ! '>='
|
348
|
+
- !ruby/object:Gem::Version
|
349
|
+
version: '0'
|
350
350
|
description: The Ruby cloud services library. Supports all major cloud providers including
|
351
351
|
AWS, Rackspace, Linode, Blue Box, StormOnDemand, and many others. Full support for
|
352
352
|
most AWS services including EC2, S3, CloudWatch, SimpleDB, ELB, and RDS.
|
@@ -831,6 +831,7 @@ files:
|
|
831
831
|
- lib/fog/aws/parsers/storage/get_bucket_location.rb
|
832
832
|
- lib/fog/aws/parsers/storage/get_bucket_logging.rb
|
833
833
|
- lib/fog/aws/parsers/storage/get_bucket_object_versions.rb
|
834
|
+
- lib/fog/aws/parsers/storage/get_bucket_tagging.rb
|
834
835
|
- lib/fog/aws/parsers/storage/get_bucket_versioning.rb
|
835
836
|
- lib/fog/aws/parsers/storage/get_bucket_website.rb
|
836
837
|
- lib/fog/aws/parsers/storage/get_request_payment.rb
|
@@ -1300,6 +1301,7 @@ files:
|
|
1300
1301
|
- lib/fog/aws/requests/storage/delete_bucket_cors.rb
|
1301
1302
|
- lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb
|
1302
1303
|
- lib/fog/aws/requests/storage/delete_bucket_policy.rb
|
1304
|
+
- lib/fog/aws/requests/storage/delete_bucket_tagging.rb
|
1303
1305
|
- lib/fog/aws/requests/storage/delete_bucket_website.rb
|
1304
1306
|
- lib/fog/aws/requests/storage/delete_multiple_objects.rb
|
1305
1307
|
- lib/fog/aws/requests/storage/delete_object.rb
|
@@ -1311,6 +1313,7 @@ files:
|
|
1311
1313
|
- lib/fog/aws/requests/storage/get_bucket_logging.rb
|
1312
1314
|
- lib/fog/aws/requests/storage/get_bucket_object_versions.rb
|
1313
1315
|
- lib/fog/aws/requests/storage/get_bucket_policy.rb
|
1316
|
+
- lib/fog/aws/requests/storage/get_bucket_tagging.rb
|
1314
1317
|
- lib/fog/aws/requests/storage/get_bucket_versioning.rb
|
1315
1318
|
- lib/fog/aws/requests/storage/get_bucket_website.rb
|
1316
1319
|
- lib/fog/aws/requests/storage/get_object.rb
|
@@ -1333,6 +1336,7 @@ files:
|
|
1333
1336
|
- lib/fog/aws/requests/storage/put_bucket_lifecycle.rb
|
1334
1337
|
- lib/fog/aws/requests/storage/put_bucket_logging.rb
|
1335
1338
|
- lib/fog/aws/requests/storage/put_bucket_policy.rb
|
1339
|
+
- lib/fog/aws/requests/storage/put_bucket_tagging.rb
|
1336
1340
|
- lib/fog/aws/requests/storage/put_bucket_versioning.rb
|
1337
1341
|
- lib/fog/aws/requests/storage/put_bucket_website.rb
|
1338
1342
|
- lib/fog/aws/requests/storage/put_object.rb
|
@@ -2266,6 +2270,7 @@ files:
|
|
2266
2270
|
- lib/fog/google/requests/compute/insert_image.rb
|
2267
2271
|
- lib/fog/google/requests/compute/insert_network.rb
|
2268
2272
|
- lib/fog/google/requests/compute/insert_server.rb
|
2273
|
+
- lib/fog/google/requests/compute/insert_snapshot.rb
|
2269
2274
|
- lib/fog/google/requests/compute/list_disks.rb
|
2270
2275
|
- lib/fog/google/requests/compute/list_firewalls.rb
|
2271
2276
|
- lib/fog/google/requests/compute/list_global_operations.rb
|
@@ -3899,7 +3904,7 @@ files:
|
|
3899
3904
|
- lib/fog/vcloud_director/compute.rb
|
3900
3905
|
- lib/fog/vcloud_director/generators/compute/customization.rb
|
3901
3906
|
- lib/fog/vcloud_director/generators/compute/disks.rb
|
3902
|
-
- lib/fog/vcloud_director/generators/compute/
|
3907
|
+
- lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb
|
3903
3908
|
- lib/fog/vcloud_director/generators/compute/metadata.rb
|
3904
3909
|
- lib/fog/vcloud_director/generators/compute/vm_network.rb
|
3905
3910
|
- lib/fog/vcloud_director/models/compute/catalog.rb
|
@@ -4046,7 +4051,7 @@ files:
|
|
4046
4051
|
- lib/fog/vcloud_director/requests/compute/get_vm_pending_question.rb
|
4047
4052
|
- lib/fog/vcloud_director/requests/compute/get_vms.rb
|
4048
4053
|
- lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb
|
4049
|
-
- lib/fog/vcloud_director/requests/compute/
|
4054
|
+
- lib/fog/vcloud_director/requests/compute/get_vms_disk_attached_to.rb
|
4050
4055
|
- lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb
|
4051
4056
|
- lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb
|
4052
4057
|
- lib/fog/vcloud_director/requests/compute/post_acquire_ticket.rb
|
@@ -4090,6 +4095,7 @@ files:
|
|
4090
4095
|
- lib/fog/vcloud_director/requests/compute/post_update_vapp_metadata.rb
|
4091
4096
|
- lib/fog/vcloud_director/requests/compute/post_update_vapp_template_metadata.rb
|
4092
4097
|
- lib/fog/vcloud_director/requests/compute/post_upgrade_hw_version.rb
|
4098
|
+
- lib/fog/vcloud_director/requests/compute/post_upload_disk.rb
|
4093
4099
|
- lib/fog/vcloud_director/requests/compute/post_upload_media.rb
|
4094
4100
|
- lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb
|
4095
4101
|
- lib/fog/vcloud_director/requests/compute/put_catalog_item_metadata_item_metadata.rb
|
@@ -5146,7 +5152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
5146
5152
|
version: '0'
|
5147
5153
|
segments:
|
5148
5154
|
- 0
|
5149
|
-
hash:
|
5155
|
+
hash: 4138993689130012902
|
5150
5156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
5151
5157
|
none: false
|
5152
5158
|
requirements:
|