fog-vsphere 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -4
- data/CHANGELOG.md +8 -0
- data/CONTRIBUTORS.md +6 -0
- data/fog-vsphere.gemspec +1 -1
- data/lib/fog/vsphere/compute.rb +47 -3
- data/lib/fog/vsphere/models/compute/cdrom.rb +65 -0
- data/lib/fog/vsphere/models/compute/cdroms.rb +18 -0
- data/lib/fog/vsphere/models/compute/datacenter.rb +4 -0
- data/lib/fog/vsphere/models/compute/folder.rb +4 -0
- data/lib/fog/vsphere/models/compute/server.rb +8 -0
- data/lib/fog/vsphere/models/compute/storage_pod.rb +19 -0
- data/lib/fog/vsphere/models/compute/storage_pods.rb +22 -0
- data/lib/fog/vsphere/models/compute/volume.rb +1 -0
- data/lib/fog/vsphere/requests/compute/create_folder.rb +10 -0
- data/lib/fog/vsphere/requests/compute/create_vm.rb +163 -4
- data/lib/fog/vsphere/requests/compute/folder_destroy.rb +26 -0
- data/lib/fog/vsphere/requests/compute/get_folder.rb +4 -2
- data/lib/fog/vsphere/requests/compute/get_storage_pod.rb +31 -0
- data/lib/fog/vsphere/requests/compute/list_datacenters.rb +1 -1
- data/lib/fog/vsphere/requests/compute/list_datastores.rb +2 -1
- data/lib/fog/vsphere/requests/compute/list_networks.rb +2 -1
- data/lib/fog/vsphere/requests/compute/list_storage_pods.rb +45 -0
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +8 -4
- data/lib/fog/vsphere/requests/compute/list_vm_cdroms.rb +30 -0
- data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +34 -13
- data/lib/fog/vsphere/requests/compute/list_vm_snapshots.rb +5 -1
- data/lib/fog/vsphere/requests/compute/modify_vm_cdrom.rb +25 -0
- data/lib/fog/vsphere/requests/compute/modify_vm_interface.rb +19 -2
- data/lib/fog/vsphere/requests/compute/modify_vm_volume.rb +1 -1
- data/lib/fog/vsphere/requests/compute/upload_iso.rb +34 -0
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +68 -25
- data/lib/fog/vsphere/requests/compute/vm_reconfig_cdrom.rb +68 -0
- data/lib/fog/vsphere/version.rb +1 -1
- data/tests/models/compute/servers_tests.rb +1 -1
- data/tests/requests/compute/folder_destroy_tests.rb +21 -0
- data/tests/requests/compute/list_storage_pods_test.rb +10 -0
- data/tests/requests/compute/list_vm_cdroms_tests.rb +10 -0
- data/tests/requests/compute/modify_vm_cdrom_tests.rb +21 -0
- data/tests/requests/compute/vm_reconfig_cdrom_tests.rb +15 -0
- metadata +28 -6
@@ -0,0 +1,68 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class Vsphere
|
4
|
+
class Real
|
5
|
+
def vm_reconfig_cdrom(options = {})
|
6
|
+
raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
|
7
|
+
# Attach iso / disattach
|
8
|
+
if options.has_key?('iso')
|
9
|
+
raise ArgumentError, "datastore is a required parameter" unless options.key? 'datastore'
|
10
|
+
backing = RbVmomi::VIM::VirtualCdromIsoBackingInfo(
|
11
|
+
fileName: "[#{options['datastore']}] #{options['iso']}"
|
12
|
+
)
|
13
|
+
else
|
14
|
+
backing = RbVmomi::VIM::VirtualCdromRemoteAtapiBackingInfo(deviceName: '')
|
15
|
+
end
|
16
|
+
cdrom_obj = get_vm_ref(options['instance_uuid']).config.hardware.device.grep(RbVmomi::VIM::VirtualCdrom).first
|
17
|
+
hardware_spec = {
|
18
|
+
deviceChange: [{
|
19
|
+
operation: :edit,
|
20
|
+
device: RbVmomi::VIM::VirtualCdrom(
|
21
|
+
backing: backing,
|
22
|
+
key: cdrom_obj.key,
|
23
|
+
controllerKey: cdrom_obj.controllerKey,
|
24
|
+
connectable: RbVmomi::VIM::VirtualDeviceConnectInfo(
|
25
|
+
startConnected: options['start_connected'] || false,
|
26
|
+
connected: options['connected'] || false,
|
27
|
+
allowGuestControl: options['allow_guest_control'] || true,
|
28
|
+
)
|
29
|
+
)
|
30
|
+
}]
|
31
|
+
}
|
32
|
+
vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class Mock
|
37
|
+
def vm_reconfig_cdrom(options = {})
|
38
|
+
raise ArgumentError, "instance_uuid is a required parameter" unless options.key? 'instance_uuid'
|
39
|
+
if options.has_key?('iso')
|
40
|
+
raise ArgumentError, "datastore is a required parameter" unless options.key? 'datastore'
|
41
|
+
backing = {
|
42
|
+
fileName: "[#{options['datastore']}] #{options['iso']}"
|
43
|
+
}
|
44
|
+
else
|
45
|
+
backing = {deviceName: ''}
|
46
|
+
end
|
47
|
+
cdrom_obj = list_vm_cdroms(options['instance_uuid']).first
|
48
|
+
hardware_spec = {
|
49
|
+
deviceChange: [{
|
50
|
+
operation: :edit,
|
51
|
+
device: {
|
52
|
+
backing: backing,
|
53
|
+
key: cdrom_obj['key'],
|
54
|
+
controllerKey: cdrom_obj['controllerKey'],
|
55
|
+
connectable: {
|
56
|
+
startConnected: options['start_connected'] || false,
|
57
|
+
connected: options['connected'] || false,
|
58
|
+
allowGuestControl: options['allow_guest_control'] || true,
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}]
|
62
|
+
}
|
63
|
+
vm_reconfig_hardware('instance_uuid' => options['instance_uuid'], 'hardware_spec' => hardware_spec )
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
data/lib/fog/vsphere/version.rb
CHANGED
@@ -7,7 +7,7 @@ Shindo.tests('Fog::Compute[:vsphere] | servers collection', ['vsphere']) do
|
|
7
7
|
test('should be a kind of Fog::Compute::Vsphere::Servers') { servers.kind_of? Fog::Compute::Vsphere::Servers }
|
8
8
|
tests('should be able to reload itself').succeeds { servers.reload }
|
9
9
|
tests('should be able to get a model') do
|
10
|
-
tests('by managed object reference').succeeds { servers.get '
|
10
|
+
tests('by managed object reference').succeeds { servers.get 'jefftest' }
|
11
11
|
tests('by instance uuid').succeeds { servers.get '5032c8a5-9c5e-ba7a-3804-832a03e16381' }
|
12
12
|
end
|
13
13
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | folder_destroy request', ['vsphere']) do
|
2
|
+
|
3
|
+
compute = Fog::Compute[:vsphere]
|
4
|
+
|
5
|
+
empty_folder = "/Solutions/empty"
|
6
|
+
full_folder = "/Solutions/wibble"
|
7
|
+
datacenter = "Solutions"
|
8
|
+
|
9
|
+
tests('The response should') do
|
10
|
+
response = compute.folder_destroy(empty_folder, datacenter)
|
11
|
+
test('be a kind of Hash') { response.kind_of? Hash }
|
12
|
+
test('should have a task_state key') { response.key? 'task_state' }
|
13
|
+
end
|
14
|
+
|
15
|
+
tests('When folder is not empty') do
|
16
|
+
raises(Fog::Vsphere::Errors::ServiceError, 'raises ServiceError') do
|
17
|
+
compute.folder_destroy(full_folder, datacenter)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | list_storage_pods request', ['vsphere']) do
|
2
|
+
tests("When listing all storage pods") do
|
3
|
+
|
4
|
+
response = Fog::Compute[:vsphere].list_storage_pods
|
5
|
+
|
6
|
+
tests("The response data format ...") do
|
7
|
+
test("be a kind of Hash") { response.kind_of? Array }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | list_vm_cdroms request', ['vsphere']) do
|
2
|
+
|
3
|
+
compute = Fog::Compute[:vsphere]
|
4
|
+
|
5
|
+
tests('The response should') do
|
6
|
+
response = compute.list_vm_cdroms('5032c8a5-9c5e-ba7a-3804-832a03e16381')
|
7
|
+
test('be a kind of Array') { response.kind_of? Array }
|
8
|
+
test('it should contains Hashes') { response.all? { |i| Hash === i } }
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | modify_vm_cdrom request', ['vsphere']) do
|
2
|
+
|
3
|
+
compute = Fog::Compute[:vsphere]
|
4
|
+
|
5
|
+
modify_target = '5032c8a5-9c5e-ba7a-3804-832a03e16381'
|
6
|
+
modify_cdrom = compute.cdroms.new(
|
7
|
+
instance_uuid: modify_target,
|
8
|
+
)
|
9
|
+
|
10
|
+
tests('When adding a cdrom the response should') do
|
11
|
+
response = compute.add_vm_cdrom(modify_cdrom)
|
12
|
+
test('be a kind of Hash') { response.kind_of? Hash }
|
13
|
+
test('should have a task_state key') { response.key? 'task_state' }
|
14
|
+
end
|
15
|
+
|
16
|
+
tests('When destroying a cdrom the response should') do
|
17
|
+
response = compute.destroy_vm_cdrom(modify_cdrom)
|
18
|
+
test('be a kind of Hash') { response.kind_of? Hash }
|
19
|
+
test('should have a task_state key') { response.key? 'task_state' }
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Shindo.tests('Fog::Compute[:vsphere] | vm_reconfig_cdrom request', ['vsphere']) do
|
2
|
+
|
3
|
+
compute = Fog::Compute[:vsphere]
|
4
|
+
|
5
|
+
reconfig_target = '5032c8a5-9c5e-ba7a-3804-832a03e16381'
|
6
|
+
reconfig_spec = {
|
7
|
+
'start_connected' => false,
|
8
|
+
}
|
9
|
+
|
10
|
+
tests('the response should') do
|
11
|
+
response = compute.vm_reconfig_cdrom('instance_uuid' => reconfig_target, 'hardware_spec' => reconfig_spec)
|
12
|
+
test('be a kind of Hash') { response.kind_of? Hash }
|
13
|
+
test('should have a task_state key') { response.key? 'task_state' }
|
14
|
+
end
|
15
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-vsphere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- J.R. Garcia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-core
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
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: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rbvmomi
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,6 +118,7 @@ extra_rdoc_files: []
|
|
118
118
|
files:
|
119
119
|
- ".gitignore"
|
120
120
|
- ".travis.yml"
|
121
|
+
- CHANGELOG.md
|
121
122
|
- CONTRIBUTING.md
|
122
123
|
- CONTRIBUTORS.md
|
123
124
|
- Gemfile
|
@@ -130,6 +131,8 @@ files:
|
|
130
131
|
- lib/fog/bin/vsphere.rb
|
131
132
|
- lib/fog/vsphere.rb
|
132
133
|
- lib/fog/vsphere/compute.rb
|
134
|
+
- lib/fog/vsphere/models/compute/cdrom.rb
|
135
|
+
- lib/fog/vsphere/models/compute/cdroms.rb
|
133
136
|
- lib/fog/vsphere/models/compute/cluster.rb
|
134
137
|
- lib/fog/vsphere/models/compute/clusters.rb
|
135
138
|
- lib/fog/vsphere/models/compute/customfield.rb
|
@@ -158,6 +161,8 @@ files:
|
|
158
161
|
- lib/fog/vsphere/models/compute/servertypes.rb
|
159
162
|
- lib/fog/vsphere/models/compute/snapshot.rb
|
160
163
|
- lib/fog/vsphere/models/compute/snapshots.rb
|
164
|
+
- lib/fog/vsphere/models/compute/storage_pod.rb
|
165
|
+
- lib/fog/vsphere/models/compute/storage_pods.rb
|
161
166
|
- lib/fog/vsphere/models/compute/template.rb
|
162
167
|
- lib/fog/vsphere/models/compute/templates.rb
|
163
168
|
- lib/fog/vsphere/models/compute/volume.rb
|
@@ -166,6 +171,7 @@ files:
|
|
166
171
|
- lib/fog/vsphere/requests/compute/create_folder.rb
|
167
172
|
- lib/fog/vsphere/requests/compute/create_vm.rb
|
168
173
|
- lib/fog/vsphere/requests/compute/current_time.rb
|
174
|
+
- lib/fog/vsphere/requests/compute/folder_destroy.rb
|
169
175
|
- lib/fog/vsphere/requests/compute/get_cluster.rb
|
170
176
|
- lib/fog/vsphere/requests/compute/get_compute_resource.rb
|
171
177
|
- lib/fog/vsphere/requests/compute/get_datacenter.rb
|
@@ -175,6 +181,7 @@ files:
|
|
175
181
|
- lib/fog/vsphere/requests/compute/get_network.rb
|
176
182
|
- lib/fog/vsphere/requests/compute/get_resource_pool.rb
|
177
183
|
- lib/fog/vsphere/requests/compute/get_server_type.rb
|
184
|
+
- lib/fog/vsphere/requests/compute/get_storage_pod.rb
|
178
185
|
- lib/fog/vsphere/requests/compute/get_template.rb
|
179
186
|
- lib/fog/vsphere/requests/compute/get_virtual_machine.rb
|
180
187
|
- lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb
|
@@ -190,16 +197,20 @@ files:
|
|
190
197
|
- lib/fog/vsphere/requests/compute/list_processes.rb
|
191
198
|
- lib/fog/vsphere/requests/compute/list_resource_pools.rb
|
192
199
|
- lib/fog/vsphere/requests/compute/list_server_types.rb
|
200
|
+
- lib/fog/vsphere/requests/compute/list_storage_pods.rb
|
193
201
|
- lib/fog/vsphere/requests/compute/list_templates.rb
|
194
202
|
- lib/fog/vsphere/requests/compute/list_virtual_machines.rb
|
203
|
+
- lib/fog/vsphere/requests/compute/list_vm_cdroms.rb
|
195
204
|
- lib/fog/vsphere/requests/compute/list_vm_customvalues.rb
|
196
205
|
- lib/fog/vsphere/requests/compute/list_vm_interfaces.rb
|
197
206
|
- lib/fog/vsphere/requests/compute/list_vm_snapshots.rb
|
198
207
|
- lib/fog/vsphere/requests/compute/list_vm_volumes.rb
|
208
|
+
- lib/fog/vsphere/requests/compute/modify_vm_cdrom.rb
|
199
209
|
- lib/fog/vsphere/requests/compute/modify_vm_interface.rb
|
200
210
|
- lib/fog/vsphere/requests/compute/modify_vm_volume.rb
|
201
211
|
- lib/fog/vsphere/requests/compute/revert_to_snapshot.rb
|
202
212
|
- lib/fog/vsphere/requests/compute/set_vm_customvalue.rb
|
213
|
+
- lib/fog/vsphere/requests/compute/upload_iso.rb
|
203
214
|
- lib/fog/vsphere/requests/compute/vm_clone.rb
|
204
215
|
- lib/fog/vsphere/requests/compute/vm_config_vnc.rb
|
205
216
|
- lib/fog/vsphere/requests/compute/vm_destroy.rb
|
@@ -208,6 +219,7 @@ files:
|
|
208
219
|
- lib/fog/vsphere/requests/compute/vm_power_off.rb
|
209
220
|
- lib/fog/vsphere/requests/compute/vm_power_on.rb
|
210
221
|
- lib/fog/vsphere/requests/compute/vm_reboot.rb
|
222
|
+
- lib/fog/vsphere/requests/compute/vm_reconfig_cdrom.rb
|
211
223
|
- lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb
|
212
224
|
- lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb
|
213
225
|
- lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb
|
@@ -220,11 +232,15 @@ files:
|
|
220
232
|
- tests/models/compute/server_tests.rb
|
221
233
|
- tests/models/compute/servers_tests.rb
|
222
234
|
- tests/requests/compute/current_time_tests.rb
|
235
|
+
- tests/requests/compute/folder_destroy_tests.rb
|
223
236
|
- tests/requests/compute/get_network_tests.rb
|
224
237
|
- tests/requests/compute/list_child_snapshots_tests.rb
|
225
238
|
- tests/requests/compute/list_clusters_tests.rb
|
239
|
+
- tests/requests/compute/list_storage_pods_test.rb
|
226
240
|
- tests/requests/compute/list_virtual_machines_tests.rb
|
241
|
+
- tests/requests/compute/list_vm_cdroms_tests.rb
|
227
242
|
- tests/requests/compute/list_vm_snapshots_tests.rb
|
243
|
+
- tests/requests/compute/modify_vm_cdrom_tests.rb
|
228
244
|
- tests/requests/compute/revert_to_snapshot_tests.rb
|
229
245
|
- tests/requests/compute/set_vm_customvalue_tests.rb
|
230
246
|
- tests/requests/compute/vm_clone_tests.rb
|
@@ -234,6 +250,7 @@ files:
|
|
234
250
|
- tests/requests/compute/vm_power_off_tests.rb
|
235
251
|
- tests/requests/compute/vm_power_on_tests.rb
|
236
252
|
- tests/requests/compute/vm_reboot_tests.rb
|
253
|
+
- tests/requests/compute/vm_reconfig_cdrom_tests.rb
|
237
254
|
- tests/requests/compute/vm_reconfig_cpus_tests.rb
|
238
255
|
- tests/requests/compute/vm_reconfig_hardware_tests.rb
|
239
256
|
- tests/requests/compute/vm_reconfig_memory_tests.rb
|
@@ -270,11 +287,15 @@ test_files:
|
|
270
287
|
- tests/models/compute/server_tests.rb
|
271
288
|
- tests/models/compute/servers_tests.rb
|
272
289
|
- tests/requests/compute/current_time_tests.rb
|
290
|
+
- tests/requests/compute/folder_destroy_tests.rb
|
273
291
|
- tests/requests/compute/get_network_tests.rb
|
274
292
|
- tests/requests/compute/list_child_snapshots_tests.rb
|
275
293
|
- tests/requests/compute/list_clusters_tests.rb
|
294
|
+
- tests/requests/compute/list_storage_pods_test.rb
|
276
295
|
- tests/requests/compute/list_virtual_machines_tests.rb
|
296
|
+
- tests/requests/compute/list_vm_cdroms_tests.rb
|
277
297
|
- tests/requests/compute/list_vm_snapshots_tests.rb
|
298
|
+
- tests/requests/compute/modify_vm_cdrom_tests.rb
|
278
299
|
- tests/requests/compute/revert_to_snapshot_tests.rb
|
279
300
|
- tests/requests/compute/set_vm_customvalue_tests.rb
|
280
301
|
- tests/requests/compute/vm_clone_tests.rb
|
@@ -284,6 +305,7 @@ test_files:
|
|
284
305
|
- tests/requests/compute/vm_power_off_tests.rb
|
285
306
|
- tests/requests/compute/vm_power_on_tests.rb
|
286
307
|
- tests/requests/compute/vm_reboot_tests.rb
|
308
|
+
- tests/requests/compute/vm_reconfig_cdrom_tests.rb
|
287
309
|
- tests/requests/compute/vm_reconfig_cpus_tests.rb
|
288
310
|
- tests/requests/compute/vm_reconfig_hardware_tests.rb
|
289
311
|
- tests/requests/compute/vm_reconfig_memory_tests.rb
|