fog 1.31.0 → 1.32.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -0
  3. data/Rakefile +5 -5
  4. data/fog.gemspec +6 -5
  5. data/lib/fog/cloudstack/models/compute/network.rb +1 -0
  6. data/lib/fog/openstack/compute.rb +41 -98
  7. data/lib/fog/openstack/core.rb +257 -118
  8. data/lib/fog/openstack/identity.rb +4 -0
  9. data/lib/fog/openstack/identity_v3.rb +10 -41
  10. data/lib/fog/openstack/models/baremetal/chassis_collection.rb +10 -4
  11. data/lib/fog/openstack/models/baremetal/drivers.rb +4 -2
  12. data/lib/fog/openstack/models/baremetal/nodes.rb +10 -4
  13. data/lib/fog/openstack/models/baremetal/ports.rb +10 -4
  14. data/lib/fog/openstack/models/compute/addresses.rb +4 -2
  15. data/lib/fog/openstack/models/compute/aggregate.rb +64 -0
  16. data/lib/fog/openstack/models/compute/aggregates.rb +28 -0
  17. data/lib/fog/openstack/models/compute/flavors.rb +5 -0
  18. data/lib/fog/openstack/models/compute/hosts.rb +4 -2
  19. data/lib/fog/openstack/models/compute/images.rb +2 -0
  20. data/lib/fog/openstack/models/compute/key_pairs.rb +4 -2
  21. data/lib/fog/openstack/models/compute/security_groups.rb +4 -2
  22. data/lib/fog/openstack/models/compute/servers.rb +2 -0
  23. data/lib/fog/openstack/models/compute/services.rb +7 -4
  24. data/lib/fog/openstack/models/compute/snapshots.rb +15 -2
  25. data/lib/fog/openstack/models/compute/volumes.rb +15 -2
  26. data/lib/fog/openstack/models/identity_v2/ec2_credentials.rb +6 -3
  27. data/lib/fog/openstack/models/identity_v2/roles.rb +5 -3
  28. data/lib/fog/openstack/models/identity_v2/tenants.rb +5 -3
  29. data/lib/fog/openstack/models/identity_v2/users.rb +7 -3
  30. data/lib/fog/openstack/models/identity_v3/domains.rb +7 -6
  31. data/lib/fog/openstack/models/identity_v3/endpoints.rb +5 -4
  32. data/lib/fog/openstack/models/identity_v3/groups.rb +5 -3
  33. data/lib/fog/openstack/models/identity_v3/os_credentials.rb +5 -3
  34. data/lib/fog/openstack/models/identity_v3/policies.rb +5 -3
  35. data/lib/fog/openstack/models/identity_v3/project.rb +1 -0
  36. data/lib/fog/openstack/models/identity_v3/projects.rb +7 -5
  37. data/lib/fog/openstack/models/identity_v3/role_assignments.rb +10 -5
  38. data/lib/fog/openstack/models/identity_v3/roles.rb +11 -5
  39. data/lib/fog/openstack/models/identity_v3/services.rb +5 -3
  40. data/lib/fog/openstack/models/identity_v3/users.rb +4 -2
  41. data/lib/fog/openstack/models/image/images.rb +10 -4
  42. data/lib/fog/openstack/models/network/floating_ips.rb +2 -0
  43. data/lib/fog/openstack/models/network/lb_health_monitors.rb +2 -0
  44. data/lib/fog/openstack/models/network/lb_members.rb +2 -0
  45. data/lib/fog/openstack/models/network/lb_pools.rb +2 -0
  46. data/lib/fog/openstack/models/network/lb_vips.rb +2 -0
  47. data/lib/fog/openstack/models/network/networks.rb +2 -0
  48. data/lib/fog/openstack/models/network/port.rb +1 -0
  49. data/lib/fog/openstack/models/network/ports.rb +2 -0
  50. data/lib/fog/openstack/models/network/routers.rb +2 -0
  51. data/lib/fog/openstack/models/network/security_group_rules.rb +2 -0
  52. data/lib/fog/openstack/models/network/security_groups.rb +2 -0
  53. data/lib/fog/openstack/models/network/subnets.rb +2 -0
  54. data/lib/fog/openstack/models/orchestration/events.rb +10 -6
  55. data/lib/fog/openstack/models/orchestration/resources.rb +4 -2
  56. data/lib/fog/openstack/models/orchestration/stack.rb +1 -1
  57. data/lib/fog/openstack/models/orchestration/stacks.rb +9 -1
  58. data/lib/fog/openstack/models/planning/plans.rb +4 -2
  59. data/lib/fog/openstack/models/planning/roles.rb +5 -2
  60. data/lib/fog/openstack/models/storage/directories.rb +4 -2
  61. data/lib/fog/openstack/models/storage/files.rb +2 -0
  62. data/lib/fog/openstack/models/volume/volume.rb +1 -0
  63. data/lib/fog/openstack/models/volume/volume_types.rb +2 -0
  64. data/lib/fog/openstack/models/volume/volumes.rb +13 -2
  65. data/lib/fog/openstack/network.rb +18 -97
  66. data/lib/fog/openstack/orchestration.rb +2 -0
  67. data/lib/fog/openstack/requests/baremetal/list_chassis.rb +2 -8
  68. data/lib/fog/openstack/requests/baremetal/list_chassis_detailed.rb +3 -9
  69. data/lib/fog/openstack/requests/baremetal/list_drivers.rb +4 -3
  70. data/lib/fog/openstack/requests/baremetal/list_nodes.rb +3 -9
  71. data/lib/fog/openstack/requests/baremetal/list_nodes_detailed.rb +3 -9
  72. data/lib/fog/openstack/requests/baremetal/list_ports.rb +3 -9
  73. data/lib/fog/openstack/requests/baremetal/list_ports_detailed.rb +3 -9
  74. data/lib/fog/openstack/requests/compute/add_aggregate_host.rb +30 -0
  75. data/lib/fog/openstack/requests/compute/create_aggregate.rb +42 -0
  76. data/lib/fog/openstack/requests/compute/delete_aggregate.rb +28 -0
  77. data/lib/fog/openstack/requests/compute/get_aggregate.rb +26 -0
  78. data/lib/fog/openstack/requests/compute/list_aggregates.rb +36 -0
  79. data/lib/fog/openstack/requests/compute/list_all_addresses.rb +4 -3
  80. data/lib/fog/openstack/requests/compute/list_flavors.rb +6 -5
  81. data/lib/fog/openstack/requests/compute/list_hosts.rb +4 -3
  82. data/lib/fog/openstack/requests/compute/list_key_pairs.rb +4 -3
  83. data/lib/fog/openstack/requests/compute/list_security_groups.rb +15 -2
  84. data/lib/fog/openstack/requests/compute/list_snapshots.rb +18 -4
  85. data/lib/fog/openstack/requests/compute/list_snapshots_detail.rb +27 -0
  86. data/lib/fog/openstack/requests/compute/list_volumes.rb +18 -4
  87. data/lib/fog/openstack/requests/compute/list_volumes_detail.rb +25 -0
  88. data/lib/fog/openstack/requests/compute/remove_aggregate_host.rb +30 -0
  89. data/lib/fog/openstack/requests/compute/update_aggregate.rb +37 -0
  90. data/lib/fog/openstack/requests/compute/update_aggregate_metadata.rb +30 -0
  91. data/lib/fog/openstack/requests/identity_v2/list_ec2_credentials.rb +23 -7
  92. data/lib/fog/openstack/requests/identity_v2/list_roles.rb +5 -4
  93. data/lib/fog/openstack/requests/identity_v2/list_tenants.rb +14 -8
  94. data/lib/fog/openstack/requests/identity_v2/list_users.rb +16 -4
  95. data/lib/fog/openstack/requests/identity_v3/auth_domains.rb +2 -7
  96. data/lib/fog/openstack/requests/identity_v3/auth_projects.rb +6 -11
  97. data/lib/fog/openstack/requests/identity_v3/list_domains.rb +7 -14
  98. data/lib/fog/openstack/requests/identity_v3/list_endpoints.rb +7 -14
  99. data/lib/fog/openstack/requests/identity_v3/list_group_users.rb +5 -13
  100. data/lib/fog/openstack/requests/identity_v3/list_groups.rb +14 -24
  101. data/lib/fog/openstack/requests/identity_v3/list_os_credentials.rb +7 -12
  102. data/lib/fog/openstack/requests/identity_v3/list_policies.rb +7 -11
  103. data/lib/fog/openstack/requests/identity_v3/list_projects.rb +14 -25
  104. data/lib/fog/openstack/requests/identity_v3/list_role_assignments.rb +21 -17
  105. data/lib/fog/openstack/requests/identity_v3/list_roles.rb +7 -25
  106. data/lib/fog/openstack/requests/identity_v3/list_services.rb +7 -13
  107. data/lib/fog/openstack/requests/identity_v3/list_users.rb +7 -15
  108. data/lib/fog/openstack/requests/image/list_public_images.rb +4 -3
  109. data/lib/fog/openstack/requests/image/list_public_images_detailed.rb +9 -6
  110. data/lib/fog/openstack/requests/network/create_port.rb +12 -11
  111. data/lib/fog/openstack/requests/network/create_subnet.rb +7 -7
  112. data/lib/fog/openstack/requests/network/get_port.rb +1 -0
  113. data/lib/fog/openstack/requests/network/update_port.rb +7 -6
  114. data/lib/fog/openstack/requests/orchestration/list_events.rb +46 -0
  115. data/lib/fog/openstack/requests/orchestration/list_resource_events.rb +7 -2
  116. data/lib/fog/openstack/requests/orchestration/list_resource_types.rb +3 -2
  117. data/lib/fog/openstack/requests/orchestration/list_resources.rb +27 -4
  118. data/lib/fog/openstack/requests/orchestration/list_stack_data.rb +2 -2
  119. data/lib/fog/openstack/requests/orchestration/list_stack_data_detailed.rb +49 -0
  120. data/lib/fog/openstack/requests/orchestration/list_stack_events.rb +6 -2
  121. data/lib/fog/openstack/requests/planning/list_plans.rb +4 -3
  122. data/lib/fog/openstack/requests/planning/list_roles.rb +3 -9
  123. data/lib/fog/openstack/requests/volume/create_volume.rb +2 -1
  124. data/lib/fog/openstack/requests/volume/list_snapshots.rb +16 -3
  125. data/lib/fog/openstack/requests/volume/list_snapshots_detailed.rb +27 -0
  126. data/lib/fog/openstack/requests/volume/list_volume_types.rb +6 -6
  127. data/lib/fog/openstack/requests/volume/list_volumes.rb +20 -7
  128. data/lib/fog/openstack/requests/volume/list_volumes_detailed.rb +49 -0
  129. data/lib/fog/openstack/volume.rb +1 -0
  130. data/lib/fog/ovirt/models/compute/server.rb +1 -0
  131. data/lib/fog/ovirt/models/compute/template.rb +1 -0
  132. data/lib/fog/rackspace/docs/queues.md +2 -2
  133. data/lib/fog/rackspace/models/block_storage/snapshot.rb +5 -1
  134. data/lib/fog/version.rb +1 -1
  135. data/lib/fog/vsphere/requests/compute/vm_clone.rb +1 -1
  136. data/lib/tasks/changelog_task.rb +1 -0
  137. data/spec/fog/openstack/identity_v3/authv3_a.yml +55 -35
  138. data/spec/fog/openstack/identity_v3/authv3_b.yml +55 -35
  139. data/spec/fog/openstack/identity_v3/authv3_c.yml +159 -33
  140. data/spec/fog/openstack/identity_v3/authv3_project.yml +79 -35
  141. data/spec/fog/openstack/identity_v3/authv3_token.yml +377 -76
  142. data/spec/fog/openstack/identity_v3/authv3_unscoped.yml +298 -155
  143. data/spec/fog/openstack/identity_v3/authv3_unscoped_reauth.yml +371 -0
  144. data/spec/fog/openstack/identity_v3/idv3.yml +456 -41
  145. data/spec/fog/openstack/identity_v3/idv3_credential.yml +36 -30
  146. data/spec/fog/openstack/identity_v3/idv3_credential_crud.yml +223 -190
  147. data/spec/fog/openstack/identity_v3/idv3_domain.yml +64 -58
  148. data/spec/fog/openstack/identity_v3/idv3_domain_crud.yml +176 -393
  149. data/spec/fog/openstack/identity_v3/idv3_domain_group_roles_mutation.yml +277 -379
  150. data/spec/fog/openstack/identity_v3/idv3_domain_roles_mutation.yml +177 -204
  151. data/spec/fog/openstack/identity_v3/idv3_endpoint.yml +492 -174
  152. data/spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml +669 -435
  153. data/spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml +378 -298
  154. data/spec/fog/openstack/identity_v3/idv3_other_region.yml +187 -0
  155. data/spec/fog/openstack/identity_v3/idv3_policy.yml +54 -46
  156. data/spec/fog/openstack/identity_v3/idv3_policy_crud.yml +137 -117
  157. data/spec/fog/openstack/identity_v3/idv3_project.yml +116 -86
  158. data/spec/fog/openstack/identity_v3/idv3_project_crud.yml +179 -387
  159. data/spec/fog/openstack/identity_v3/idv3_project_group_user_roles_mutation.yml +415 -556
  160. data/spec/fog/openstack/identity_v3/idv3_role.yml +108 -74
  161. data/spec/fog/openstack/identity_v3/idv3_role_crud.yml +160 -368
  162. data/spec/fog/openstack/identity_v3/idv3_service.yml +156 -94
  163. data/spec/fog/openstack/identity_v3/idv3_services_crud.yml +250 -306
  164. data/spec/fog/openstack/identity_v3/idv3_token.yml +195 -101
  165. data/spec/fog/openstack/identity_v3/idv3_user_crud.yml +276 -193
  166. data/spec/fog/openstack/identity_v3/idv3_users.yml +149 -219
  167. data/spec/fog/openstack/identity_v3_spec.rb +502 -474
  168. data/spec/fog/openstack/volume/volume_common_setup.yml +76 -0
  169. data/spec/fog/openstack/volume/volume_crud.yml +561 -0
  170. data/spec/fog/openstack/volume/volume_type_read.yml +120 -0
  171. data/spec/fog/openstack/volume_spec.rb +165 -0
  172. data/tests/openstack/requests/compute/aggregate_tests.rb +59 -0
  173. data/tests/openstack/requests/network/port_tests.rb +12 -11
  174. data/tests/openstack/requests/orchestration/stack_tests.rb +25 -0
  175. metadata +56 -14
  176. data/spec/fog/openstack/identity_v3/idv2_unscoped_token_v3.yml +0 -467
