fog-profitbricks 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -3
  3. data/Rakefile +1 -1
  4. data/examples/pb_demo.rb +2 -8
  5. data/lib/fog/profitbricks/compute.rb +249 -105
  6. data/lib/fog/profitbricks/models/compute/datacenter.rb +63 -9
  7. data/lib/fog/profitbricks/models/compute/firewall_rule.rb +3 -1
  8. data/lib/fog/profitbricks/models/compute/group.rb +7 -4
  9. data/lib/fog/profitbricks/models/compute/image.rb +3 -0
  10. data/lib/fog/profitbricks/models/compute/ip_block.rb +2 -0
  11. data/lib/fog/profitbricks/models/compute/lan.rb +2 -1
  12. data/lib/fog/profitbricks/models/compute/load_balancer.rb +2 -0
  13. data/lib/fog/profitbricks/models/compute/location.rb +1 -0
  14. data/lib/fog/profitbricks/models/compute/nic.rb +2 -0
  15. data/lib/fog/profitbricks/models/compute/request.rb +1 -0
  16. data/lib/fog/profitbricks/models/compute/resource.rb +1 -0
  17. data/lib/fog/profitbricks/models/compute/server.rb +5 -1
  18. data/lib/fog/profitbricks/models/compute/share.rb +4 -2
  19. data/lib/fog/profitbricks/models/compute/snapshot.rb +2 -0
  20. data/lib/fog/profitbricks/models/compute/user.rb +4 -1
  21. data/lib/fog/profitbricks/requests/compute/add_share.rb +2 -2
  22. data/lib/fog/profitbricks/requests/compute/add_user_to_group.rb +4 -4
  23. data/lib/fog/profitbricks/requests/compute/associate_nic_to_load_balancer.rb +1 -3
  24. data/lib/fog/profitbricks/requests/compute/attach_cdrom.rb +18 -17
  25. data/lib/fog/profitbricks/requests/compute/attach_volume.rb +9 -2
  26. data/lib/fog/profitbricks/requests/compute/create_datacenter.rb +71 -25
  27. data/lib/fog/profitbricks/requests/compute/create_firewall_rule.rb +11 -4
  28. data/lib/fog/profitbricks/requests/compute/create_group.rb +22 -4
  29. data/lib/fog/profitbricks/requests/compute/create_ip_block.rb +1 -1
  30. data/lib/fog/profitbricks/requests/compute/create_lan.rb +1 -1
  31. data/lib/fog/profitbricks/requests/compute/create_load_balancer.rb +4 -43
  32. data/lib/fog/profitbricks/requests/compute/create_nic.rb +4 -0
  33. data/lib/fog/profitbricks/requests/compute/create_server.rb +6 -1
  34. data/lib/fog/profitbricks/requests/compute/create_user.rb +20 -1
  35. data/lib/fog/profitbricks/requests/compute/create_volume.rb +5 -1
  36. data/lib/fog/profitbricks/requests/compute/create_volume_snapshot.rb +1 -1
  37. data/lib/fog/profitbricks/requests/compute/delete_group.rb +1 -1
  38. data/lib/fog/profitbricks/requests/compute/delete_share.rb +1 -1
  39. data/lib/fog/profitbricks/requests/compute/delete_user.rb +1 -1
  40. data/lib/fog/profitbricks/requests/compute/detach_cdrom.rb +3 -3
  41. data/lib/fog/profitbricks/requests/compute/get_attached_cdrom.rb +3 -3
  42. data/lib/fog/profitbricks/requests/compute/get_datacenter.rb +1 -1
  43. data/lib/fog/profitbricks/requests/compute/get_firewall_rule.rb +1 -1
  44. data/lib/fog/profitbricks/requests/compute/get_group.rb +1 -1
  45. data/lib/fog/profitbricks/requests/compute/get_image.rb +1 -1
  46. data/lib/fog/profitbricks/requests/compute/get_ip_block.rb +1 -1
  47. data/lib/fog/profitbricks/requests/compute/get_lan.rb +1 -1
  48. data/lib/fog/profitbricks/requests/compute/get_load_balanced_nic.rb +7 -1
  49. data/lib/fog/profitbricks/requests/compute/get_load_balancer.rb +1 -1
  50. data/lib/fog/profitbricks/requests/compute/get_location.rb +1 -1
  51. data/lib/fog/profitbricks/requests/compute/get_nic.rb +2 -2
  52. data/lib/fog/profitbricks/requests/compute/get_request.rb +8 -1
  53. data/lib/fog/profitbricks/requests/compute/get_resource_by_type.rb +8 -1
  54. data/lib/fog/profitbricks/requests/compute/get_resources_by_type.rb +9 -3
  55. data/lib/fog/profitbricks/requests/compute/get_server.rb +1 -1
  56. data/lib/fog/profitbricks/requests/compute/get_share.rb +1 -1
  57. data/lib/fog/profitbricks/requests/compute/get_snapshot.rb +1 -1
  58. data/lib/fog/profitbricks/requests/compute/get_user.rb +1 -1
  59. data/lib/fog/profitbricks/requests/compute/get_volume.rb +1 -1
  60. data/lib/fog/profitbricks/requests/compute/list_attached_cdroms.rb +3 -1
  61. data/lib/fog/profitbricks/requests/compute/list_attached_volumes.rb +3 -3
  62. data/lib/fog/profitbricks/requests/compute/remove_user_from_group.rb +2 -2
  63. data/lib/fog/profitbricks/requests/compute/update_datacenter.rb +3 -8
  64. data/lib/fog/profitbricks/requests/compute/update_firewall_rule.rb +1 -1
  65. data/lib/fog/profitbricks/requests/compute/update_group.rb +5 -5
  66. data/lib/fog/profitbricks/requests/compute/update_nic.rb +2 -4
  67. data/lib/fog/profitbricks/requests/compute/update_server.rb +3 -4
  68. data/lib/fog/profitbricks/requests/compute/update_share.rb +3 -3
  69. data/lib/fog/profitbricks/requests/compute/update_user.rb +2 -2
  70. data/lib/fog/profitbricks/version.rb +1 -1
  71. data/tests/profitbricks/models/compute/compute_tests.rb +1071 -267
  72. metadata +26 -33
  73. data/gemfiles/Gemfile.1.8.7 +0 -6
  74. data/tests/profitbricks/requests/compute/composite_create_tests.rb +0 -174
  75. data/tests/profitbricks/requests/compute/flavor_tests.rb +0 -40
  76. data/tests/profitbricks/requests/compute/location_tests.rb +0 -42
  77. data/tests/profitbricks/requests/compute/nic_tests.rb +0 -268
  78. data/tests/profitbricks/requests/compute/request_tests.rb +0 -50
  79. data/tests/profitbricks/requests/compute/server_tests.rb +0 -462
