fog-vsphere 2.1.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +8 -0
- data/.rubocop_todo.yml +217 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +4 -0
- data/Rakefile +10 -1
- data/fog-vsphere.gemspec +2 -2
- data/lib/fog/bin/vsphere.rb +1 -1
- data/lib/fog/vsphere/compute.rb +320 -301
- data/lib/fog/vsphere/models/compute/cdrom.rb +10 -10
- data/lib/fog/vsphere/models/compute/cdroms.rb +2 -2
- data/lib/fog/vsphere/models/compute/cluster.rb +20 -20
- data/lib/fog/vsphere/models/compute/clusters.rb +1 -1
- data/lib/fog/vsphere/models/compute/customfields.rb +4 -4
- data/lib/fog/vsphere/models/compute/customvalues.rb +8 -8
- data/lib/fog/vsphere/models/compute/datacenter.rb +16 -16
- data/lib/fog/vsphere/models/compute/datastores.rb +1 -1
- data/lib/fog/vsphere/models/compute/folder.rb +2 -2
- data/lib/fog/vsphere/models/compute/folders.rb +2 -2
- data/lib/fog/vsphere/models/compute/hosts.rb +4 -4
- data/lib/fog/vsphere/models/compute/interface.rb +12 -12
- data/lib/fog/vsphere/models/compute/interfaces.rb +14 -16
- data/lib/fog/vsphere/models/compute/interfacetype.rb +2 -2
- data/lib/fog/vsphere/models/compute/interfacetypes.rb +6 -8
- data/lib/fog/vsphere/models/compute/networks.rb +1 -1
- data/lib/fog/vsphere/models/compute/resource_pools.rb +1 -1
- data/lib/fog/vsphere/models/compute/rule.rb +8 -9
- data/lib/fog/vsphere/models/compute/rules.rb +9 -10
- data/lib/fog/vsphere/models/compute/scsicontroller.rb +1 -1
- data/lib/fog/vsphere/models/compute/server.rb +68 -80
- data/lib/fog/vsphere/models/compute/servers.rb +12 -13
- data/lib/fog/vsphere/models/compute/servertype.rb +6 -6
- data/lib/fog/vsphere/models/compute/servertypes.rb +2 -2
- data/lib/fog/vsphere/models/compute/snapshot.rb +5 -6
- data/lib/fog/vsphere/models/compute/snapshots.rb +1 -1
- data/lib/fog/vsphere/models/compute/ticket.rb +0 -1
- data/lib/fog/vsphere/models/compute/volume.rb +12 -14
- data/lib/fog/vsphere/models/compute/volumes.rb +10 -10
- data/lib/fog/vsphere/requests/compute/cloudinit_to_customspec.rb +8 -8
- data/lib/fog/vsphere/requests/compute/create_folder.rb +5 -5
- data/lib/fog/vsphere/requests/compute/create_group.rb +16 -16
- data/lib/fog/vsphere/requests/compute/create_rule.rb +13 -13
- data/lib/fog/vsphere/requests/compute/create_vm.rb +117 -119
- data/lib/fog/vsphere/requests/compute/destroy_group.rb +8 -8
- data/lib/fog/vsphere/requests/compute/destroy_rule.rb +8 -8
- data/lib/fog/vsphere/requests/compute/folder_destroy.rb +3 -3
- data/lib/fog/vsphere/requests/compute/get_cluster.rb +2 -2
- data/lib/fog/vsphere/requests/compute/get_compute_resource.rb +16 -16
- data/lib/fog/vsphere/requests/compute/get_datacenter.rb +7 -7
- data/lib/fog/vsphere/requests/compute/get_datastore.rb +1 -2
- data/lib/fog/vsphere/requests/compute/get_folder.rb +24 -24
- data/lib/fog/vsphere/requests/compute/get_host.rb +2 -3
- data/lib/fog/vsphere/requests/compute/get_interface_type.rb +6 -6
- data/lib/fog/vsphere/requests/compute/get_network.rb +7 -10
- data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +1 -2
- data/lib/fog/vsphere/requests/compute/get_server_type.rb +14 -14
- data/lib/fog/vsphere/requests/compute/get_storage_pod.rb +2 -2
- data/lib/fog/vsphere/requests/compute/get_template.rb +1 -2
- data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +26 -26
- data/lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb +6 -7
- data/lib/fog/vsphere/requests/compute/host_finish_maintenance.rb +1 -1
- data/lib/fog/vsphere/requests/compute/host_shutdown.rb +1 -1
- data/lib/fog/vsphere/requests/compute/host_start_maintenance.rb +1 -1
- data/lib/fog/vsphere/requests/compute/list_child_snapshots.rb +37 -39
- data/lib/fog/vsphere/requests/compute/list_clusters.rb +8 -9
- data/lib/fog/vsphere/requests/compute/list_compute_resources.rb +57 -59
- data/lib/fog/vsphere/requests/compute/list_customfields.rb +5 -6
- data/lib/fog/vsphere/requests/compute/list_datacenters.rb +17 -17
- data/lib/fog/vsphere/requests/compute/list_datastores.rb +16 -15
- data/lib/fog/vsphere/requests/compute/list_folders.rb +4 -4
- data/lib/fog/vsphere/requests/compute/list_groups.rb +5 -5
- data/lib/fog/vsphere/requests/compute/list_hosts.rb +30 -14
- data/lib/fog/vsphere/requests/compute/list_interface_types.rb +7 -7
- data/lib/fog/vsphere/requests/compute/list_networks.rb +12 -16
- data/lib/fog/vsphere/requests/compute/list_processes.rb +14 -14
- data/lib/fog/vsphere/requests/compute/list_resource_pools.rb +13 -14
- data/lib/fog/vsphere/requests/compute/list_rules.rb +4 -4
- data/lib/fog/vsphere/requests/compute/list_server_types.rb +24 -26
- data/lib/fog/vsphere/requests/compute/list_storage_pods.rb +8 -8
- data/lib/fog/vsphere/requests/compute/list_templates.rb +4 -5
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +15 -15
- data/lib/fog/vsphere/requests/compute/list_vm_cdroms.rb +16 -12
- data/lib/fog/vsphere/requests/compute/list_vm_customvalues.rb +3 -4
- data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +54 -56
- data/lib/fog/vsphere/requests/compute/list_vm_scsi_controllers.rb +7 -7
- data/lib/fog/vsphere/requests/compute/list_vm_snapshots.rb +36 -36
- data/lib/fog/vsphere/requests/compute/list_vm_volumes.rb +43 -36
- data/lib/fog/vsphere/requests/compute/modify_vm_cdrom.rb +4 -4
- data/lib/fog/vsphere/requests/compute/modify_vm_controller.rb +2 -2
- data/lib/fog/vsphere/requests/compute/modify_vm_interface.rb +26 -19
- data/lib/fog/vsphere/requests/compute/modify_vm_volume.rb +7 -7
- data/lib/fog/vsphere/requests/compute/revert_to_snapshot.rb +2 -2
- data/lib/fog/vsphere/requests/compute/set_vm_customvalue.rb +2 -2
- data/lib/fog/vsphere/requests/compute/update_vm.rb +111 -0
- data/lib/fog/vsphere/requests/compute/upload_iso.rb +10 -10
- data/lib/fog/vsphere/requests/compute/vm_acquire_ticket.rb +3 -3
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +245 -247
- data/lib/fog/vsphere/requests/compute/vm_config_vnc.rb +15 -15
- data/lib/fog/vsphere/requests/compute/vm_destroy.rb +2 -2
- data/lib/fog/vsphere/requests/compute/vm_execute.rb +16 -16
- data/lib/fog/vsphere/requests/compute/vm_migrate.rb +11 -11
- data/lib/fog/vsphere/requests/compute/vm_power_off.rb +8 -8
- data/lib/fog/vsphere/requests/compute/vm_power_on.rb +2 -2
- data/lib/fog/vsphere/requests/compute/vm_reboot.rb +5 -5
- data/lib/fog/vsphere/requests/compute/vm_reconfig_cdrom.rb +11 -11
- data/lib/fog/vsphere/requests/compute/vm_reconfig_cpus.rb +8 -8
- data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +6 -6
- data/lib/fog/vsphere/requests/compute/vm_reconfig_memory.rb +8 -8
- data/lib/fog/vsphere/requests/compute/vm_reconfig_volumes.rb +14 -16
- data/lib/fog/vsphere/requests/compute/vm_relocate.rb +8 -8
- data/lib/fog/vsphere/requests/compute/vm_remove_snapshot.rb +2 -2
- data/lib/fog/vsphere/requests/compute/vm_rename.rb +5 -5
- data/lib/fog/vsphere/requests/compute/vm_revert_snapshot.rb +1 -1
- data/lib/fog/vsphere/requests/compute/vm_take_snapshot.rb +8 -8
- data/lib/fog/vsphere/version.rb +1 -1
- data/tests/compute_tests.rb +16 -17
- data/tests/helpers/mock_helper.rb +3 -3
- data/tests/models/compute/cluster_tests.rb +4 -5
- data/tests/models/compute/hosts_tests.rb +2 -4
- data/tests/models/compute/rules_tests.rb +10 -16
- data/tests/models/compute/server_tests.rb +30 -31
- data/tests/models/compute/servers_tests.rb +2 -4
- data/tests/models/compute/ticket_tests.rb +4 -6
- data/tests/models/compute/tickets_tests.rb +1 -3
- data/tests/requests/compute/current_time_tests.rb +2 -4
- data/tests/requests/compute/folder_destroy_tests.rb +5 -7
- data/tests/requests/compute/get_network_tests.rb +20 -23
- data/tests/requests/compute/list_child_snapshots_tests.rb +1 -2
- data/tests/requests/compute/list_clusters_tests.rb +5 -6
- data/tests/requests/compute/list_datastores_tests.rb +6 -7
- data/tests/requests/compute/list_hosts_tests.rb +3 -4
- data/tests/requests/compute/list_networks_tests.rb +6 -7
- data/tests/requests/compute/list_storage_pods_test.rb +3 -4
- data/tests/requests/compute/list_virtual_machines_tests.rb +16 -20
- data/tests/requests/compute/list_vm_cdroms_tests.rb +1 -2
- data/tests/requests/compute/list_vm_snapshots_tests.rb +1 -2
- data/tests/requests/compute/modify_vm_cdrom_tests.rb +3 -4
- data/tests/requests/compute/revert_to_snapshot_tests.rb +2 -4
- data/tests/requests/compute/set_vm_customvalue_tests.rb +0 -2
- data/tests/requests/compute/update_vm_tests.rb +13 -0
- data/tests/requests/compute/vm_clone_tests.rb +20 -20
- data/tests/requests/compute/vm_config_vnc_tests.rb +3 -4
- data/tests/requests/compute/vm_destroy_tests.rb +1 -4
- data/tests/requests/compute/vm_migrate_tests.rb +1 -2
- data/tests/requests/compute/vm_power_off_tests.rb +2 -4
- data/tests/requests/compute/vm_power_on_tests.rb +1 -3
- data/tests/requests/compute/vm_reboot_tests.rb +2 -4
- data/tests/requests/compute/vm_reconfig_cdrom_tests.rb +2 -3
- data/tests/requests/compute/vm_reconfig_cpus_tests.rb +1 -3
- data/tests/requests/compute/vm_reconfig_hardware_tests.rb +2 -4
- data/tests/requests/compute/vm_reconfig_memory_tests.rb +1 -3
- data/tests/requests/compute/vm_take_snapshot_tests.rb +1 -3
- metadata +9 -4
@@ -2,9 +2,9 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class Vsphere
|
4
4
|
class Real
|
5
|
-
def list_templates(options = {
|
5
|
+
def list_templates(options = {})
|
6
6
|
options[:folder] ||= options['folder']
|
7
|
-
if options[:folder]
|
7
|
+
if options[:folder]
|
8
8
|
list_all_templates_in_folder(options[:folder], options[:datacenter])
|
9
9
|
else
|
10
10
|
list_all_templates(options)
|
@@ -18,7 +18,7 @@ module Fog
|
|
18
18
|
|
19
19
|
vms = folder.children.grep(RbVmomi::VIM::VirtualMachine)
|
20
20
|
# remove all virtual machines that are not template
|
21
|
-
vms.delete_if { |v| v.config.nil?
|
21
|
+
vms.delete_if { |v| v.config.nil? || !v.config.template }
|
22
22
|
|
23
23
|
vms.map(&method(:convert_vm_mob_ref_to_attr_hash))
|
24
24
|
end
|
@@ -36,8 +36,7 @@ module Fog
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
class Mock
|
39
|
-
def list_templates(filters = {
|
40
|
-
end
|
39
|
+
def list_templates(filters = {}); end
|
41
40
|
end
|
42
41
|
end
|
43
42
|
end
|
@@ -2,22 +2,21 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class Vsphere
|
4
4
|
class Real
|
5
|
-
def list_virtual_machines(options = {
|
5
|
+
def list_virtual_machines(options = {})
|
6
6
|
# Listing all VM's can be quite slow and expensive. Try and optimize
|
7
7
|
# based on the available options we have. These conditions are in
|
8
8
|
# ascending order of time to complete for large deployments.
|
9
9
|
|
10
10
|
options[:folder] ||= options['folder']
|
11
|
-
if options['instance_uuid']
|
11
|
+
if options['instance_uuid']
|
12
12
|
[get_virtual_machine(options['instance_uuid'])]
|
13
|
-
elsif options[:folder] && options[:datacenter]
|
13
|
+
elsif options[:folder] && options[:datacenter]
|
14
14
|
list_all_virtual_machines_in_folder(options[:folder], options[:datacenter], options[:recursive])
|
15
15
|
else
|
16
16
|
list_all_virtual_machines(options)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
|
21
20
|
private
|
22
21
|
|
23
22
|
def list_all_virtual_machines_in_folder(path, datacenter_name, recursive)
|
@@ -39,7 +38,7 @@ module Fog
|
|
39
38
|
raw_folder.children.each do |child|
|
40
39
|
case child
|
41
40
|
when RbVmomi::VIM::Folder
|
42
|
-
folder_enumerator(child, true).each {|item| yielder.yield item} if recursive
|
41
|
+
folder_enumerator(child, true).each { |item| yielder.yield item } if recursive
|
43
42
|
when RbVmomi::VIM::VirtualMachine
|
44
43
|
yielder.yield child
|
45
44
|
end
|
@@ -47,7 +46,7 @@ module Fog
|
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
50
|
-
def list_all_virtual_machines(options = {
|
49
|
+
def list_all_virtual_machines(options = {})
|
51
50
|
raw_vms = raw_list_all_virtual_machines(options[:datacenter])
|
52
51
|
vms = convert_vm_view_to_attr_hash(raw_vms)
|
53
52
|
|
@@ -65,29 +64,30 @@ module Fog
|
|
65
64
|
list_container_view(dc, 'VirtualMachine', :vmFolder)
|
66
65
|
end.flatten
|
67
66
|
end
|
67
|
+
|
68
68
|
def get_folder_path(folder, root = nil)
|
69
|
-
return if
|
69
|
+
return if !folder.methods.include?('parent') || (folder == root)
|
70
70
|
"#{get_folder_path(folder.parent)}/#{folder.name}"
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
74
|
class Mock
|
75
|
-
def get_folder_path(
|
75
|
+
def get_folder_path(_folder, _root = nil)
|
76
76
|
nil
|
77
77
|
end
|
78
78
|
|
79
|
-
def list_virtual_machines(options = {
|
79
|
+
def list_virtual_machines(options = {})
|
80
80
|
if options['instance_uuid']
|
81
|
-
server =
|
81
|
+
server = data[:servers][options['instance_uuid']]
|
82
82
|
server.nil? ? [] : [server]
|
83
83
|
elsif options['mo_ref']
|
84
|
-
|
85
|
-
elsif options[:folder]
|
86
|
-
|
84
|
+
data[:servers].values.select { |vm| vm['mo_ref'] == options['mo_ref'] }
|
85
|
+
elsif options[:folder] && options[:datacenter]
|
86
|
+
data[:servers].values.select { |vm| vm['path'] == options[:folder] && vm['datacenter'] == options[:datacenter] }
|
87
87
|
else
|
88
88
|
options.delete('datacenter') # real code iterates if this is missing
|
89
|
-
options.reject! {|
|
90
|
-
|
89
|
+
options.reject! { |_k, v| v.nil? } # ignore options with nil value
|
90
|
+
data[:servers].values.select { |vm| options.all? { |k, v| vm[k.to_s] == v.to_s } }
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
@@ -5,24 +5,28 @@ module Fog
|
|
5
5
|
def list_vm_cdroms(vm_id)
|
6
6
|
get_vm_ref(vm_id).config.hardware.device.select { |hw| hw.class == RbVmomi::VIM::VirtualCdrom }.map do |cdrom|
|
7
7
|
{
|
8
|
-
:
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
8
|
+
filename: (begin
|
9
|
+
cdrom.backing.fileName
|
10
|
+
rescue
|
11
|
+
(nil)
|
12
|
+
end),
|
13
|
+
name: cdrom.deviceInfo.label,
|
14
|
+
key: cdrom.key,
|
15
|
+
controller_key: cdrom.controllerKey,
|
16
|
+
unit_number: cdrom.unitNumber,
|
17
|
+
start_connected: cdrom.connectable.startConnected,
|
18
|
+
allow_guest_control: cdrom.connectable.allowGuestControl,
|
19
|
+
connected: cdrom.connectable.connected,
|
20
|
+
instance_uuid: vm_id
|
17
21
|
}
|
18
22
|
end
|
19
23
|
end
|
20
24
|
end
|
21
25
|
class Mock
|
22
26
|
def list_vm_cdroms(vm_id)
|
23
|
-
raise Fog::Compute::Vsphere::NotFound, 'VM not Found' unless
|
24
|
-
return [] unless
|
25
|
-
|
27
|
+
raise Fog::Compute::Vsphere::NotFound, 'VM not Found' unless data[:servers].key?(vm_id)
|
28
|
+
return [] unless data[:servers][vm_id].key?('cdroms')
|
29
|
+
data[:servers][vm_id]['cdroms'].map { |h| h.merge(instance_uuid: vm_id) }
|
26
30
|
end
|
27
31
|
end
|
28
32
|
end
|
@@ -5,15 +5,14 @@ module Fog
|
|
5
5
|
def list_vm_customvalues(vm_id)
|
6
6
|
get_vm_ref(vm_id).summary.customValue.map do |customvalue|
|
7
7
|
{
|
8
|
-
:
|
9
|
-
:
|
8
|
+
key: customvalue.key.to_i,
|
9
|
+
value: customvalue.value
|
10
10
|
}
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
14
14
|
class Mock
|
15
|
-
def list_vm_customfields(vm_id)
|
16
|
-
end
|
15
|
+
def list_vm_customfields(vm_id); end
|
17
16
|
end
|
18
17
|
end
|
19
18
|
end
|
@@ -2,83 +2,81 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class Vsphere
|
4
4
|
class Real
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
5
|
+
# => VirtualE1000(
|
6
|
+
# addressType: "assigned",
|
7
|
+
# backing: VirtualEthernetCardNetworkBackingInfo(
|
8
|
+
# deviceName: "VM Network",
|
9
|
+
# dynamicProperty: [],
|
10
|
+
# network: Network("network-163"),
|
11
|
+
# useAutoDetect: false
|
12
|
+
# ),
|
13
|
+
# connectable: VirtualDeviceConnectInfo(
|
14
|
+
# allowGuestControl: true,
|
15
|
+
# connected: true,
|
16
|
+
# dynamicProperty: [],
|
17
|
+
# startConnected: true,
|
18
|
+
# status: "ok"
|
19
|
+
# ),
|
20
|
+
# controllerKey: 100,
|
21
|
+
# deviceInfo: Description(
|
22
|
+
# dynamicProperty: [],
|
23
|
+
# label: "Network adapter 1",
|
24
|
+
# summary: "VM Network"
|
25
|
+
# ),
|
26
|
+
# dynamicProperty: [],
|
27
|
+
# key: 4000,
|
28
|
+
# macAddress: "00:50:56:a9:00:28",
|
29
|
+
# unitNumber: 7,
|
30
|
+
#
|
31
31
|
def list_vm_interfaces(vm_id, datacenter = nil)
|
32
|
-
get_raw_interfaces(vm_id, datacenter).map {|nic| raw_to_hash nic}
|
32
|
+
get_raw_interfaces(vm_id, datacenter).map { |nic| raw_to_hash nic }
|
33
33
|
end
|
34
34
|
|
35
|
-
def get_vm_interface(vm_id, options={})
|
35
|
+
def get_vm_interface(vm_id, options = {})
|
36
36
|
raw = get_raw_interface(vm_id, options)
|
37
|
-
if raw
|
38
|
-
raw_to_hash(raw)
|
39
|
-
else
|
40
|
-
nil
|
41
|
-
end
|
37
|
+
raw_to_hash(raw) if raw
|
42
38
|
end
|
43
|
-
|
39
|
+
|
44
40
|
def get_raw_interfaces(vm_id, datacenter = nil)
|
45
41
|
get_vm_ref(vm_id, datacenter).config.hardware.device.grep(RbVmomi::VIM::VirtualEthernetCard)
|
46
42
|
end
|
47
|
-
|
48
|
-
def get_raw_interface(vm_id, options={})
|
49
|
-
raise ArgumentError,
|
43
|
+
|
44
|
+
def get_raw_interface(vm_id, options = {})
|
45
|
+
raise ArgumentError, 'instance id is a required parameter' unless vm_id
|
46
|
+
|
50
47
|
if options.is_a? Fog::Compute::Vsphere::Interface
|
51
48
|
options
|
49
|
+
|
52
50
|
else
|
53
|
-
raise ArgumentError, "Either key or name is a required parameter. options: #{options}" unless options.key?
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
(options.key?
|
51
|
+
raise ArgumentError, "Either key or name is a required parameter. options: #{options}" unless options.key?(:key) || options.key?(:mac) || options.key?(:name)
|
52
|
+
raise ArgumentError, "'datacenter' is a required parameter in options: #{options}" unless options.key?(:datacenter)
|
53
|
+
|
54
|
+
get_raw_interfaces(vm_id, options[:datacenter]).find do |nic|
|
55
|
+
(options.key?(:key) && (nic.key == options[:key].to_i)) ||
|
56
|
+
(options.key?(:mac) && (nic.macAddress == options[:mac])) ||
|
57
|
+
(options.key?(:name) && (nic.deviceInfo.label == options[:name]))
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
private
|
63
|
-
|
63
|
+
|
64
64
|
def raw_to_hash(nic)
|
65
65
|
{
|
66
|
-
:
|
67
|
-
:
|
68
|
-
:
|
69
|
-
:
|
70
|
-
:
|
71
|
-
:
|
72
|
-
:
|
73
|
-
:
|
66
|
+
name: nic.deviceInfo.label,
|
67
|
+
mac: nic.macAddress,
|
68
|
+
network: nic.backing.respond_to?('network') ? nic.backing.network.name : nic.backing.port.portgroupKey,
|
69
|
+
status: nic.connectable.status,
|
70
|
+
connected: nic.connectable.connected,
|
71
|
+
summary: nic.deviceInfo.summary,
|
72
|
+
type: nic.class,
|
73
|
+
key: nic.key
|
74
74
|
}
|
75
75
|
end
|
76
|
-
|
77
76
|
end
|
78
|
-
|
77
|
+
|
79
78
|
class Mock
|
80
|
-
def list_vm_interfaces(vm_id)
|
81
|
-
end
|
79
|
+
def list_vm_interfaces(vm_id); end
|
82
80
|
end
|
83
81
|
end
|
84
82
|
end
|
@@ -11,19 +11,19 @@ module Fog
|
|
11
11
|
def list_vm_scsi_controllers_raw(vm_id)
|
12
12
|
get_vm_ref(vm_id).config.hardware.device.grep(RbVmomi::VIM::VirtualSCSIController).map do |ctrl|
|
13
13
|
{
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
14
|
+
type: ctrl.class.to_s,
|
15
|
+
shared_bus: ctrl.sharedBus.to_s,
|
16
|
+
unit_number: ctrl.scsiCtlrUnitNumber,
|
17
|
+
key: ctrl.key
|
18
18
|
}
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
22
|
class Mock
|
23
23
|
def list_vm_scsi_controllers(vm_id)
|
24
|
-
raise Fog::Compute::Vsphere::NotFound, 'VM not Found' unless
|
25
|
-
return [] unless
|
26
|
-
|
24
|
+
raise Fog::Compute::Vsphere::NotFound, 'VM not Found' unless data[:servers].key?(vm_id)
|
25
|
+
return [] unless data[:servers][vm_id].key?('scsi_controllers')
|
26
|
+
data[:servers][vm_id]['scsi_controllers'].map { |h| h.merge(server_id: vm_id) }
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -20,48 +20,48 @@ module Fog
|
|
20
20
|
|
21
21
|
protected
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
23
|
+
def snapshot_info(snap_tree, vm_id)
|
24
|
+
{
|
25
|
+
name: snap_tree.name,
|
26
|
+
quiesced: snap_tree.quiesced,
|
27
|
+
description: snap_tree.description,
|
28
|
+
create_time: snap_tree.createTime,
|
29
|
+
power_state: snap_tree.state,
|
30
|
+
ref: snap_tree.snapshot._ref,
|
31
|
+
mo_ref: snap_tree.snapshot,
|
32
|
+
tree_node: snap_tree,
|
33
|
+
ref_chain: "#{vm_id}/#{snap_tree.snapshot._ref}",
|
34
|
+
snapshot_name_chain: "#{vm_id}/#{snap_tree.name}",
|
35
|
+
server_id: vm_id
|
36
|
+
}
|
37
|
+
end
|
38
38
|
end
|
39
39
|
class Mock
|
40
|
-
def list_vm_snapshots(vm_id,
|
40
|
+
def list_vm_snapshots(vm_id, _opts = {})
|
41
41
|
[
|
42
42
|
{
|
43
|
-
:
|
44
|
-
:
|
45
|
-
:
|
46
|
-
:
|
47
|
-
:
|
48
|
-
:
|
49
|
-
:
|
50
|
-
:
|
51
|
-
:
|
52
|
-
:
|
43
|
+
name: 'clean',
|
44
|
+
quiesced: false,
|
45
|
+
description: '',
|
46
|
+
create_time: Time.now.utc,
|
47
|
+
power_state: 'poweredOn',
|
48
|
+
ref: 'snapshot-0101',
|
49
|
+
mo_ref: nil,
|
50
|
+
tree_node: nil,
|
51
|
+
snapshot_name_chain: '123/clean',
|
52
|
+
ref_chain: "#{vm_id}/snapshot-0101"
|
53
53
|
},
|
54
54
|
{
|
55
|
-
:
|
56
|
-
:
|
57
|
-
:
|
58
|
-
:
|
59
|
-
:
|
60
|
-
:
|
61
|
-
:
|
62
|
-
:
|
63
|
-
:
|
64
|
-
:
|
55
|
+
name: 'dirty',
|
56
|
+
quiesced: false,
|
57
|
+
description: '',
|
58
|
+
create_time: Time.now.utc,
|
59
|
+
power_state: 'poweredOn',
|
60
|
+
ref: 'snapshot-0102',
|
61
|
+
mo_ref: nil,
|
62
|
+
tree_node: nil,
|
63
|
+
snapshot_name_chain: '123/dirty',
|
64
|
+
ref_chain: "#{vm_id}/snapshot-0102"
|
65
65
|
}
|
66
66
|
]
|
67
67
|
end
|
@@ -2,51 +2,58 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class Vsphere
|
4
4
|
class Real
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
5
|
+
# [VirtualDisk(
|
6
|
+
# backing: VirtualDiskFlatVer2BackingInfo(
|
7
|
+
# contentId: "a172d19487e878e17d6b16ff2505d7eb",
|
8
|
+
# datastore: Datastore("datastore-162"),
|
9
|
+
# diskMode: "persistent",
|
10
|
+
# dynamicProperty: [],
|
11
|
+
# fileName: "[Storage1] rhel6-mfojtik/rhel6-mfojtik.vmdk",
|
12
|
+
# split: false,
|
13
|
+
# thinProvisioned: true,
|
14
|
+
# uuid: "6000C29c-a47d-4cd9-5249-c371de775f06",
|
15
|
+
# writeThrough: false
|
16
|
+
# ),
|
17
|
+
# capacityInKB: 8388608,
|
18
|
+
# controllerKey: 1000,
|
19
|
+
# deviceInfo: Description(
|
20
|
+
# dynamicProperty: [],
|
21
|
+
# label: "Hard disk 1",
|
22
|
+
# summary: "8,388,608 KB"
|
23
|
+
# ),
|
24
|
+
# dynamicProperty: [],
|
25
|
+
# key: 2001,
|
26
|
+
# shares: SharesInfo( dynamicProperty: [], level: "normal", shares: 1000 ),
|
27
|
+
# unitNumber: 1
|
28
|
+
# )]
|
29
29
|
|
30
30
|
def list_vm_volumes(vm_id)
|
31
31
|
get_vm_ref(vm_id).disks.map do |vol|
|
32
32
|
{
|
33
|
-
:
|
34
|
-
:
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
42
|
-
|
33
|
+
id: vol.backing.uuid,
|
34
|
+
thin: (begin
|
35
|
+
vol.backing.thinProvisioned
|
36
|
+
rescue
|
37
|
+
(nil)
|
38
|
+
end),
|
39
|
+
mode: vol.backing.diskMode,
|
40
|
+
filename: vol.backing.fileName,
|
41
|
+
datastore: (begin
|
42
|
+
vol.backing.datastore.name
|
43
|
+
rescue
|
44
|
+
(nil)
|
45
|
+
end),
|
46
|
+
size: vol.capacityInKB,
|
47
|
+
name: vol.deviceInfo.label,
|
48
|
+
key: vol.key,
|
49
|
+
unit_number: vol.unitNumber,
|
50
|
+
controller_key: vol.controllerKey
|
43
51
|
}
|
44
52
|
end
|
45
53
|
end
|
46
54
|
end
|
47
55
|
class Mock
|
48
|
-
def list_vm_volumes(vm_id)
|
49
|
-
end
|
56
|
+
def list_vm_volumes(vm_id); end
|
50
57
|
end
|
51
58
|
end
|
52
59
|
end
|