@@ -0,0 +1,120 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://devstack.openstack.stack:8776/v1/a19e9490e4504b0b877c55510dfb2842/types
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - fog/1.31.0 fog-core/1.31.1
12
+ Proxy-Connection:
13
+ - Keep-Alive
14
+ Content-Type:
15
+ - application/json
16
+ Accept:
17
+ - application/json
18
+ X-Auth-Token:
19
+ - fb5eafb443894cc59c09cf4608dbc5eb
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: ''
24
+ headers:
25
+ X-Compute-Request-Id:
26
+ - req-d219712e-fc18-44bf-a9a8-01b8e4ca4dfd
27
+ Content-Type:
28
+ - application/json
29
+ Content-Length:
30
+ - '206'
31
+ X-Openstack-Request-Id:
32
+ - req-d219712e-fc18-44bf-a9a8-01b8e4ca4dfd
33
+ Date:
34
+ - Fri, 26 Jun 2015 14:39:27 GMT
35
+ body:
36
+ encoding: US-ASCII
37
+ string: ! '{"volume_types": [{"os-volume-type-access:is_public": true, "extra_specs":
38
+ {"volume_backend_name": "lvmdriver-1"}, "id": "dfd01103-04cb-48ed-9cac-26e10b971812",
39
+ "name": "lvmdriver-1", "description": null}]}'
40
+ http_version:
41
+ recorded_at: Fri, 26 Jun 2015 14:39:26 GMT
42
+ - request:
43
+ method: get
44
+ uri: http://devstack.openstack.stack:8776/v1/a19e9490e4504b0b877c55510dfb2842/types/dfd01103-04cb-48ed-9cac-26e10b971812
45
+ body:
46
+ encoding: US-ASCII
47
+ string: ''
48
+ headers:
49
+ User-Agent:
50
+ - fog/1.31.0 fog-core/1.31.1
51
+ Proxy-Connection:
52
+ - Keep-Alive
53
+ Content-Type:
54
+ - application/json
55
+ Accept:
56
+ - application/json
57
+ X-Auth-Token:
58
+ - fb5eafb443894cc59c09cf4608dbc5eb
59
+ response:
60
+ status:
61
+ code: 200
62
+ message: ''
63
+ headers:
64
+ X-Compute-Request-Id:
65
+ - req-bf6db357-855c-44c6-abde-5058252225b0
66
+ Content-Type:
67
+ - application/json
68
+ Content-Length:
69
+ - '203'
70
+ X-Openstack-Request-Id:
71
+ - req-bf6db357-855c-44c6-abde-5058252225b0
72
+ Date:
73
+ - Fri, 26 Jun 2015 14:39:27 GMT
74
+ body:
75
+ encoding: US-ASCII
76
+ string: ! '{"volume_type": {"os-volume-type-access:is_public": true, "extra_specs":
77
+ {"volume_backend_name": "lvmdriver-1"}, "id": "dfd01103-04cb-48ed-9cac-26e10b971812",
78
+ "name": "lvmdriver-1", "description": null}}'
79
+ http_version:
80
+ recorded_at: Fri, 26 Jun 2015 14:39:26 GMT
81
+ - request:
82
+ method: get
83
+ uri: http://devstack.openstack.stack:8776/v1/a19e9490e4504b0b877c55510dfb2842/types?lvmdriver-1
84
+ body:
85
+ encoding: US-ASCII
86
+ string: ''
87
+ headers:
88
+ User-Agent:
89
+ - fog/1.31.0 fog-core/1.31.1
90
+ Proxy-Connection:
91
+ - Keep-Alive
92
+ Content-Type:
93
+ - application/json
94
+ Accept:
95
+ - application/json
96
+ X-Auth-Token:
97
+ - fb5eafb443894cc59c09cf4608dbc5eb
98
+ response:
99
+ status:
100
+ code: 200
101
+ message: ''
102
+ headers:
103
+ X-Compute-Request-Id:
104
+ - req-af76f251-0a78-4152-b005-36bb164be5dd
105
+ Content-Type:
106
+ - application/json
107
+ Content-Length:
108
+ - '206'
109
+ X-Openstack-Request-Id:
110
+ - req-af76f251-0a78-4152-b005-36bb164be5dd
111
+ Date:
112
+ - Fri, 26 Jun 2015 14:39:28 GMT
113
+ body:
114
+ encoding: US-ASCII
115
+ string: ! '{"volume_types": [{"os-volume-type-access:is_public": true, "extra_specs":
116
+ {"volume_backend_name": "lvmdriver-1"}, "id": "dfd01103-04cb-48ed-9cac-26e10b971812",
117
+ "name": "lvmdriver-1", "description": null}]}'
118
+ http_version:
119
+ recorded_at: Fri, 26 Jun 2015 14:39:27 GMT
120
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,165 @@
1
+ require 'fog/openstack/compute'
2
+ require 'fog/openstack/identity'
3
+ require 'fog/openstack/identity_v3'
4
+ require 'fog/openstack/volume'
5
+ require 'rspec/core'
6
+ require 'rspec/expectations'
7
+ require 'vcr'
8
+
9
+ RSpec.describe Fog::Volume::OpenStack do
10
+
11
+ before :all do
12
+ # FIXME code duplication with "before :all" of identity_v3_spec.rb
13
+ @os_auth_url = ENV['OS_AUTH_URL']
14
+
15
+ if @os_auth_url
16
+ # if OS_AUTH_URL is set but FOG_MOCK is not, don't record anything and just pass through the requests
17
+ VCR.configure do |c|
18
+ c.ignore_request do |request|
19
+ ENV['FOG_MOCK']!='true' && !ENV['OS_AUTH_URL'].nil?
20
+ end
21
+ end
22
+ else
23
+ # Fail-safe URL which matches the VCR recordings
24
+ @os_auth_url = 'http://devstack.openstack.stack:5000/v2.0'
25
+ # when using the cassettes, there is no need to sleep in wait_for()
26
+ Fog.interval = 0
27
+ end
28
+
29
+ VCR.configure do |config|
30
+ config.allow_http_connections_when_no_cassette = true
31
+ config.hook_into :webmock
32
+
33
+ if ENV['DEBUG']
34
+ config.ignore_request do |request|
35
+ false && !ENV['OS_AUTH_URL'].nil?
36
+ end
37
+ config.cassette_library_dir = "spec/debug"
38
+ config.default_cassette_options.merge! :record => :all
39
+ else
40
+ config.cassette_library_dir = "spec/fog/openstack/volume"
41
+ config.default_cassette_options = {:record => :none}
42
+ config.default_cassette_options.merge! :match_requests_on => [:method, :uri, :body] unless RUBY_VERSION =~ /1.8/ # Ruby 1.8.7 encodes JSON differently, which screws up request matching
43
+ end
44
+ end
45
+
46
+ # Allow us to ignore dev certificates on servers
47
+ Excon.defaults[:ssl_verify_peer] = false if ENV['SSL_VERIFY_PEER'] == 'false'
48
+
49
+ VCR.use_cassette('volume_common_setup') do
50
+ @service = Fog::Volume::OpenStack.new(
51
+ :openstack_auth_url => "#{@os_auth_url}/tokens",
52
+ :openstack_region => ENV['OS_REGION_NAME'] || 'RegionOne',
53
+ :openstack_api_key => ENV['OS_PASSWORD'] || 'devstack',
54
+ :openstack_username => ENV['OS_USERNAME'] || 'admin',
55
+ :openstack_tenant => ENV['OS_PROJECT_NAME'] || 'admin'
56
+ # FIXME: Identity V3 not properly supported by this call yet
57
+ # :openstack_user_domain => ENV['OS_USER_DOMAIN_NAME'] || 'Default',
58
+ # :openstack_project_domain => ENV['OS_PROJECT_DOMAIN_NAME'] || 'Default',
59
+ ) unless @service
60
+ end
61
+ end
62
+
63
+ it 'CRUD volumes' do
64
+ VCR.use_cassette('volume_crud') do
65
+
66
+ volume_name = "fog-testvolume-1"
67
+ volume_description = 'This is the volume description.'
68
+ volume_size = 1 # in GB
69
+
70
+ # if any of these expectations fail, that means you have left-over
71
+ # objects from your previous failed test run
72
+ puts "Checking for leftovers..." if ENV['DEBUG_VERBOSE']
73
+ expect(@service.volumes.all(:display_name => volume_name).length).to be 0
74
+
75
+ # create volume
76
+ puts "Creating volume..." if ENV['DEBUG_VERBOSE']
77
+ volume_id = @service.volumes.create(
78
+ :display_name => volume_name,
79
+ :display_description => volume_description,
80
+ :size => volume_size
81
+ ).id
82
+ expect(@service.volumes.all(:display_name => volume_name).length).to be 1
83
+
84
+ # check retrieval of volume by ID
85
+ puts "Retrieving volume by ID..." if ENV['DEBUG_VERBOSE']
86
+
87
+ volume = @service.volumes.get(volume_id)
88
+ expect(volume).to be_a(Fog::Volume::OpenStack::Volume)
89
+
90
+ expect(volume.id).to eq(volume_id)
91
+ expect(volume.display_name).to eq(volume_name)
92
+ expect(volume.display_description).to eq(volume_description)
93
+ expect(volume.size).to eq(volume_size)
94
+
95
+ puts "Waiting for volume to be available..." if ENV['DEBUG_VERBOSE']
96
+ volume.wait_for { ready? }
97
+
98
+ # check retrieval of volume by name
99
+ puts "Retrieving volume by name..." if ENV['DEBUG_VERBOSE']
100
+
101
+ volumes = @service.volumes.all(:display_name => volume_name)
102
+ expect(volumes).to contain_exactly(an_instance_of(Fog::Volume::OpenStack::Volume))
103
+ volume = volumes[0]
104
+
105
+ expect(volume.id).to eq(volume_id)
106
+ expect(volume.display_name).to eq(volume_name)
107
+ expect(volume.display_description).to eq(volume_description)
108
+ expect(volume.size).to eq(volume_size)
109
+
110
+ # delete volume
111
+ puts "Deleting volume..." if ENV['DEBUG_VERBOSE']
112
+
113
+ @service.delete_volume(volume_id)
114
+
115
+ Fog.wait_for do # wait for the volume to be deleted
116
+ begin
117
+ volume = @service.volumes.get(volume_id)
118
+ puts "Current volume status: #{volume ? volume.status : 'deleted'}" if ENV['DEBUG_VERBOSE']
119
+ false
120
+ rescue Fog::Compute::OpenStack::NotFound # FIXME: Why is this "Compute", not "Volume"? Copy-paste error?
121
+ true
122
+ end
123
+ end
124
+
125
+ end
126
+ end
127
+
128
+ it 'reads volume types' do
129
+ VCR.use_cassette('volume_type_read') do
130
+
131
+ # list all volume types
132
+ puts "Listing volume types..." if ENV['DEBUG_VERBOSE']
133
+
134
+ types = @service.volume_types.all
135
+ expect(types.length).to be > 0
136
+ types.each do |type|
137
+ expect(type.name).to be_a(String)
138
+ end
139
+
140
+ type_id = types[0].id
141
+ type_name = types[0].name
142
+
143
+ # get a single volume type by ID
144
+ puts "Retrieving volume type by ID..." if ENV['DEBUG_VERBOSE']
145
+
146
+ type = @service.volume_types.get(type_id)
147
+ expect(type).to be_a(Fog::Volume::OpenStack::VolumeType)
148
+ expect(type.id).to eq(type_id)
149
+ expect(type.name).to eq(type_name)
150
+
151
+ # get a single volume type by name
152
+ puts "Retrieving volume type by name..." if ENV['DEBUG_VERBOSE']
153
+
154
+ type = @service.volume_types.all(type_name).first
155
+ expect(type).to be_a(Fog::Volume::OpenStack::VolumeType)
156
+ expect(type.id).to eq(type_id)
157
+ expect(type.name).to eq(type_name)
158
+
159
+ end
160
+ end
161
+
162
+ # TODO: tests for snapshots
163
+ # TODO: tests for quotas
164
+
165
+ end
@@ -0,0 +1,59 @@
1
+ Shindo.tests('Fog::Compute[:openstack] | Compute aggregate requests', ['openstack']) do
2
+ openstack = Fog::Identity[:openstack]
3
+
4
+ @aggregate_format = {
5
+ "availability_zone" => Fog::Nullable::String,
6
+ "created_at" => String,
7
+ "deleted" => Fog::Boolean,
8
+ "deleted_at" => Fog::Nullable::String,
9
+ "id" => Integer,
10
+ "name" => String,
11
+ "updated_at" => Fog::Nullable::String
12
+ }
13
+
14
+ @detailed_aggregate_format = @aggregate_format.merge({
15
+ 'hosts' => Array,
16
+ })
17
+
18
+ @metadata_aggregate_format = @aggregate_format.merge({
19
+ "metadata" => Hash,
20
+ })
21
+
22
+ tests('success') do
23
+ tests('#create_aggregate').data_matches_schema({'aggregate' => @aggregate_format}) do
24
+ aggregate_body = Fog::Compute[:openstack].create_aggregate('test_aggregate').body
25
+ @aggregate = aggregate_body['aggregate']
26
+ aggregate_body
27
+ end
28
+
29
+ tests('#list_aggregates').data_matches_schema({'aggregates' => [@metadata_aggregate_format]}) do
30
+ Fog::Compute[:openstack].list_aggregates.body
31
+ end
32
+
33
+ tests('#update_aggregate').data_matches_schema({'aggregate' => @aggregate_format}) do
34
+ aggregate_attributes = {'name' => 'test_aggregate2'}
35
+ Fog::Compute[:openstack].update_aggregate(@aggregate['id'], aggregate_attributes).body
36
+ end
37
+
38
+ tests('#get_aggregate').data_matches_schema({'aggregate' => @detailed_aggregate_format}) do
39
+ Fog::Compute[:openstack].get_aggregate(@aggregate['id']).body
40
+ end
41
+
42
+ tests('#add_aggregate_host').succeeds do
43
+ @host_name = Fog::Compute[:openstack].hosts.select{ |x| x.service_name == 'compute' }.first.host_name
44
+ Fog::Compute[:openstack].add_aggregate_host(@aggregate['id'], @host_name)
45
+ end
46
+
47
+ tests('#remove_aggregate_host').succeeds do
48
+ Fog::Compute[:openstack].remove_aggregate_host(@aggregate['id'], @host_name)
49
+ end
50
+
51
+ tests('#update_aggregate_metadata').succeeds do
52
+ Fog::Compute[:openstack].update_aggregate_metadata(@aggregate['id'], {'test' => 'test', 'test2' => 'test2'})
53
+ end
54
+
55
+ tests('#delete_aggregate').succeeds do
56
+ Fog::Compute[:openstack].delete_aggregate(@aggregate['id'])
57
+ end
58
+ end
59
+ end
@@ -1,16 +1,17 @@
1
1
  Shindo.tests('Fog::Network[:openstack] | port requests', ['openstack']) do
