fog-oneandone 1.0 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +3 -1
- data/Rakefile +24 -0
- data/examples/example_app.rb +39 -12
- data/fog-oneandone.gemspec +2 -1
- data/lib/oneandone/compute.rb +103 -16
- data/lib/oneandone/models/compute/baremetal_model.rb +15 -0
- data/lib/oneandone/models/compute/baremetal_models.rb +24 -0
- data/lib/oneandone/models/compute/block_storage.rb +100 -0
- data/lib/oneandone/models/compute/block_storages.rb +24 -0
- data/lib/oneandone/models/compute/firewall.rb +0 -15
- data/lib/oneandone/models/compute/image.rb +6 -1
- data/lib/oneandone/models/compute/public_ip.rb +2 -1
- data/lib/oneandone/models/compute/recovery_appliance.rb +18 -0
- data/lib/oneandone/models/compute/recovery_appliances.rb +24 -0
- data/lib/oneandone/models/compute/server.rb +44 -105
- data/lib/oneandone/models/compute/server_appliance.rb +25 -0
- data/lib/oneandone/models/compute/server_appliances.rb +24 -0
- data/lib/oneandone/models/compute/ssh_key.rb +67 -0
- data/lib/oneandone/models/compute/ssh_keys.rb +24 -0
- data/lib/oneandone/requests/compute/add_block_storage_server.rb +61 -0
- data/lib/oneandone/requests/compute/add_ports.rb +1 -1
- data/lib/oneandone/requests/compute/create_block_storage.rb +80 -0
- data/lib/oneandone/requests/compute/create_image.rb +9 -3
- data/lib/oneandone/requests/compute/create_server.rb +11 -5
- data/lib/oneandone/requests/compute/create_ssh_key.rb +74 -0
- data/lib/oneandone/requests/compute/delete_block_storage.rb +51 -0
- data/lib/oneandone/requests/compute/delete_ssh_key.rb +51 -0
- data/lib/oneandone/requests/compute/get_baremetal_model.rb +42 -0
- data/lib/oneandone/requests/compute/get_block_storage.rb +50 -0
- data/lib/oneandone/requests/compute/get_block_storage_server.rb +50 -0
- data/lib/oneandone/requests/compute/get_recovery_appliance.rb +41 -0
- data/lib/oneandone/requests/compute/get_ssh_key.rb +50 -0
- data/lib/oneandone/requests/compute/list_baremetal_models.rb +49 -0
- data/lib/oneandone/requests/compute/list_block_storages.rb +56 -0
- data/lib/oneandone/requests/compute/list_recovery_appliances.rb +47 -0
- data/lib/oneandone/requests/compute/list_ssh_keys.rb +56 -0
- data/lib/oneandone/requests/compute/remove_block_storage_server.rb +50 -0
- data/lib/oneandone/requests/compute/update_block_storage.rb +80 -0
- data/lib/oneandone/requests/compute/update_ssh_key.rb +78 -0
- data/tests/oneandone/test_block_storages.rb +82 -0
- data/tests/oneandone/test_firewalls.rb +5 -16
- data/tests/oneandone/test_recovery_appliances.rb +34 -0
- data/tests/oneandone/test_server_appliances.rb +34 -0
- data/tests/oneandone/test_ssh_keys.rb +82 -0
- metadata +58 -13
- data/lib/oneandone/requests/compute/remove_firewall_ip.rb +0 -60
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative 'block_storage'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class OneAndOne
|
6
|
+
class BlockStorages < Fog::Collection
|
7
|
+
model Fog::Compute::OneAndOne::BlockStorage
|
8
|
+
|
9
|
+
def all
|
10
|
+
response = service.list_block_storages
|
11
|
+
load(response.body)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(id)
|
15
|
+
response = service.get_block_storage(id)
|
16
|
+
new(response.body)
|
17
|
+
rescue Excon::Errors::NotFound
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end # BlockStorages
|
22
|
+
end # OneAndOne
|
23
|
+
end # Compute
|
24
|
+
end # Fog
|
@@ -60,21 +60,6 @@ module Fog
|
|
60
60
|
end
|
61
61
|
|
62
62
|
|
63
|
-
def remove_ip(options = {})
|
64
|
-
|
65
|
-
requires :id
|
66
|
-
|
67
|
-
response = service.remove_firewall_ip(firewall_id: id,
|
68
|
-
ip_id: options[:ip_id])
|
69
|
-
|
70
|
-
# Merge Attributes
|
71
|
-
merge_attributes(response.body)
|
72
|
-
|
73
|
-
true
|
74
|
-
|
75
|
-
end
|
76
|
-
|
77
|
-
|
78
63
|
def add_rules(options = {})
|
79
64
|
|
80
65
|
requires :id
|
@@ -16,6 +16,10 @@ module Fog
|
|
16
16
|
attribute :frequency
|
17
17
|
attribute :num_images
|
18
18
|
attribute :creation_date
|
19
|
+
attribute :source
|
20
|
+
attribute :url
|
21
|
+
attribute :os_id
|
22
|
+
attribute :type
|
19
23
|
|
20
24
|
|
21
25
|
def save
|
@@ -24,7 +28,8 @@ module Fog
|
|
24
28
|
|
25
29
|
# Perform Request
|
26
30
|
response = service.create_image(name: name, description: description,
|
27
|
-
server_id: server_id, frequency: frequency, num_images: num_images
|
31
|
+
server_id: server_id, frequency: frequency, num_images: num_images,
|
32
|
+
source: source, url: url, os_id: os_id, type: type)
|
28
33
|
|
29
34
|
# Merge Attributes
|
30
35
|
merge_attributes(response.body)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class OneAndOne
|
4
|
+
class RecoveryAppliance < Fog::Model
|
5
|
+
|
6
|
+
# Declare Model Attributes
|
7
|
+
identity :id
|
8
|
+
|
9
|
+
attribute :name
|
10
|
+
attribute :os_family
|
11
|
+
attribute :os
|
12
|
+
attribute :os_version
|
13
|
+
attribute :os_architecture
|
14
|
+
|
15
|
+
end # RecoveryAppliance
|
16
|
+
end # OneAndOne
|
17
|
+
end # Compute
|
18
|
+
end # Fog
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative 'recovery_appliance'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Compute
|
5
|
+
class OneAndOne
|
6
|
+
class RecoveryAppliances < Fog::Collection
|
7
|
+
model Fog::Compute::OneAndOne::RecoveryAppliance
|
8
|
+
|
9
|
+
def all
|
10
|
+
response = service.list_recovery_appliances
|
11
|
+
load(response.body)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(id)
|
15
|
+
response = service.get_recovery_appliance(id)
|
16
|
+
new(response.body)
|
17
|
+
rescue Excon::Errors::NotFound
|
18
|
+
nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end # RecoveryAppliances
|
22
|
+
end # OneAndOne
|
23
|
+
end # Compute
|
24
|
+
end # Fog
|
@@ -10,6 +10,8 @@ module Fog
|
|
10
10
|
identity :id
|
11
11
|
|
12
12
|
attribute :name
|
13
|
+
attribute :server_type
|
14
|
+
attribute :baremetal_model_id
|
13
15
|
attribute :description
|
14
16
|
attribute :rsa_key
|
15
17
|
attribute :fixed_instance_id
|
@@ -21,6 +23,8 @@ module Fog
|
|
21
23
|
attribute :datacenter_id
|
22
24
|
attribute :creation_date
|
23
25
|
attribute :first_password
|
26
|
+
attribute :ipv6_range
|
27
|
+
attribute :hostname
|
24
28
|
attribute :status
|
25
29
|
attribute :hardware
|
26
30
|
attribute :image
|
@@ -37,9 +41,11 @@ module Fog
|
|
37
41
|
attribute :alerts
|
38
42
|
attribute :monitoring_policy
|
39
43
|
attribute :private_networks
|
44
|
+
attribute :public_key
|
40
45
|
|
41
46
|
|
42
47
|
def save
|
48
|
+
server_type ||= 'cloud'
|
43
49
|
|
44
50
|
requires :name, :appliance_id
|
45
51
|
|
@@ -48,6 +54,8 @@ module Fog
|
|
48
54
|
requires :ram, :vcore, :cores_per_processor, :hdds
|
49
55
|
end
|
50
56
|
|
57
|
+
requires :baremetal_model_id if server_type == 'baremetal'
|
58
|
+
|
51
59
|
# Perform Request
|
52
60
|
response = service.create_server(name: name, description: description,
|
53
61
|
rsa_key: rsa_key, fixed_instance_id: fixed_instance_id,
|
@@ -55,111 +63,94 @@ module Fog
|
|
55
63
|
appliance_id: appliance_id, hdds: hdds, datacenter_id: datacenter_id,
|
56
64
|
password: password, power_on: power_on, firewall_id: firewall_id,
|
57
65
|
ip_id: ip_id, load_balancer_id: load_balancer_id,
|
58
|
-
monitoring_policy_id: monitoring_policy_id
|
66
|
+
monitoring_policy_id: monitoring_policy_id, public_key: public_key,
|
67
|
+
server_type: server_type, baremetal_model_id: baremetal_model_id)
|
59
68
|
|
60
69
|
# Merge Attributes
|
61
70
|
merge_attributes(response.body)
|
62
71
|
|
63
72
|
true
|
64
|
-
|
65
73
|
end
|
66
74
|
|
67
|
-
|
68
75
|
def update(options = {})
|
69
|
-
|
70
76
|
requires :id
|
71
77
|
|
72
78
|
response = service.update_server(server_id: id, name: options[:name],
|
73
|
-
|
79
|
+
description: options[:description])
|
74
80
|
|
75
81
|
# Merge Attributes
|
76
82
|
merge_attributes(response.body)
|
77
83
|
|
78
84
|
true
|
79
|
-
|
80
85
|
end
|
81
86
|
|
82
|
-
|
83
87
|
def update_hardware(options = {})
|
84
|
-
|
85
88
|
requires :id
|
86
89
|
|
87
90
|
response = service.update_hardware(server_id: id,
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
+
fixed_instance_id: options[:fixed_instance_id],
|
92
|
+
vcore: options[:vcore],
|
93
|
+
ram: options[:ram],
|
94
|
+
cores_per_processor: options[:cores_per_processor])
|
91
95
|
|
92
96
|
# Merge Attributes
|
93
97
|
merge_attributes(response.body)
|
94
98
|
|
95
99
|
true
|
96
|
-
|
97
100
|
end
|
98
101
|
|
99
|
-
|
100
102
|
def add_hdds(options = {})
|
101
|
-
|
102
103
|
requires :id
|
103
104
|
|
104
105
|
response = service.add_hdds(server_id: id,
|
105
|
-
|
106
|
+
hdds: options[:hdds])
|
106
107
|
|
107
108
|
# Merge Attributes
|
108
109
|
merge_attributes(response.body)
|
109
110
|
|
110
111
|
true
|
111
|
-
|
112
112
|
end
|
113
113
|
|
114
|
-
|
115
114
|
def delete_hdd(options = {})
|
116
|
-
|
117
115
|
requires :id
|
118
116
|
|
119
117
|
response = service.delete_hdd(server_id: id,
|
120
|
-
|
118
|
+
hdd_id: options[:hdd_id])
|
121
119
|
|
122
120
|
# Merge Attributes
|
123
121
|
merge_attributes(response.body)
|
124
122
|
|
125
123
|
true
|
126
|
-
|
127
124
|
end
|
128
125
|
|
129
|
-
|
130
126
|
def resize_hdd(options = {})
|
131
|
-
|
132
127
|
requires :id
|
133
128
|
|
134
129
|
response = service.update_hdd(server_id: id,
|
135
|
-
|
130
|
+
hdd_id: options[:hdd_id],
|
131
|
+
size: options[:size])
|
136
132
|
|
137
133
|
# Merge Attributes
|
138
134
|
merge_attributes(response.body)
|
139
135
|
|
140
136
|
true
|
141
|
-
|
142
137
|
end
|
143
138
|
|
144
|
-
|
145
139
|
def install_image(options = {})
|
146
|
-
|
147
140
|
requires :id
|
148
141
|
|
149
142
|
response = service.install_server_image(server_id: id,
|
150
|
-
|
151
|
-
|
143
|
+
image_id: options[:image_id],
|
144
|
+
password: options[:password],
|
145
|
+
firewall_id: options[:firewall_id])
|
152
146
|
|
153
147
|
# Merge Attributes
|
154
148
|
merge_attributes(response.body)
|
155
149
|
|
156
150
|
true
|
157
|
-
|
158
151
|
end
|
159
152
|
|
160
|
-
|
161
153
|
def add_ip
|
162
|
-
|
163
154
|
requires :id
|
164
155
|
|
165
156
|
response = service.add_server_ip(server_id: id)
|
@@ -168,134 +159,111 @@ module Fog
|
|
168
159
|
merge_attributes(response.body)
|
169
160
|
|
170
161
|
true
|
171
|
-
|
172
162
|
end
|
173
163
|
|
174
|
-
|
175
164
|
def delete_ip(options = {})
|
176
|
-
|
177
165
|
requires :id
|
178
166
|
|
179
167
|
response = service.delete_server_ip(server_id: id,
|
180
|
-
|
168
|
+
ip_id: options[:ip_id])
|
181
169
|
|
182
170
|
# Merge Attributes
|
183
171
|
merge_attributes(response.body)
|
184
172
|
|
185
173
|
true
|
186
|
-
|
187
174
|
end
|
188
175
|
|
189
|
-
|
190
176
|
def add_firewall(options = {})
|
191
|
-
|
192
177
|
requires :id
|
193
178
|
|
194
179
|
response = service.add_firewall(server_id: id,
|
195
|
-
|
180
|
+
ip_id: options[:ip_id],
|
181
|
+
firewall_id:options[:firewall_id])
|
196
182
|
|
197
183
|
# Merge Attributes
|
198
184
|
merge_attributes(response.body)
|
199
185
|
|
200
186
|
true
|
201
|
-
|
202
187
|
end
|
203
188
|
|
204
|
-
|
205
189
|
def remove_firewall(options = {})
|
206
|
-
|
207
190
|
requires :id
|
208
191
|
|
209
192
|
response = service.remove_firewall(server_id: id,
|
210
|
-
|
193
|
+
ip_id: options[:ip_id])
|
211
194
|
|
212
195
|
# Merge Attributes
|
213
196
|
merge_attributes(response.body)
|
214
197
|
|
215
198
|
true
|
216
|
-
|
217
199
|
end
|
218
200
|
|
219
|
-
|
220
201
|
def add_load_balancer(options = {})
|
221
|
-
|
222
202
|
requires :id
|
223
203
|
|
224
204
|
response = service.add_load_balancer(server_id: id,
|
225
|
-
|
226
|
-
|
205
|
+
ip_id: options[:ip_id],
|
206
|
+
load_balancer_id: options[:load_balancer_id])
|
227
207
|
|
228
208
|
# Merge Attributes
|
229
209
|
merge_attributes(response.body)
|
230
210
|
|
231
211
|
true
|
232
|
-
|
233
212
|
end
|
234
213
|
|
235
|
-
|
236
214
|
def remove_load_balancer(options = {})
|
237
|
-
|
238
215
|
requires :id
|
239
216
|
|
240
217
|
response = service.remove_load_balancer(server_id: id,
|
241
|
-
|
242
|
-
|
218
|
+
ip_id: options[:ip_id],
|
219
|
+
load_balancer_id: options[:load_balancer_id])
|
243
220
|
|
244
221
|
# Merge Attributes
|
245
222
|
merge_attributes(response.body)
|
246
223
|
|
247
224
|
true
|
248
|
-
|
249
225
|
end
|
250
226
|
|
251
|
-
|
252
227
|
def on
|
253
|
-
|
254
228
|
requires :id
|
255
229
|
|
256
230
|
response = service.change_status(server_id: id,
|
257
|
-
|
231
|
+
action: 'POWER_ON',
|
232
|
+
method: 'SOFTWARE')
|
258
233
|
|
259
234
|
# Merge Attributes
|
260
235
|
merge_attributes(response.body)
|
261
236
|
|
262
237
|
true
|
263
|
-
|
264
238
|
end
|
265
239
|
|
266
|
-
|
267
240
|
def off
|
268
|
-
|
269
241
|
requires :id
|
270
242
|
|
271
243
|
response = service.change_status(server_id: id,
|
272
|
-
|
244
|
+
action: 'POWER_OFF',
|
245
|
+
method: 'SOFTWARE')
|
273
246
|
|
274
247
|
# Merge Attributes
|
275
248
|
merge_attributes(response.body)
|
276
249
|
|
277
250
|
true
|
278
|
-
|
279
251
|
end
|
280
252
|
|
281
|
-
|
282
253
|
def reboot
|
283
|
-
|
284
254
|
requires :id
|
285
255
|
|
286
256
|
response = service.change_status(server_id: id,
|
287
|
-
|
257
|
+
action: 'REBOOT',
|
258
|
+
method: 'SOFTWARE')
|
288
259
|
|
289
260
|
# Merge Attributes
|
290
261
|
merge_attributes(response.body)
|
291
262
|
|
292
263
|
true
|
293
|
-
|
294
264
|
end
|
295
265
|
|
296
|
-
|
297
266
|
def load_dvd(options = {})
|
298
|
-
|
299
267
|
requires :id
|
300
268
|
|
301
269
|
response = service.load_dvd(server_id: id, dvd_id: options[:dvd_id])
|
@@ -304,12 +272,9 @@ module Fog
|
|
304
272
|
merge_attributes(response.body)
|
305
273
|
|
306
274
|
true
|
307
|
-
|
308
275
|
end
|
309
276
|
|
310
|
-
|
311
277
|
def eject_dvd
|
312
|
-
|
313
278
|
requires :id
|
314
279
|
|
315
280
|
response = service.eject_dvd(server_id: id)
|
@@ -318,42 +283,33 @@ module Fog
|
|
318
283
|
merge_attributes(response.body)
|
319
284
|
|
320
285
|
true
|
321
|
-
|
322
286
|
end
|
323
287
|
|
324
|
-
|
325
288
|
def add_private_network(options = {})
|
326
|
-
|
327
289
|
requires :id
|
328
290
|
|
329
291
|
response = service.add_private_network(server_id: id,
|
330
|
-
|
292
|
+
private_network_id: options[:private_network_id])
|
331
293
|
|
332
294
|
# Merge Attributes
|
333
295
|
merge_attributes(response.body)
|
334
296
|
|
335
297
|
true
|
336
|
-
|
337
298
|
end
|
338
299
|
|
339
|
-
|
340
300
|
def remove_private_network(options = {})
|
341
|
-
|
342
301
|
requires :id
|
343
302
|
|
344
303
|
response = service.remove_private_network(server_id: id,
|
345
|
-
|
304
|
+
private_network_id: options[:private_network_id])
|
346
305
|
|
347
306
|
# Merge Attributes
|
348
307
|
merge_attributes(response.body)
|
349
308
|
|
350
309
|
true
|
351
|
-
|
352
310
|
end
|
353
311
|
|
354
|
-
|
355
312
|
def create_snapshot
|
356
|
-
|
357
313
|
requires :id
|
358
314
|
|
359
315
|
response = service.create_snapshot(server_id: id)
|
@@ -362,73 +318,56 @@ module Fog
|
|
362
318
|
merge_attributes(response.body)
|
363
319
|
|
364
320
|
true
|
365
|
-
|
366
321
|
end
|
367
322
|
|
368
|
-
|
369
323
|
def restore_snapshot(options = {})
|
370
|
-
|
371
324
|
requires :id
|
372
325
|
|
373
326
|
response = service.restore_snapshot(server_id: id,
|
374
|
-
|
327
|
+
snapshot_id: options[:snapshot_id])
|
375
328
|
|
376
329
|
# Merge Attributes
|
377
330
|
merge_attributes(response.body)
|
378
331
|
|
379
332
|
true
|
380
|
-
|
381
333
|
end
|
382
334
|
|
383
|
-
|
384
335
|
def delete_snapshot(options = {})
|
385
|
-
|
386
336
|
requires :id
|
387
337
|
|
388
338
|
response = service.delete_snapshot(server_id: id,
|
389
|
-
|
339
|
+
snapshot_id: options[:snapshot_id])
|
390
340
|
|
391
341
|
# Merge Attributes
|
392
342
|
merge_attributes(response.body)
|
393
343
|
|
394
344
|
true
|
395
|
-
|
396
345
|
end
|
397
346
|
|
398
|
-
|
399
347
|
def clone(options = {})
|
400
|
-
|
401
348
|
requires :id
|
402
349
|
|
403
350
|
response = service.clone_server(server_id: id, name: options[:name],
|
404
|
-
|
351
|
+
datacenter_id: options[:datacenter_id])
|
405
352
|
|
406
353
|
# Merge Attributes
|
407
354
|
merge_attributes(response.body)
|
408
355
|
|
409
356
|
true
|
410
|
-
|
411
357
|
end
|
412
358
|
|
413
|
-
|
414
359
|
def destroy
|
415
|
-
|
416
360
|
requires :id
|
417
361
|
|
418
362
|
service.delete_server(id)
|
419
|
-
|
420
|
-
true
|
421
363
|
|
364
|
+
true
|
422
365
|
end
|
423
366
|
|
424
|
-
|
425
367
|
def ready?
|
426
|
-
|
427
|
-
(GOOD_STATES.include? status['state']) && (status['percent'] == nil)
|
428
|
-
|
368
|
+
(GOOD_STATES.include? status['state']) && status['percent'].nil?
|
429
369
|
end
|
430
|
-
|
431
370
|
end # Server
|
432
371
|
end # OneAndOne
|
433
372
|
end # Compute
|
434
|
-
end # Fog
|
373
|
+
end # Fog
|