@@ -1,268 +0,0 @@
1
- Shindo.tests('Fog::Compute[:profitbricks] | nic request', %w(profitbricks compute)) do
2
- @resource_schema = {
3
- 'id' => String,
4
- 'type' => String,
5
- 'href' => String,
6
- 'metadata' => Hash,
7
- 'properties' => Hash
8
- }
9
-
10
- @extended_resource_schema = {
11
- 'id' => String,
12
- 'type' => String,
13
- 'href' => String,
14
- 'metadata' => Hash,
15
- 'properties' => Hash,
16
- 'entities' => Hash
17
- }
18
-
19
- @minimal_schema_with_items = {
20
- 'id' => String,
21
- 'type' => String,
22
- 'href' => String,
23
- 'items' => Array
24
- }
25
-
26
- service = Fog::Compute[:profitbricks]
27
-
28
- tests('success') do
29
- Excon.defaults[:connection_timeout] = 200
30
-
31
- tests('#create_datacenter').data_matches_schema(@resource_schema) do
32
- options = {}
33
- options[:name] = 'FogTestDataCenter'
34
- options[:location] = 'us/las'
35
- options[:description] = 'Part of server tests suite'
36
-
37
- createDatacenterResponse = service.create_datacenter(options)
38
- @datacenter_id = createDatacenterResponse.body['id']
39
-
40
- createDatacenterResponse.body
41
- end
42
-
43
- tests('#get_all_images').data_matches_schema(@minimal_schema_with_items) do
44
- getAllImagesResponse = service.get_all_images
45
-
46
- data = getAllImagesResponse.body['items'].find do |image|
47
- if image['properties']
48
- image['properties']['location'] == 'us/las' &&
49
- image['properties']['imageType'] == 'CDROM' &&
50
- image['properties']['licenceType'] == 'LINUX'
51
- else
52
- image['location'] == 'us/las' &&
53
- image['imageType'] == 'CDROM' &&
54
- image['licenceType'] == 'LINUX'
55
- end
56
- end
57
-
58
- @image_id = data['id']
59
- getAllImagesResponse.body
60
- end
61
-
62
- tests('#create_server').data_matches_schema(@resource_schema) do
63
- properties = {}
64
- properties[:name] = 'FogTestServer_3'
65
- properties[:cores] = 1
66
- properties[:ram] = 1024
67
-
68
- entities = {}
69
- entities[:volumes] = {}
70
- entities[:volumes]['items'] = [
71
- {
72
- 'properties' => {
73
- 'size' => 5,
74
- 'name' => 'FogTestVolume',
75
- 'licenceType' => 'LINUX',
76
- 'type' => 'HDD'
77
- }
78
- }
79
- ]
80
-
81
- createServerResponse = service.create_server(@datacenter_id, properties, entities)
82
- @server_id = createServerResponse.body['id']
83
-
84
- sleep(60) if ENV["FOG_MOCK"] != "true"
85
-
86
- createServerResponse.body
87
- end
88
-
89
- tests('#get_all_lans').data_matches_schema(@minimal_schema_with_items) do
90
- getAllLansResponse = service.get_all_lans(@datacenter_id)
91
- getAllLansResponse.body
92
- end
93
-
94
- tests('#create_lan').data_matches_schema(@extended_resource_schema) do
95
- options = {}
96
- options[:name] = 'FogTestLan_2'
97
- options[:public] = 'true'
98
-
99
- createLanResponse = service.create_lan(@datacenter_id, options)
100
- @lan_id = createLanResponse.body['id']
101
-
102
- sleep(60) if ENV["FOG_MOCK"] != "true"
103
-
104
- createLanResponse.body
105
- end
106
-
107
- tests('#update_lan').data_matches_schema(@extended_resource_schema) do
108
- updateLanResponse = service.update_lan(@datacenter_id, @lan_id, 'name' => 'FogLan_2_Rename')
109
- updateLanResponse.body
110
- end
111
-
112
- tests('#get_lan').data_matches_schema(@extended_resource_schema) do
113
- service.get_lan(@datacenter_id, @lan_id).body
114
- end
115
-
116
- tests('#create_nic').data_matches_schema(@extended_resource_schema) do
117
- options = {}
118
- options[:name] = 'FogTestNic_2'
119
- options[:lan] = @lan_id
120
- options[:nat] = false
121
-
122
- createNicResponse = service.create_nic(@datacenter_id, @server_id, options, {})
123
- @nic_id = createNicResponse.body['id']
124
-
125
- createNicResponse.body
126
- end
127
-
128
- tests('#get_nic').data_matches_schema(@extended_resource_schema) do
129
- sleep(60) if ENV["FOG_MOCK"] != "true"
130
-
131
- getNicResponse = service.get_nic(@datacenter_id, @server_id, @nic_id)
132
- getNicResponse.body
133
- end
134
-
135
- tests('#update_nic').data_matches_schema(@extended_resource_schema) do
136
- updateNicResponse = service.update_nic(@datacenter_id, @server_id, @nic_id, 'name' => 'FogTestNic_2_Rename')
137
- updateNicResponse.body
138
- end
139
-
140
- tests('#get_all_nic').data_matches_schema(@minimal_schema_with_items) do
141
- getAllNicResponse = service.get_all_nic(@datacenter_id, @server_id)
142
- getAllNicResponse.body
143
- end
144
-
145
- tests('#create_ip_block').data_matches_schema(@resource_schema) do
146
- options = {}
147
- options[:location] = 'us/las'
148
- options[:size] = 3
149
- options[:name] = 'Fog test IP Block 1'
150
-
151
- createIpBlockResponse = service.create_ip_block(options)
152
- @ip_block_id = createIpBlockResponse.body['id']
153
- createIpBlockResponse.body
154
- end
155
-
156
- tests('#get_ip_block').data_matches_schema(@resource_schema) do
157
- service.get_ip_block(@ip_block_id).body
158
- end
159
-
160
- tests('#get_all_ip_blocks').data_matches_schema(@minimal_schema_with_items) do
161
- getAllIpBlocksResponse = service.get_all_ip_blocks
162
- getAllIpBlocksResponse.body
163
- end
164
-
165
- tests('#create_firewall_rule').data_matches_schema(@resource_schema) do
166
- options = {}
167
- options[:name] = 'Fog test Firewall Rule 3'
168
- options[:protocol] = 'TCP'
169
- options[:portRangeStart] = '80'
170
- options[:portRangeEnd] = '80'
171
-
172
- createFirewallRuleResponse = service.create_firewall_rule(@datacenter_id, @server_id, @nic_id, options)
173
- @firewall_rule_id = createFirewallRuleResponse.body['id']
174
- createFirewallRuleResponse.body
175
- end
176
-
177
- tests('#get_firewall_rule').data_matches_schema(@resource_schema) do
178
- sleep(60) if ENV["FOG_MOCK"] != "true"
179
- service.get_firewall_rule(@datacenter_id, @server_id, @nic_id, @firewall_rule_id).body
180
- end
181
-
182
- tests('#update_firewall_rule').data_matches_schema(@resource_schema) do
183
- updateFirewallRuleResponse = service.update_firewall_rule(@datacenter_id, @server_id, @nic_id, @firewall_rule_id, 'name' => 'Fog test Firewall Rule 2 Rename')
184
- updateFirewallRuleResponse.body
185
- end
186
-
187
- tests('#get_all_firewall_rules').data_matches_schema(@minimal_schema_with_items) do
188
- getAllFirewallRulesResponse = service.get_all_firewall_rules(@datacenter_id, @server_id, @nic_id)
189
- getAllFirewallRulesResponse.body
190
- end
191
-
192
- tests('#create_load_balancer').data_matches_schema(@resource_schema) do
193
- options = {}
194
- options[:name] = 'FogTestLoadBalancer_2'
195
-
196
- createLoadBalancerResponse = service.create_load_balancer(@datacenter_id, options, {})
197
- @load_balancer_id = createLoadBalancerResponse.body['id']
198
- createLoadBalancerResponse.body
199
- end
200
-
201
- tests('#get_load_balancer').data_matches_schema(@resource_schema) do
202
- sleep(60) if ENV["FOG_MOCK"] != "true"
203
-
204
- service.get_load_balancer(@datacenter_id, @load_balancer_id).body
205
- end
206
-
207
- tests('#update_load_balancer').data_matches_schema(@resource_schema) do
208
- updateLoadBalancerResponse = service.update_load_balancer(@datacenter_id, @load_balancer_id, 'name' => 'FogTestLoadBalancer_2_Rename')
209
- updateLoadBalancerResponse.body
210
- end
211
-
212
- tests('#get_all_load_balancers').data_matches_schema(@minimal_schema_with_items) do
213
- getAllLoadBalancersResponse = service.get_all_load_balancers(@datacenter_id)
214
- getAllLoadBalancersResponse.body
215
- end
216
-
217
- tests('#associate_nic_to_load_balancer').succeeds do
218
- associateNicToLoadBalancerResponse = service.associate_nic_to_load_balancer(@datacenter_id, @load_balancer_id, @nic_id)
219
- associateNicToLoadBalancerResponse.status == 202
220
- end
221
-
222
- tests('#get_all_load_balancerd_nics').succeeds do
223
- getAllLoadBalancedNicsResponse = service.get_all_load_balanced_nics(@datacenter_id, @load_balancer_id)
224
- getAllLoadBalancedNicsResponse.status == 200
225
- end
226
-
227
- tests('#get_load_balanced_nic').succeeds do
228
- sleep(60) if ENV["FOG_MOCK"] != "true"
229
- getAllLoadBalancedNicsResponse = service.get_load_balanced_nic(@datacenter_id, @load_balancer_id, @nic_id)
230
- getAllLoadBalancedNicsResponse.status == 200
231
- end
232
-
233
- tests('#remove_nic_association').succeeds do
234
- removeNicAssociationResponse = service.remove_nic_association(@datacenter_id, @load_balancer_id, @nic_id)
235
- removeNicAssociationResponse.status == 202
236
- end
237
-
238
- tests('#delete_load_balancer').succeeds do
239
- deleteLoadBalancerResponse = service.delete_load_balancer(@datacenter_id, @load_balancer_id)
240
- deleteLoadBalancerResponse.status == 202
241
- end
242
-
243
- tests('#delete_firewall_rule').succeeds do
244
- deleteFirewallRuleResponse = service.delete_firewall_rule(@datacenter_id, @server_id, @nic_id, @firewall_rule_id)
245
- deleteFirewallRuleResponse.status == 202
246
- end
247
-
248
- tests('#delete_ip_block').succeeds do
249
- deleteIpBlockResponse = service.delete_ip_block(@ip_block_id)
250
- deleteIpBlockResponse.status == 202
251
- end
252
-
253
- tests('#delete_nic').succeeds do
254
- deleteNicResponse = service.delete_nic(@datacenter_id, @server_id, @nic_id)
255
- deleteNicResponse.status == 202
256
- end
257
-
258
- tests('#delete_server').succeeds do
259
- deleteServerResponse = service.delete_server(@datacenter_id, @server_id)
260
- deleteServerResponse.status == 202
261
- end
262
-
263
- tests('#delete_datacenter').succeeds do
264
- deleteDatacenterResponse = service.delete_datacenter(@datacenter_id)
265
- deleteDatacenterResponse.status == 202
266
- end
267
- end
268
- end
@@ -1,50 +0,0 @@
1
- Shindo.tests('Fog::Compute[:profitbricks] | request request', %w(profitbricks compute)) do
2
- @requests_schema = {
3
- 'id' => String,
4
- 'type' => String,
5
- 'href' => String,
6
- 'items' => Array
7
- }
8
-
9
- @request_schema = {
10
- 'id' => String,
11
- 'type' => String,
12
- 'href' => String,
13
- 'metadata' => Hash,
14
- 'properties' => Hash
15
- }
16
-
17
- service = Fog::Compute[:profitbricks]
18
-
19
- tests('success') do
20
- Excon.defaults[:connection_timeout] = 500
21
-
22
- tests('#get_all_requests').data_matches_schema(@requests_schema) do
23
- data = service.get_all_requests
24
-
25
- @request_id = data.body['items'][0]['id']
26
-
27
- data.body
28
- end
29
-
30
- tests('#get_request').data_matches_schema(@request_schema) do
31
- data = service.get_request(@request_id)
32
- data.body
33
- end
34
-
35
- tests('#get_request_status').data_matches_schema(@request_schema) do
36
- data = service.get_request(@request_id)
37
- data.body
38
- end
39
- end
40
-
41
- tests('failure') do
42
- tests('#get_location').raises(ArgumentError) do
43
- service.get_request
44
- end
45
-
46
- tests('#get_location_status').raises(ArgumentError) do
47
- service.get_request_status
48
- end
49
- end
50
- end
@@ -1,462 +0,0 @@
1
- Shindo.tests('Fog::Compute[:profitbricks] | server request', %w(profitbricks compute)) do
2
- @resource_schema = {
3
- 'id' => String,
4
- 'type' => String,
5
- 'href' => String,
6
- 'metadata' => Hash,
7
- 'properties' => Hash
8
- }
9
-
10
- @minimal_schema_with_items = {
11
- 'id' => String,
12
- 'type' => String,
13
- 'href' => String,
14
- 'items' => Array
15
- }
16
-
17
- @volume_schema = {
18
- "id" => String,
19
- "type" => String,
20
- "href" => String,
21
- "name" => String,
22
- "description" => String,
23
- "location" => String,
24
- "size" => Float,
25
- "cpuHotPlug" => String,
26
- "cpuHotUnplug" => String,
27
- "ramHotPlug" => String,
28
- "ramHotUnplug" => String,
29
- "nicHotPlug" => String,
30
- "nicHotUnplug" => String,
31
- "discVirtioHotUnplug" => String,
32
- "discScsiHotPlug" => String,
33
- "discScsiHotUnplug" => String,
34
- "licenceType" => String,
35
- "imageType" => String,
36
- "public" => String,
37
- "createdDate" => String,
38
- "createdBy" => String,
39
- "etag" => String,
40
- "lastModifiedDate" => String,
41
- "lastModifiedBy" => String,
42
- "state" => String
43
- }
44
-
45
- @image_schema = {
46
- "id" => String,
47
- "type" => String,
48
- "href" => String,
49
- "name" => String,
50
- "description" => String,
51
- "location" => String,
52
- "size" => Float,
53
- "cpuHotPlug" => String,
54
- "cpuHotUnplug" => String,
55
- "ramHotPlug" => String,
56
- "ramHotUnplug" => String,
57
- "nicHotPlug" => String,
58
- "nicHotUnplug" => String,
59
- "discVirtioHotUnplug" => String,
60
- "discScsiHotPlug" => String,
61
- "discScsiHotUnplug" => String,
62
- "imageType" => String,
63
- "public" => String,
64
- "createdDate" => String,
65
- "createdBy" => String,
66
- "etag" => String,
67
- "lastModifiedDate" => String,
68
- "lastModifiedBy" => String,
69
- "state" => String
70
- }
71
-
72
- service = Fog::Compute[:profitbricks]
73
-
74
- tests('success') do
75
- Excon.defaults[:connection_timeout] = 500
76
-
77
- tests('#create_datacenter').data_matches_schema(@resource_schema) do
78
- options = {}
79
- options[:name] = 'FogDataCenter'
80
- options[:location] = 'us/las'
81
- options[:description] = 'Part of server tests suite'
82
-
83
- createDatacenterResponse = service.create_datacenter(options)
84
- @datacenter_id = createDatacenterResponse.body['id']
85
-
86
- createDatacenterResponse.body
87
- end
88
-
89
- tests('#get_datacenter').data_matches_schema(@resource_schema) do
90
- getDatacenterResponse = service.get_datacenter(@datacenter_id)
91
- getDatacenterResponse.body
92
- end
93
-
94
- tests('#get_all_datacenters').data_matches_schema(@minimal_schema_with_items) do
95
- getAllDatacentersResponse = service.get_all_datacenters
96
- getAllDatacentersResponse.body
97
- end
98
-
99
- tests('#update_datacenter').data_matches_schema(@resource_schema) do
100
- options = {}
101
- options[:name] = 'FogDataCenterRename'
102
- options[:description] = 'FogDataCenterDescriptionUpdated'
103
-
104
- updateDatacenterResponse = service.update_datacenter(
105
- @datacenter_id, options
106
- )
107
-
108
- updateDatacenterResponse.body
109
- end
110
-
111
- tests('#get_all_images').data_matches_schema(@minimal_schema_with_items) do
112
- getAllImagesResponse = service.get_all_images
113
-
114
- data = getAllImagesResponse.body['items'].find do |image|
115
- if image['properties']
116
- image['properties']['location'] == 'us/las' &&
117
- image['properties']['imageType'] == 'CDROM' &&
118
- image['properties']['licenceType'] == 'LINUX'
119
- else
120
- image['location'] == 'us/las' &&
121
- image['imageType'] == 'CDROM' &&
122
- image['licenceType'] == 'LINUX'
123
- end
124
- end
125
-
126
- @image_id = data['id']
127
- getAllImagesResponse.body
128
- end
129
-
130
- if Fog.mock?
131
- tests('#get_image').data_matches_schema(@resource_schema) do
132
- getImageResponse = service.get_image(@image_id)
133
- getImageResponse.body
134
- end
135
- end
136
-
137
- unless Fog.mock?
138
- tests('#get_image').data_matches_schema(@resource_schema) do
139
- getImageResponse = service.get_image(@image_id)
140
- getImageResponse.body
141
- end
142
- end
143
-
144
- if Fog.mock?
145
- tests('#update_image').data_matches_schema(@resource_schema) do
146
- options = {}
147
- options[:name] = 'FogImageRename'
148
- options[:description] = 'FogImageDescriptionUpdated'
149
-
150
- updateImageResponse = service.update_image(
151
- @image_id, options
152
- )
153
-
154
- updateImageResponse.body
155
- end
156
- end
157
-
158
- tests('#get_all_volumes').data_matches_schema(@minimal_schema_with_items) do
159
- if dc = service.get_all_datacenters.body["items"].find do |datacenter|
160
- datacenter["id"] == @datacenter_id
161
- end
162
- else
163
- raise Fog::Errors::NotFound, "The requested resource could not be found"
164
- end
165
-
166
- getAllVolumesResponse = service.get_all_volumes(dc['id'])
167
- getAllVolumesResponse.body
168
- end
169
-
170
- tests('#create_volume').data_matches_schema(@resource_schema) do
171
- options = {}
172
- options[:name] = 'FogRestTestVolume'
173
- options[:size] = 5
174
- options[:licenceType] = 'LINUX'
175
- options[:type] = 'HDD'
176
- options[:availabilityZone] = 'AUTO'
177
-
178
- createVolumeResponse = service.create_volume(@datacenter_id, options)
179
- @volume_id = createVolumeResponse.body['id']
180
-
181
- sleep(5) if ENV["FOG_MOCK"] != "true"
182
-
183
- createVolumeResponse.body
184
- end
185
-
186
- tests('#get_volume').data_matches_schema(@resource_schema) do
187
- getVolumeResponse = service.get_volume(@datacenter_id, @volume_id)
188
- getVolumeResponse.body
189
- end
190
-
191
- tests('#create_volume_snapshot').data_matches_schema(@resource_schema) do
192
- options = {}
193
- options[:name] = 'FogRestTestSnapshot'
194
- options[:description] = 'Testing fog create snapshot'
195
-
196
- sleep(15) if ENV["FOG_MOCK"] != "true"
197
-
198
- createVolumeSnapshotResponse = service.create_volume_snapshot(@datacenter_id, @volume_id, options)
199
- @snapshot_id = createVolumeSnapshotResponse.body['id']
200
-
201
- createVolumeSnapshotResponse.body
202
- end
203
-
204
- tests('#update_volume').data_matches_schema(@resource_schema) do
205
- options = {}
206
- options[:name] = 'FogRestTestVolumeRenamed'
207
- options[:size] = 6
208
-
209
- updateVolumeResponse = service.update_volume(@datacenter_id, @volume_id, options)
210
-
211
- updateVolumeResponse.body
212
- end
213
-
214
- tests('#update_snapshot').data_matches_schema(@resource_schema) do
215
- options = {}
216
- options[:name] = 'FogRestTestSnapshotRename'
217
- options[:description] = 'Testing fog create snapshot - updated description'
218
- options[:ramHotPlug] = true
219
-
220
- updateSnapshotResponse = service.update_snapshot(@snapshot_id, options)
221
-
222
- updateSnapshotResponse.body
223
- end
224
-
225
- tests('#get_snapshot').data_matches_schema(@resource_schema) do
226
- getSnapshotResponse = service.get_snapshot(@snapshot_id)
227
- getSnapshotResponse.body
228
- end
229
-
230
- tests('#restore_volume_snapshot').succeeds do
231
- options = {}
232
- options[:snapshot_id] = @snapshot_id
233
-
234
- restoreVolumeSnapshotResponse = service.restore_volume_snapshot(@datacenter_id, @volume_id, options)
235
- restoreVolumeSnapshotResponse.status == 202
236
- end
237
-
238
- tests('#get_all_snapshots').data_matches_schema(@minimal_schema_with_items) do
239
- getAllSnapshotsResponse = service.get_all_snapshots
240
- getAllSnapshotsResponse.body
241
- end
242
-
243
- tests('#create_server').data_matches_schema(@resource_schema) do
244
- properties = {}
245
- properties[:name] = 'FogTestServer_2'
246
- properties[:cores] = 1
247
- properties[:ram] = 1024
248
- properties[:availabilityZone] = 'ZONE_1'
249
- properties[:cpuFamily] = 'INTEL_XEON'
250
-
251
- entities = {}
252
- entities[:volumes] = {}
253
- entities[:volumes]['items'] = [
254
- {
255
- 'id' => @volume_id
256
- }
257
- ]
258
-
259
- createServerResponse = service.create_server(@datacenter_id, properties, entities)
260
- @server_id = createServerResponse.body['id']
261
-
262
- sleep(60) if ENV["FOG_MOCK"] != "true"
263
-
264
- createServerResponse.body
265
- end
266
-
267
- tests('#get_server').data_matches_schema(@resource_schema) do
268
- sleep(10) if ENV["FOG_MOCK"] != "true"
269
- getServerResponse = service.get_server(@datacenter_id, @server_id)
270
- getServerResponse.body
271
- end
272
-
273
- tests('#list_attached_volumes').data_matches_schema(@minimal_schema_with_items) do
274
- listAttachedVolumesResponse = service.list_attached_volumes(@datacenter_id, @server_id)
275
- listAttachedVolumesResponse.body
276
- end
277
-
278
- tests('#attach_volume').data_matches_schema(@resource_schema) do
279
- attachVolumeResponse = service.attach_volume(@datacenter_id, @server_id, @volume_id)
280
-
281
- attachVolumeResponse.body
282
- end
283
-
284
- tests('#get_attached_volume').data_matches_schema(@resource_schema) do
285
- getAttachedVolumeResponse = service.get_attached_volume(@datacenter_id, @server_id, @volume_id)
286
- getAttachedVolumeResponse.body
287
- end
288
-
289
- tests('#detach_volume').succeeds do
290
- detachVolumeResponse = service.detach_volume(@datacenter_id, @server_id, @volume_id)
291
- detachVolumeResponse.status == 202
292
- end
293
-
294
- unless Fog.mock?
295
- tests('#attach_cdrom').data_matches_schema(@resource_schema) do
296
- attachCdromResponse = service.attach_cdrom(@datacenter_id, @server_id, @image_id)
297
-
298
- @cdrom_id = attachCdromResponse.body['id']
299
-
300
- attachCdromResponse.body
301
- end
302
- end
303
-
304
- if Fog.mock?
305
- tests('#attach_cdrom').succeeds do
306
- attachCdromResponse = service.attach_cdrom(@datacenter_id, @server_id, @image_id)
307
-
308
- @cdrom_id = attachCdromResponse.body['id']
309
-
310
- attachCdromResponse.body
311
- end
312
- end
313
-
314
- unless Fog.mock?
315
- tests('#get_attached_cdrom').data_matches_schema(@resource_schema) do
316
- sleep(60)
317
- getAttachedVolumeResponse = service.get_attached_cdrom(@datacenter_id, @server_id, @cdrom_id)
318
- getAttachedVolumeResponse.body
319
- end
320
- end
321
-
322
- if Fog.mock?
323
- tests('#get_attached_cdrom').succeeds do
324
- getAttachedVolumeResponse = service.get_attached_cdrom(@datacenter_id, @server_id, @cdrom_id)
325
- getAttachedVolumeResponse.body
326
- end
327
- end
328
-
329
- tests('#list_attached_cdroms').data_matches_schema(@minimal_schema_with_items) do
330
- sleep(10) if ENV["FOG_MOCK"] != "true"
331
-
332
- listAttachedCdromsResponse = service.list_attached_cdroms(@datacenter_id, @server_id)
333
-
334
- listAttachedCdromsResponse.body
335
- end
336
-
337
- tests('#detach_cdrom').succeeds do
338
- detachVolumeResponse = service.detach_cdrom(@datacenter_id, @server_id, @cdrom_id)
339
- detachVolumeResponse.status == 202
340
- end
341
-
342
- tests('#update_server').data_matches_schema(@resource_schema) do
343
- updateServerResponse = service.update_server(@datacenter_id, @server_id, 'name' => 'FogServerRename')
344
-
345
- updateServerResponse.body
346
- end
347
-
348
- tests('#get_all_servers').data_matches_schema(@minimal_schema_with_items) do
349
- getAllServersResponse = service.get_all_servers(@datacenter_id)
350
-
351
- getAllServersResponse.body
352
- end
353
-
354
- tests('#stop_server').succeeds do
355
- stopServerResponse = service.stop_server(@datacenter_id, @server_id)
356
-
357
- stopServerResponse.status == 202
358
- end
359
-
360
- tests('#start_server').succeeds do
361
- startServerResponse = service.start_server(@datacenter_id, @server_id)
362
-
363
- startServerResponse.status == 202
364
- end
365
-
366
- tests('#reboot_server').succeeds do
367
- rebootServerResponse = service.reboot_server(@datacenter_id, @server_id)
368
-
369
- rebootServerResponse.status == 202
370
- end
371
-
372
- tests('#delete_server').succeeds do
373
- deleteServerResponse = service.delete_server(@datacenter_id, @server_id)
374
- deleteServerResponse.status == 202
375
- end
376
-
377
- tests('#delete_snapshot').succeeds do
378
- deleteSnapshotResponse = service.delete_snapshot(@snapshot_id)
379
- deleteSnapshotResponse.status == 202
380
- end
381
-
382
- tests('#delete_volume').succeeds do
383
- deleteVolumeResponse = service.delete_volume(@datacenter_id, @volume_id)
384
- deleteVolumeResponse.status == 202
385
- end
386
-
387
- if Fog.mock?
388
- tests('#delete_image').succeeds do
389
- deleteImageResponse = service.delete_image(@image_id)
390
- deleteImageResponse.status == 202
391
- end
392
- end
393
-
394
- tests('#delete_datacenter').succeeds do
395
- deleteDatacenterResponse = service.delete_datacenter(@datacenter_id)
396
- deleteDatacenterResponse.status == 202
397
- end
398
- end
399
-
400
- tests('failure') do
401
- tests('#get_datacenter').raises(Excon::Error::HTTPStatus) do
402
- service.get_datacenter('00000000-0000-0000-0000-000000000000')
403
- end
404
-
405
- tests('#update_datacenter').raises(Excon::Error::HTTPStatus) do
406
- service.update_datacenter('00000000-0000-0000-0000-000000000000',
407
- 'name' => 'FogTestDCRename')
408
- end
409
-
410
- tests('#delete_datacenter').raises(Excon::Error::HTTPStatus) do
411
- service.delete_datacenter('00000000-0000-0000-0000-000000000000')
412
- end
413
-
414
- tests('#get_image').raises(Excon::Error::HTTPStatus) do
415
- service.get_image('00000000-0000-0000-0000-000000000000')
416
- end
417
-
418
- tests('#update_image').raises(Excon::Error::HTTPStatus) do
419
- service.update_image('00000000-0000-0000-0000-000000000000', {})
420
- end
421
-
422
- tests('#create_volume').raises(ArgumentError) do
423
- service.create_volume
424
- end
425
-
426
- tests('#create_volume_snapshot').raises(ArgumentError) do
427
- service.create_volume_snapshot
428
- end
429
-
430
- tests('#create_volume_snapshot').raises(Excon::Error::HTTPStatus) do
431
- service.create_volume_snapshot('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000', :name => 'test')
432
- end
433
-
434
- tests('#get_snapshot').raises(Excon::Error::HTTPStatus) do
435
- service.get_snapshot('00000000-0000-0000-0000-000000000000')
436
- end
437
-
438
- tests('#get_snapshot').raises(ArgumentError) do
439
- service.get_snapshot
440
- end
441
-
442
- tests('#restore_volume_snapshot').raises(ArgumentError) do
443
- service.restore_volume_snapshot
444
- end
445
-
446
- tests('#restore_volume_snapshot').raises(Excon::Error::HTTPStatus) do
447
- service.restore_volume_snapshot('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000', :name => 'test')
448
- end
449
-
450
- tests('#get_volume').raises(Excon::Error::HTTPStatus) do
451
- service.get_volume('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000')
452
- end
453
-
454
- tests('#update_volume').raises(Excon::Error::HTTPStatus) do
455
- service.update_volume('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000')
456
- end
457
-
458
- tests('#delete_volume').raises(Excon::Error::HTTPStatus) do
459
- service.delete_volume('00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000')
460
- end
461
- end
462
- end