2
2
 
3
3
  @port_format = {
4
- 'id' => String,
5
- 'name' => String,
6
- 'network_id' => String,
7
- 'fixed_ips' => Array,
8
- 'mac_address' => String,
9
- 'status' => String,
10
- 'admin_state_up' => Fog::Boolean,
11
- 'device_owner' => String,
12
- 'device_id' => String,
13
- 'tenant_id' => String,
4
+ 'id' => String,
5
+ 'name' => String,
6
+ 'network_id' => String,
7
+ 'fixed_ips' => Array,
8
+ 'mac_address' => String,
9
+ 'status' => String,
10
+ 'admin_state_up' => Fog::Boolean,
11
+ 'device_owner' => String,
12
+ 'device_id' => String,
13
+ 'tenant_id' => String,
14
+ 'security_groups' => Array,
14
15
  }
15
16
 
16
17
  tests('success') do
@@ -19,7 +20,7 @@ Shindo.tests('Fog::Network[:openstack] | port requests', ['openstack']) do
19
20
  attributes = {:name => 'port_name', :fixed_ips => [],
20
21
  :mac_address => 'fa:16:3e:62:91:7f', :admin_state_up => true,
21
22
  :device_owner => 'device_owner', :device_id => 'device_id',
22
- :tenant_id => 'tenant_id'}
23
+ :tenant_id => 'tenant_id' ,:security_groups => [] }
23
24
  Fog::Network[:openstack].create_port(network_id, attributes).body
24
25
  end
25
26
 
@@ -10,6 +10,27 @@ Shindo.tests('Fog::Orchestration[:openstack] | stack requests', ['openstack']) d
10
10
  'updated_time' => Time
11
11
  }
12
12
 
13
+ @stack_detailed_format = {
14
+ "parent" => Fog::Nullable::String,
15
+ "disable_rollback" => Fog::Boolean,
16
+ "description" => String,
17
+ "links" => Array,
18
+ "stack_status_reason" => String,
19
+ "stack_name" => String,
20
+ "stack_user_project_id" => String,
21
+ "stack_owner" => String,
22
+ "creation_time" => Fog::Nullable::String,
23
+ "capabilities" => Array,
24
+ "notification_topics" => Array,
25
+ "updated_time" => Fog::Nullable::String,
26
+ "timeout_mins" => Fog::Nullable::String,
27
+ "stack_status" => String,
28
+ "parameters" => Hash,
29
+ "id" => String,
30
+ "outputs" => Array,
31
+ "template_description" => String
32
+ }
33
+
13
34
  @create_format = {
14
35
  'id' => String,
15
36
  'links' => Array,
@@ -24,6 +45,10 @@ Shindo.tests('Fog::Orchestration[:openstack] | stack requests', ['openstack']) d
24
45
  Fog::Orchestration[:openstack].list_stack_data.body
25
46
  end
26
47
 
48
+ tests('#list_stack_data_Detailed').formats({'stacks' => [@stack_detailed_format]}) do
49
+ Fog::Orchestration[:openstack].list_stack_data_detailed.body
50
+ end
51
+
27
52
  tests('#update_stack("teststack")').formats({}) do
28
53
  Fog::Orchestration[:openstack].update_stack("teststack").body
29
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.31.0
4
+ version: 1.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - geemus (Wesley Beary)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-04 00:00:00.000000000 Z
11
+ date: 2015-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.30'
19
+ version: '1.32'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.30'
26
+ version: '1.32'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: fog-json
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -104,16 +104,16 @@ dependencies:
104
104
  name: fog-aws
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - "~>"
107
+ - - ">="
108
108
  - !ruby/object:Gem::Version
109
- version: '0.0'
109
+ version: 0.6.0
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - "~>"
114
+ - - ">="
115
115
  - !ruby/object:Gem::Version
116
- version: '0.0'
116
+ version: 0.6.0
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: fog-brightbox
119
119
  requirement: !ruby/object:Gem::Requirement
@@ -132,16 +132,16 @@ dependencies:
132
132
  name: fog-ecloud
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - ">="
135
+ - - '='
136
136
  - !ruby/object:Gem::Version
137
- version: '0'
137
+ version: 0.1.1
138
138
  type: :runtime
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - ">="
142
+ - - '='
143
143
  - !ruby/object:Gem::Version
144
- version: '0'
144
+ version: 0.1.1
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: fog-google
147
147
  requirement: !ruby/object:Gem::Requirement
@@ -534,6 +534,20 @@ dependencies:
534
534
  - - ">="
535
535
  - !ruby/object:Gem::Version
536
536
  version: '0'
537
+ - !ruby/object:Gem::Dependency
538
+ name: rspec-expectations
539
+ requirement: !ruby/object:Gem::Requirement
540
+ requirements:
541
+ - - ">="
542
+ - !ruby/object:Gem::Version
543
+ version: '0'
544
+ type: :development
545
+ prerelease: false
546
+ version_requirements: !ruby/object:Gem::Requirement
547
+ requirements:
548
+ - - ">="
549
+ - !ruby/object:Gem::Version
550
+ version: '0'
537
551
  - !ruby/object:Gem::Dependency
538
552
  name: vcr
539
553
  requirement: !ruby/object:Gem::Requirement
@@ -2206,6 +2220,8 @@ files:
2206
2220
  - lib/fog/openstack/models/baremetal/ports.rb
2207
2221
  - lib/fog/openstack/models/compute/address.rb
2208
2222
  - lib/fog/openstack/models/compute/addresses.rb
2223
+ - lib/fog/openstack/models/compute/aggregate.rb
2224
+ - lib/fog/openstack/models/compute/aggregates.rb
2209
2225
  - lib/fog/openstack/models/compute/flavor.rb
2210
2226
  - lib/fog/openstack/models/compute/flavors.rb
2211
2227
  - lib/fog/openstack/models/compute/host.rb
@@ -2340,6 +2356,7 @@ files:
2340
2356
  - lib/fog/openstack/requests/baremetal/set_node_power_state.rb
2341
2357
  - lib/fog/openstack/requests/baremetal/set_node_provision_state.rb
2342
2358
  - lib/fog/openstack/requests/baremetal/unset_node_maintenance.rb
2359
+ - lib/fog/openstack/requests/compute/add_aggregate_host.rb
2343
2360
  - lib/fog/openstack/requests/compute/add_fixed_ip.rb
2344
2361
  - lib/fog/openstack/requests/compute/add_flavor_access.rb
2345
2362
  - lib/fog/openstack/requests/compute/add_security_group.rb
@@ -2349,6 +2366,7 @@ files:
2349
2366
  - lib/fog/openstack/requests/compute/boot_from_snapshot.rb
2350
2367
  - lib/fog/openstack/requests/compute/change_server_password.rb
2351
2368
  - lib/fog/openstack/requests/compute/confirm_resize_server.rb
2369
+ - lib/fog/openstack/requests/compute/create_aggregate.rb
2352
2370
  - lib/fog/openstack/requests/compute/create_flavor.rb
2353
2371
  - lib/fog/openstack/requests/compute/create_flavor_metadata.rb
2354
2372
  - lib/fog/openstack/requests/compute/create_image.rb
@@ -2358,6 +2376,7 @@ files:
2358
2376
  - lib/fog/openstack/requests/compute/create_server.rb
2359
2377
  - lib/fog/openstack/requests/compute/create_volume.rb
2360
2378
  - lib/fog/openstack/requests/compute/create_volume_snapshot.rb
2379
+ - lib/fog/openstack/requests/compute/delete_aggregate.rb
2361
2380
  - lib/fog/openstack/requests/compute/delete_flavor.rb
2362
2381
  - lib/fog/openstack/requests/compute/delete_image.rb
2363
2382
  - lib/fog/openstack/requests/compute/delete_key_pair.rb
@@ -2375,6 +2394,7 @@ files:
2375
2394
  - lib/fog/openstack/requests/compute/disassociate_address.rb
2376
2395
  - lib/fog/openstack/requests/compute/enable_service.rb
2377
2396
  - lib/fog/openstack/requests/compute/get_address.rb
2397
+ - lib/fog/openstack/requests/compute/get_aggregate.rb
2378
2398
  - lib/fog/openstack/requests/compute/get_console_output.rb
2379
2399
  - lib/fog/openstack/requests/compute/get_flavor_details.rb
2380
2400
  - lib/fog/openstack/requests/compute/get_flavor_metadata.rb
@@ -2395,6 +2415,7 @@ files:
2395
2415
  - lib/fog/openstack/requests/compute/get_volume_details.rb
2396
2416
  - lib/fog/openstack/requests/compute/list_address_pools.rb
2397
2417
  - lib/fog/openstack/requests/compute/list_addresses.rb
2418
+ - lib/fog/openstack/requests/compute/list_aggregates.rb
2398
2419
  - lib/fog/openstack/requests/compute/list_all_addresses.rb
2399
2420
  - lib/fog/openstack/requests/compute/list_flavors.rb
2400
2421
  - lib/fog/openstack/requests/compute/list_flavors_detail.rb
@@ -2410,10 +2431,12 @@ files:
2410
2431
  - lib/fog/openstack/requests/compute/list_servers_detail.rb
2411
2432
  - lib/fog/openstack/requests/compute/list_services.rb
2412
2433
  - lib/fog/openstack/requests/compute/list_snapshots.rb
2434
+ - lib/fog/openstack/requests/compute/list_snapshots_detail.rb
2413
2435
  - lib/fog/openstack/requests/compute/list_tenants.rb
2414
2436
  - lib/fog/openstack/requests/compute/list_tenants_with_flavor_access.rb
2415
2437
  - lib/fog/openstack/requests/compute/list_usages.rb
2416
2438
  - lib/fog/openstack/requests/compute/list_volumes.rb
2439
+ - lib/fog/openstack/requests/compute/list_volumes_detail.rb
2417
2440
  - lib/fog/openstack/requests/compute/list_zones.rb
2418
2441
  - lib/fog/openstack/requests/compute/live_migrate_server.rb
2419
2442
  - lib/fog/openstack/requests/compute/migrate_server.rb
@@ -2421,6 +2444,7 @@ files:
2421
2444
  - lib/fog/openstack/requests/compute/reboot_server.rb
2422
2445
  - lib/fog/openstack/requests/compute/rebuild_server.rb
2423
2446
  - lib/fog/openstack/requests/compute/release_address.rb
2447
+ - lib/fog/openstack/requests/compute/remove_aggregate_host.rb
2424
2448
  - lib/fog/openstack/requests/compute/remove_fixed_ip.rb
2425
2449
  - lib/fog/openstack/requests/compute/remove_flavor_access.rb
2426
2450
  - lib/fog/openstack/requests/compute/remove_security_group.rb
@@ -2438,6 +2462,8 @@ files:
2438
2462
  - lib/fog/openstack/requests/compute/stop_server.rb
2439
2463
  - lib/fog/openstack/requests/compute/suspend_server.rb
2440
2464
  - lib/fog/openstack/requests/compute/unpause_server.rb
2465
+ - lib/fog/openstack/requests/compute/update_aggregate.rb
2466
+ - lib/fog/openstack/requests/compute/update_aggregate_metadata.rb
2441
2467
  - lib/fog/openstack/requests/compute/update_meta.rb
2442
2468
  - lib/fog/openstack/requests/compute/update_metadata.rb
2443
2469
  - lib/fog/openstack/requests/compute/update_quota.rb
@@ -2634,10 +2660,12 @@ files:
2634
2660
  - lib/fog/openstack/requests/orchestration/create_stack.rb
2635
2661
  - lib/fog/openstack/requests/orchestration/delete_stack.rb
2636
2662
  - lib/fog/openstack/requests/orchestration/get_stack_template.rb
2663
+ - lib/fog/openstack/requests/orchestration/list_events.rb
2637
2664
  - lib/fog/openstack/requests/orchestration/list_resource_events.rb
2638
2665
  - lib/fog/openstack/requests/orchestration/list_resource_types.rb
2639
2666
  - lib/fog/openstack/requests/orchestration/list_resources.rb
2640
2667
  - lib/fog/openstack/requests/orchestration/list_stack_data.rb
2668
+ - lib/fog/openstack/requests/orchestration/list_stack_data_detailed.rb
2641
2669
  - lib/fog/openstack/requests/orchestration/list_stack_events.rb
2642
2670
  - lib/fog/openstack/requests/orchestration/preview_stack.rb
2643
2671
  - lib/fog/openstack/requests/orchestration/show_event_details.rb
@@ -2687,8 +2715,10 @@ files:
2687
2715
  - lib/fog/openstack/requests/volume/get_volume_details.rb
2688
2716
  - lib/fog/openstack/requests/volume/get_volume_type_details.rb
2689
2717
  - lib/fog/openstack/requests/volume/list_snapshots.rb
2718
+ - lib/fog/openstack/requests/volume/list_snapshots_detailed.rb
2690
2719
  - lib/fog/openstack/requests/volume/list_volume_types.rb
2691
2720
  - lib/fog/openstack/requests/volume/list_volumes.rb
2721
+ - lib/fog/openstack/requests/volume/list_volumes_detailed.rb
2692
2722
  - lib/fog/openstack/requests/volume/set_tenant.rb
2693
2723
  - lib/fog/openstack/requests/volume/update_quota.rb
2694
2724
  - lib/fog/openstack/storage.rb
@@ -3925,7 +3955,7 @@ files:
3925
3955
  - spec/fog/openstack/identity_v3/authv3_project.yml
3926
3956
  - spec/fog/openstack/identity_v3/authv3_token.yml
3927
3957
  - spec/fog/openstack/identity_v3/authv3_unscoped.yml
3928
- - spec/fog/openstack/identity_v3/idv2_unscoped_token_v3.yml
3958
+ - spec/fog/openstack/identity_v3/authv3_unscoped_reauth.yml
3929
3959
  - spec/fog/openstack/identity_v3/idv3.yml
3930
3960
  - spec/fog/openstack/identity_v3/idv3_credential.yml
3931
3961
  - spec/fog/openstack/identity_v3/idv3_credential_crud.yml
@@ -3936,6 +3966,7 @@ files:
3936
3966
  - spec/fog/openstack/identity_v3/idv3_endpoint.yml
3937
3967
  - spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml
3938
3968
  - spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml
3969
+ - spec/fog/openstack/identity_v3/idv3_other_region.yml
3939
3970
  - spec/fog/openstack/identity_v3/idv3_policy.yml
3940
3971
  - spec/fog/openstack/identity_v3/idv3_policy_crud.yml
3941
3972
  - spec/fog/openstack/identity_v3/idv3_project.yml
@@ -3949,6 +3980,10 @@ files:
3949
3980
  - spec/fog/openstack/identity_v3/idv3_user_crud.yml
3950
3981
  - spec/fog/openstack/identity_v3/idv3_users.yml
3951
3982
  - spec/fog/openstack/identity_v3_spec.rb
3983
+ - spec/fog/openstack/volume/volume_common_setup.yml
3984
+ - spec/fog/openstack/volume/volume_crud.yml
3985
+ - spec/fog/openstack/volume/volume_type_read.yml
3986
+ - spec/fog/openstack/volume_spec.rb
3952
3987
  - spec/fog/orchestration_spec.rb
3953
3988
  - spec/fog/storage_spec.rb
3954
3989
  - spec/fog/support_spec.rb
@@ -4343,6 +4378,7 @@ files:
4343
4378
  - tests/openstack/requests/baremetal/node_tests.rb
4344
4379
  - tests/openstack/requests/baremetal/port_tests.rb
4345
4380
  - tests/openstack/requests/compute/address_tests.rb
4381
+ - tests/openstack/requests/compute/aggregate_tests.rb
4346
4382
  - tests/openstack/requests/compute/flavor_tests.rb
4347
4383
  - tests/openstack/requests/compute/helper.rb
4348
4384
  - tests/openstack/requests/compute/image_tests.rb
@@ -4789,7 +4825,7 @@ test_files:
4789
4825
  - spec/fog/openstack/identity_v3/authv3_project.yml
4790
4826
  - spec/fog/openstack/identity_v3/authv3_token.yml
4791
4827
  - spec/fog/openstack/identity_v3/authv3_unscoped.yml
4792
- - spec/fog/openstack/identity_v3/idv2_unscoped_token_v3.yml
4828
+ - spec/fog/openstack/identity_v3/authv3_unscoped_reauth.yml
4793
4829
  - spec/fog/openstack/identity_v3/idv3.yml
4794
4830
  - spec/fog/openstack/identity_v3/idv3_credential.yml
4795
4831
  - spec/fog/openstack/identity_v3/idv3_credential_crud.yml
@@ -4800,6 +4836,7 @@ test_files:
4800
4836
  - spec/fog/openstack/identity_v3/idv3_endpoint.yml
4801
4837
  - spec/fog/openstack/identity_v3/idv3_endpoints_crud.yml
4802
4838
  - spec/fog/openstack/identity_v3/idv3_group_crud_mutation.yml
4839
+ - spec/fog/openstack/identity_v3/idv3_other_region.yml
4803
4840
  - spec/fog/openstack/identity_v3/idv3_policy.yml
4804
4841
  - spec/fog/openstack/identity_v3/idv3_policy_crud.yml
4805
4842
  - spec/fog/openstack/identity_v3/idv3_project.yml
@@ -4813,6 +4850,10 @@ test_files:
4813
4850
  - spec/fog/openstack/identity_v3/idv3_user_crud.yml
4814
4851
  - spec/fog/openstack/identity_v3/idv3_users.yml
4815
4852
  - spec/fog/openstack/identity_v3_spec.rb
4853
+ - spec/fog/openstack/volume/volume_common_setup.yml
4854
+ - spec/fog/openstack/volume/volume_crud.yml
4855
+ - spec/fog/openstack/volume/volume_type_read.yml
4856
+ - spec/fog/openstack/volume_spec.rb
4816
4857
  - spec/fog/orchestration_spec.rb
4817
4858
  - spec/fog/storage_spec.rb
4818
4859
  - spec/fog/support_spec.rb
@@ -5207,6 +5248,7 @@ test_files:
5207
5248
  - tests/openstack/requests/baremetal/node_tests.rb
5208
5249
  - tests/openstack/requests/baremetal/port_tests.rb
5209
5250
  - tests/openstack/requests/compute/address_tests.rb
5251
+ - tests/openstack/requests/compute/aggregate_tests.rb
5210
5252
  - tests/openstack/requests/compute/flavor_tests.rb
5211
5253
  - tests/openstack/requests/compute/helper.rb
5212
5254
  - tests/openstack/requests/compute/image_tests.rb