bosh_vsphere_cpi 0.6.0 → 1.5.0.pre.1100
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/vsphere_cpi_console +35 -0
- data/db/migrations/20120123235022_initial.rb +5 -0
- data/lib/cloud/vsphere/client.rb +4 -5
- data/lib/cloud/vsphere/cloud.rb +245 -226
- data/lib/cloud/vsphere/config.rb +0 -4
- data/lib/cloud/vsphere/models/disk.rb +3 -0
- data/lib/cloud/vsphere/path_finder.rb +12 -0
- data/lib/cloud/vsphere/resources.rb +0 -2
- data/lib/cloud/vsphere/version.rb +1 -1
- data/lib/cloud/vsphere.rb +5 -3
- data/lib/ruby_vim_sdk/base_type.rb +15 -0
- data/lib/ruby_vim_sdk/const.rb +32 -0
- data/lib/ruby_vim_sdk/core_types.rb +68 -0
- data/lib/ruby_vim_sdk/data_type.rb +14 -0
- data/lib/ruby_vim_sdk/enum_type.rb +12 -0
- data/lib/ruby_vim_sdk/ext.rb +9 -0
- data/lib/ruby_vim_sdk/managed_type.rb +12 -0
- data/lib/ruby_vim_sdk/method.rb +37 -0
- data/lib/ruby_vim_sdk/missing_types.rb +11 -0
- data/lib/ruby_vim_sdk/property.rb +49 -0
- data/lib/ruby_vim_sdk/server_objects.rb +2718 -0
- data/lib/ruby_vim_sdk/soap/deserializer.rb +301 -0
- data/lib/ruby_vim_sdk/soap/serializer.rb +225 -0
- data/lib/ruby_vim_sdk/soap/stub_adapter.rb +123 -0
- data/lib/ruby_vim_sdk/soap_exception.rb +12 -0
- data/lib/ruby_vim_sdk/typed_array.rb +9 -0
- data/lib/ruby_vim_sdk/types.rb +22 -0
- data/lib/ruby_vim_sdk/version.rb +5 -0
- data/lib/ruby_vim_sdk/vmodl/data_object.rb +102 -0
- data/lib/ruby_vim_sdk/vmodl/managed_object.rb +78 -0
- data/lib/ruby_vim_sdk/vmodl/method_name.rb +7 -0
- data/lib/ruby_vim_sdk/vmodl/property_path.rb +7 -0
- data/lib/ruby_vim_sdk/vmodl/type_name.rb +7 -0
- data/lib/ruby_vim_sdk/vmodl_helper.rb +33 -0
- data/lib/ruby_vim_sdk/vmomi_support.rb +280 -0
- data/lib/ruby_vim_sdk.rb +45 -0
- metadata +65 -53
- data/Rakefile +0 -50
- data/spec/spec_helper.rb +0 -33
- data/spec/unit/cloud/vsphere/resources/cluster_spec.rb +0 -383
- data/spec/unit/cloud/vsphere/resources/datacenter_spec.rb +0 -72
- data/spec/unit/cloud/vsphere/resources/datastore_spec.rb +0 -43
- data/spec/unit/cloud/vsphere/resources/folder_spec.rb +0 -63
- data/spec/unit/cloud/vsphere/resources/resource_pool_spec.rb +0 -42
- data/spec/unit/cloud/vsphere/resources/scorer_spec.rb +0 -73
- data/spec/unit/cloud/vsphere/resources/util_spec.rb +0 -35
- data/spec/unit/cloud/vsphere/resources_spec.rb +0 -216
data/lib/cloud/vsphere/config.rb
CHANGED
@@ -61,10 +61,6 @@ module VSphereCloud
|
|
61
61
|
@password = config["password"]
|
62
62
|
@datacenters = {}
|
63
63
|
|
64
|
-
# TODO: current limitation to support a single vDC.
|
65
|
-
# Primarily due to stemcell replication logic calling CloneVM_Task which
|
66
|
-
# does not copy across datacenters. Should use CopyDatastoreFile_Task /
|
67
|
-
# CopyVirtualDisk_Task.
|
68
64
|
unless config["datacenters"].size == 1
|
69
65
|
raise "vSphere CPI only supports a single datacenter."
|
70
66
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module VSphereCloud
|
2
|
+
class PathFinder
|
3
|
+
def path(managed_object)
|
4
|
+
path_objects = []
|
5
|
+
until managed_object.parent.instance_of?(VimSdk::Vim::Datacenter)
|
6
|
+
path_objects.unshift(managed_object.name)
|
7
|
+
managed_object = managed_object.parent
|
8
|
+
end
|
9
|
+
path_objects.join('/')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -52,8 +52,6 @@ module VSphereCloud
|
|
52
52
|
# persistent pool.
|
53
53
|
def validate_persistent_datastore(dc_name, datastore_name)
|
54
54
|
datacenter = datacenters[dc_name]
|
55
|
-
# TODO: should actually check vCenter since we can move disks across
|
56
|
-
# datacenters.
|
57
55
|
if datacenter.nil?
|
58
56
|
raise "Invalid datacenter #{dc_name} #{datacenters.inspect}"
|
59
57
|
end
|
data/lib/cloud/vsphere.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "common/thread_pool"
|
2
2
|
require "common/thread_formatter"
|
3
|
-
require "
|
3
|
+
require "securerandom"
|
4
4
|
|
5
5
|
autoload :VSphereCloud, "cloud/vsphere/cloud"
|
6
6
|
|
@@ -12,12 +12,14 @@ module Bosh
|
|
12
12
|
|
13
13
|
def_delegators :@delegate,
|
14
14
|
:create_stemcell, :delete_stemcell,
|
15
|
-
:create_vm, :delete_vm, :reboot_vm,
|
15
|
+
:create_vm, :delete_vm, :reboot_vm, :has_vm?,
|
16
16
|
:set_vm_metadata,
|
17
17
|
:configure_networks,
|
18
18
|
:create_disk, :delete_disk,
|
19
19
|
:attach_disk, :detach_disk,
|
20
|
-
:validate_deployment
|
20
|
+
:validate_deployment,
|
21
|
+
:snapshot_disk, :delete_snapshot,
|
22
|
+
:current_vm_id, :get_disks
|
21
23
|
|
22
24
|
def initialize(options)
|
23
25
|
@delegate = VSphereCloud::Cloud.new(options)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module VimSdk
|
2
|
+
|
3
|
+
class BaseType
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :wsdl_name
|
6
|
+
attr_accessor :version
|
7
|
+
|
8
|
+
def initialize(name, wsdl_name, version)
|
9
|
+
@name = VmodlHelper.vmodl_type_to_ruby(name)
|
10
|
+
@wsdl_name = wsdl_name
|
11
|
+
@version = version
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module VimSdk
|
2
|
+
BASE_VERSION = "vmodl.version.version0"
|
3
|
+
VERSION1 = "vmodl.version.version1"
|
4
|
+
|
5
|
+
XMLNS_XSD = "http://www.w3.org/2001/XMLSchema"
|
6
|
+
XMLNS_XSI = "http://www.w3.org/2001/XMLSchema-instance"
|
7
|
+
XMLNS_VMODL_BASE = "urn:vim25"
|
8
|
+
|
9
|
+
XML_ENCODING = "UTF-8"
|
10
|
+
XML_HEADER = "<?xml version=\"1.0\" encoding=\"#{XML_ENCODING}\"?>"
|
11
|
+
|
12
|
+
XMLNS_SOAPENC = "http://schemas.xmlsoap.org/soap/encoding/"
|
13
|
+
XMLNS_SOAPENV = "http://schemas.xmlsoap.org/soap/envelope/"
|
14
|
+
|
15
|
+
SOAP_NAMESPACE_MAP = { XMLNS_SOAPENC => 'soapenc',
|
16
|
+
XMLNS_SOAPENV => 'soapenv',
|
17
|
+
XMLNS_XSI => 'xsi',
|
18
|
+
XMLNS_XSD => 'xsd'}
|
19
|
+
|
20
|
+
SOAP_ENVELOPE_TAG="#{SOAP_NAMESPACE_MAP[XMLNS_SOAPENV]}:Envelope"
|
21
|
+
SOAP_HEADER_TAG="#{SOAP_NAMESPACE_MAP[XMLNS_SOAPENV]}:Header"
|
22
|
+
SOAP_FAULT_TAG="#{SOAP_NAMESPACE_MAP[XMLNS_SOAPENV]}:Fault"
|
23
|
+
SOAP_BODY_TAG="#{SOAP_NAMESPACE_MAP[XMLNS_SOAPENV]}:Body"
|
24
|
+
SOAP_ENVELOPE_START = "<#{SOAP_ENVELOPE_TAG} #{SOAP_NAMESPACE_MAP.collect { |namespace, prefix| "xmlns:#{prefix}=\"#{namespace}\"" }.join(" ")}>\n"
|
25
|
+
SOAP_ENVELOPE_END = "\n</#{SOAP_ENVELOPE_TAG}>"
|
26
|
+
SOAP_HEADER_START="<#{SOAP_HEADER_TAG}>"
|
27
|
+
SOAP_HEADER_END="</#{SOAP_HEADER_TAG}>"
|
28
|
+
SOAP_BODY_START="<#{SOAP_BODY_TAG}>"
|
29
|
+
SOAP_BODY_END="</#{SOAP_BODY_TAG}>"
|
30
|
+
SOAP_START = "#{SOAP_ENVELOPE_START}#{SOAP_BODY_START}\n"
|
31
|
+
SOAP_END = "\n#{SOAP_BODY_END}#{SOAP_ENVELOPE_END}"
|
32
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# ******* WARNING - AUTO GENERATED CODE - DO NOT EDIT *******
|
2
|
+
|
3
|
+
module VimSdk
|
4
|
+
module VmomiSupport
|
5
|
+
|
6
|
+
add_version("vmodl.version.version0", "", "", false, "vim25")
|
7
|
+
add_version("vmodl.version.version1", "", "", false, "vim25")
|
8
|
+
add_version("vmodl.query.version.version1", "", "", false, "vim25")
|
9
|
+
add_version("vmodl.query.version.version2", "", "", false, "vim25")
|
10
|
+
add_version("vmodl.query.version.version3", "", "", false, "vim25")
|
11
|
+
add_version_parent("vmodl.version.version0", "vmodl.version.version0")
|
12
|
+
add_version_parent("vmodl.version.version1", "vmodl.version.version0")
|
13
|
+
add_version_parent("vmodl.version.version1", "vmodl.version.version1")
|
14
|
+
add_version_parent("vmodl.query.version.version1", "vmodl.version.version0")
|
15
|
+
add_version_parent("vmodl.query.version.version1", "vmodl.query.version.version1")
|
16
|
+
add_version_parent("vmodl.query.version.version2", "vmodl.version.version0")
|
17
|
+
add_version_parent("vmodl.query.version.version2", "vmodl.version.version1")
|
18
|
+
add_version_parent("vmodl.query.version.version2", "vmodl.query.version.version1")
|
19
|
+
add_version_parent("vmodl.query.version.version2", "vmodl.query.version.version2")
|
20
|
+
add_version_parent("vmodl.query.version.version3", "vmodl.version.version0")
|
21
|
+
add_version_parent("vmodl.query.version.version3", "vmodl.version.version1")
|
22
|
+
add_version_parent("vmodl.query.version.version3", "vmodl.query.version.version1")
|
23
|
+
add_version_parent("vmodl.query.version.version3", "vmodl.query.version.version2")
|
24
|
+
add_version_parent("vmodl.query.version.version3", "vmodl.query.version.version3")
|
25
|
+
create_data_type("vmodl.DynamicArray", "DynamicArray", "vmodl.DataObject", "vmodl.version.version0", [["dynamicType", "string", "vmodl.version.version0", {:optional => true}], ["val", "anyType[]", "vmodl.version.version0"]])
|
26
|
+
create_data_type("vmodl.DynamicData", "DynamicData", "vmodl.DataObject", "vmodl.version.version0", [["dynamicType", "string", "vmodl.version.version0", {:optional => true}], ["dynamicProperty", "vmodl.DynamicProperty[]", "vmodl.version.version0", {:optional => true}]])
|
27
|
+
create_data_type("vmodl.DynamicProperty", "DynamicProperty", "vmodl.DataObject", "vmodl.version.version0", [["name", "vmodl.PropertyPath", "vmodl.version.version0"], ["val", "anyType", "vmodl.version.version0"]])
|
28
|
+
create_data_type("vmodl.KeyAnyValue", "KeyAnyValue", "vmodl.DynamicData", "vmodl.version.version1", [["key", "string", "vmodl.version.version1"], ["value", "anyType", "vmodl.version.version1"]])
|
29
|
+
create_data_type("vmodl.LocalizableMessage", "LocalizableMessage", "vmodl.DynamicData", "vmodl.version.version1", [["key", "string", "vmodl.version.version1"], ["arg", "vmodl.KeyAnyValue[]", "vmodl.version.version1", {:optional => true}], ["message", "string", "vmodl.version.version1", {:optional => true}]])
|
30
|
+
create_data_type("vmodl.fault.HostCommunication", "HostCommunication", "vmodl.RuntimeFault", "vmodl.version.version0", nil)
|
31
|
+
create_data_type("vmodl.fault.HostNotConnected", "HostNotConnected", "vmodl.fault.HostCommunication", "vmodl.version.version0", nil)
|
32
|
+
create_data_type("vmodl.fault.HostNotReachable", "HostNotReachable", "vmodl.fault.HostCommunication", "vmodl.version.version0", nil)
|
33
|
+
create_data_type("vmodl.fault.InvalidArgument", "InvalidArgument", "vmodl.RuntimeFault", "vmodl.version.version0", [["invalidProperty", "vmodl.PropertyPath", "vmodl.version.version0", {:optional => true}]])
|
34
|
+
create_data_type("vmodl.fault.InvalidRequest", "InvalidRequest", "vmodl.RuntimeFault", "vmodl.version.version0", nil)
|
35
|
+
create_data_type("vmodl.fault.InvalidType", "InvalidType", "vmodl.fault.InvalidRequest", "vmodl.version.version0", [["argument", "vmodl.PropertyPath", "vmodl.version.version0", {:optional => true}]])
|
36
|
+
create_data_type("vmodl.fault.ManagedObjectNotFound", "ManagedObjectNotFound", "vmodl.RuntimeFault", "vmodl.version.version0", [["obj", "vmodl.ManagedObject", "vmodl.version.version0"]])
|
37
|
+
create_data_type("vmodl.fault.MethodNotFound", "MethodNotFound", "vmodl.fault.InvalidRequest", "vmodl.version.version0", [["receiver", "vmodl.ManagedObject", "vmodl.version.version0"], ["method", "string", "vmodl.version.version0"]])
|
38
|
+
create_data_type("vmodl.fault.NotEnoughLicenses", "NotEnoughLicenses", "vmodl.RuntimeFault", "vmodl.version.version0", nil)
|
39
|
+
create_data_type("vmodl.fault.NotImplemented", "NotImplemented", "vmodl.RuntimeFault", "vmodl.version.version0", nil)
|
40
|
+
create_data_type("vmodl.fault.NotSupported", "NotSupported", "vmodl.RuntimeFault", "vmodl.version.version0", nil)
|
41
|
+
create_data_type("vmodl.fault.RequestCanceled", "RequestCanceled", "vmodl.RuntimeFault", "vmodl.version.version0", nil)
|
42
|
+
create_data_type("vmodl.fault.SecurityError", "SecurityError", "vmodl.RuntimeFault", "vmodl.version.version0", nil)
|
43
|
+
create_data_type("vmodl.fault.SystemError", "SystemError", "vmodl.RuntimeFault", "vmodl.version.version0", [["reason", "string", "vmodl.version.version0"]])
|
44
|
+
create_data_type("vmodl.fault.UnexpectedFault", "UnexpectedFault", "vmodl.RuntimeFault", "vmodl.version.version0", [["faultName", "vmodl.TypeName", "vmodl.version.version0"], ["fault", "vmodl.MethodFault", "vmodl.version.version0", {:optional => true}]])
|
45
|
+
create_data_type("vmodl.query.InvalidCollectorVersion", "InvalidCollectorVersion", "vmodl.MethodFault", "vmodl.query.version.version1", nil)
|
46
|
+
create_data_type("vmodl.query.InvalidProperty", "InvalidProperty", "vmodl.MethodFault", "vmodl.query.version.version1", [["name", "vmodl.PropertyPath", "vmodl.query.version.version1"]])
|
47
|
+
create_managed_type("vmodl.query.PropertyCollector", "PropertyCollector", "vmodl.ManagedObject", "vmodl.query.version.version1", [["filter", "vmodl.query.PropertyCollector.Filter[]", "vmodl.query.version.version1", {:optional => true}, "System.View"]], [["createFilter", "CreateFilter", "vmodl.query.version.version1", [["spec", "vmodl.query.PropertyCollector.FilterSpec", "vmodl.query.version.version1", {}, nil], ["partialUpdates", "boolean", "vmodl.query.version.version1", {}, nil]], [{}, "vmodl.query.PropertyCollector.Filter", "vmodl.query.PropertyCollector.Filter"], "System.View", ["vmodl.query.InvalidProperty"]], ["retrieveContents", "RetrieveProperties", "vmodl.query.version.version1", [["specSet", "vmodl.query.PropertyCollector.FilterSpec[]", "vmodl.query.version.version1", {}, nil]], [{:optional => true}, "vmodl.query.PropertyCollector.ObjectContent[]", "vmodl.query.PropertyCollector.ObjectContent[]"], "System.Anonymous", ["vmodl.query.InvalidProperty"]], ["checkForUpdates", "CheckForUpdates", "vmodl.query.version.version1", [["version", "string", "vmodl.query.version.version1", {:optional => true}, nil]], [{:optional => true}, "vmodl.query.PropertyCollector.UpdateSet", "vmodl.query.PropertyCollector.UpdateSet"], "System.View", ["vmodl.query.InvalidCollectorVersion"]], ["waitForUpdates", "WaitForUpdates", "vmodl.query.version.version1", [["version", "string", "vmodl.query.version.version1", {:optional => true}, nil]], [{}, "vmodl.query.PropertyCollector.UpdateSet", "vmodl.query.PropertyCollector.UpdateSet"], "System.View", ["vmodl.query.InvalidCollectorVersion"]], ["cancelWaitForUpdates", "CancelWaitForUpdates", "vmodl.query.version.version1", [], [{}, "void", "void"], "System.View", nil], ["waitForUpdatesEx", "WaitForUpdatesEx", "vmodl.query.version.version3", [["version", "string", "vmodl.query.version.version3", {:optional => true}, nil], ["options", "vmodl.query.PropertyCollector.WaitOptions", "vmodl.query.version.version3", {:optional => true}, nil]], [{:optional => true}, "vmodl.query.PropertyCollector.UpdateSet", "vmodl.query.PropertyCollector.UpdateSet"], "System.View", ["vmodl.query.InvalidCollectorVersion"]], ["retrievePropertiesEx", "RetrievePropertiesEx", "vmodl.query.version.version3", [["specSet", "vmodl.query.PropertyCollector.FilterSpec[]", "vmodl.query.version.version3", {}, nil], ["options", "vmodl.query.PropertyCollector.RetrieveOptions", "vmodl.query.version.version3", {}, nil]], [{:optional => true}, "vmodl.query.PropertyCollector.RetrieveResult", "vmodl.query.PropertyCollector.RetrieveResult"], "System.Anonymous", ["vmodl.query.InvalidProperty"]], ["continueRetrievePropertiesEx", "ContinueRetrievePropertiesEx", "vmodl.query.version.version3", [["token", "string", "vmodl.query.version.version3", {}, nil]], [{}, "vmodl.query.PropertyCollector.RetrieveResult", "vmodl.query.PropertyCollector.RetrieveResult"], "System.Anonymous", ["vmodl.query.InvalidProperty"]], ["cancelRetrievePropertiesEx", "CancelRetrievePropertiesEx", "vmodl.query.version.version3", [["token", "string", "vmodl.query.version.version3", {}, nil]], [{}, "void", "void"], "System.Anonymous", ["vmodl.query.InvalidProperty"]], ["createPropertyCollector", "CreatePropertyCollector", "vmodl.query.version.version3", [], [{}, "vmodl.query.PropertyCollector", "vmodl.query.PropertyCollector"], "System.View", nil], ["destroy", "DestroyPropertyCollector", "vmodl.query.version.version3", [], [{}, "void", "void"], "System.View", nil]])
|
48
|
+
create_data_type("vmodl.query.PropertyCollector.FilterSpec", "PropertyFilterSpec", "vmodl.DynamicData", "vmodl.query.version.version1", [["propSet", "vmodl.query.PropertyCollector.PropertySpec[]", "vmodl.query.version.version1"], ["objectSet", "vmodl.query.PropertyCollector.ObjectSpec[]", "vmodl.query.version.version1"], ["reportMissingObjectsInResults", "boolean", "vmodl.query.version.version3", {:optional => true}]])
|
49
|
+
create_data_type("vmodl.query.PropertyCollector.PropertySpec", "PropertySpec", "vmodl.DynamicData", "vmodl.query.version.version1", [["type", "vmodl.TypeName", "vmodl.query.version.version1"], ["all", "boolean", "vmodl.query.version.version1", {:optional => true}], ["pathSet", "vmodl.PropertyPath[]", "vmodl.query.version.version1", {:optional => true}]])
|
50
|
+
create_data_type("vmodl.query.PropertyCollector.ObjectSpec", "ObjectSpec", "vmodl.DynamicData", "vmodl.query.version.version1", [["obj", "vmodl.ManagedObject", "vmodl.query.version.version1"], ["skip", "boolean", "vmodl.query.version.version1", {:optional => true}], ["selectSet", "vmodl.query.PropertyCollector.SelectionSpec[]", "vmodl.query.version.version1", {:optional => true}]])
|
51
|
+
create_data_type("vmodl.query.PropertyCollector.SelectionSpec", "SelectionSpec", "vmodl.DynamicData", "vmodl.query.version.version1", [["name", "string", "vmodl.query.version.version1", {:optional => true}]])
|
52
|
+
create_data_type("vmodl.query.PropertyCollector.TraversalSpec", "TraversalSpec", "vmodl.query.PropertyCollector.SelectionSpec", "vmodl.query.version.version1", [["type", "vmodl.TypeName", "vmodl.query.version.version1"], ["path", "vmodl.PropertyPath", "vmodl.query.version.version1"], ["skip", "boolean", "vmodl.query.version.version1", {:optional => true}], ["selectSet", "vmodl.query.PropertyCollector.SelectionSpec[]", "vmodl.query.version.version1", {:optional => true}]])
|
53
|
+
create_managed_type("vmodl.query.PropertyCollector.Filter", "PropertyFilter", "vmodl.ManagedObject", "vmodl.query.version.version1", [["spec", "vmodl.query.PropertyCollector.FilterSpec", "vmodl.query.version.version1", {}, nil], ["partialUpdates", "boolean", "vmodl.query.version.version1", {}, nil]], [["destroy", "DestroyPropertyFilter", "vmodl.query.version.version1", [], [{}, "void", "void"], nil, nil]])
|
54
|
+
create_data_type("vmodl.query.PropertyCollector.ObjectContent", "ObjectContent", "vmodl.DynamicData", "vmodl.query.version.version1", [["obj", "vmodl.ManagedObject", "vmodl.query.version.version1"], ["propSet", "vmodl.DynamicProperty[]", "vmodl.query.version.version1", {:optional => true}], ["missingSet", "vmodl.query.PropertyCollector.MissingProperty[]", "vmodl.query.version.version1", {:optional => true}]])
|
55
|
+
create_data_type("vmodl.query.PropertyCollector.UpdateSet", "UpdateSet", "vmodl.DynamicData", "vmodl.query.version.version1", [["version", "string", "vmodl.query.version.version1"], ["filterSet", "vmodl.query.PropertyCollector.FilterUpdate[]", "vmodl.query.version.version1", {:optional => true}], ["truncated", "boolean", "vmodl.query.version.version3", {:optional => true}]])
|
56
|
+
create_data_type("vmodl.query.PropertyCollector.FilterUpdate", "PropertyFilterUpdate", "vmodl.DynamicData", "vmodl.query.version.version1", [["filter", "vmodl.query.PropertyCollector.Filter", "vmodl.query.version.version1"], ["objectSet", "vmodl.query.PropertyCollector.ObjectUpdate[]", "vmodl.query.version.version1", {:optional => true}], ["missingSet", "vmodl.query.PropertyCollector.MissingObject[]", "vmodl.query.version.version1", {:optional => true}]])
|
57
|
+
create_data_type("vmodl.query.PropertyCollector.ObjectUpdate", "ObjectUpdate", "vmodl.DynamicData", "vmodl.query.version.version1", [["kind", "vmodl.query.PropertyCollector.ObjectUpdate.Kind", "vmodl.query.version.version1"], ["obj", "vmodl.ManagedObject", "vmodl.query.version.version1"], ["changeSet", "vmodl.query.PropertyCollector.Change[]", "vmodl.query.version.version1", {:optional => true}], ["missingSet", "vmodl.query.PropertyCollector.MissingProperty[]", "vmodl.query.version.version1", {:optional => true}]])
|
58
|
+
create_enum_type("vmodl.query.PropertyCollector.ObjectUpdate.Kind", "ObjectUpdateKind", "vmodl.query.version.version1", ["modify", "enter", "leave"])
|
59
|
+
create_data_type("vmodl.query.PropertyCollector.Change", "PropertyChange", "vmodl.DynamicData", "vmodl.query.version.version1", [["name", "vmodl.PropertyPath", "vmodl.query.version.version1"], ["op", "vmodl.query.PropertyCollector.Change.Op", "vmodl.query.version.version1"], ["val", "anyType", "vmodl.query.version.version1", {:optional => true}]])
|
60
|
+
create_enum_type("vmodl.query.PropertyCollector.Change.Op", "PropertyChangeOp", "vmodl.query.version.version1", ["add", "remove", "assign", "indirectRemove"])
|
61
|
+
create_data_type("vmodl.query.PropertyCollector.MissingProperty", "MissingProperty", "vmodl.DynamicData", "vmodl.query.version.version1", [["path", "vmodl.PropertyPath", "vmodl.query.version.version1"], ["fault", "vmodl.MethodFault", "vmodl.query.version.version1"]])
|
62
|
+
create_data_type("vmodl.query.PropertyCollector.MissingObject", "MissingObject", "vmodl.DynamicData", "vmodl.query.version.version1", [["obj", "vmodl.ManagedObject", "vmodl.query.version.version1"], ["fault", "vmodl.MethodFault", "vmodl.query.version.version1"]])
|
63
|
+
create_data_type("vmodl.query.PropertyCollector.WaitOptions", "WaitOptions", "vmodl.DynamicData", "vmodl.query.version.version3", [["maxWaitSeconds", "int", "vmodl.query.version.version3", {:optional => true}], ["maxObjectUpdates", "int", "vmodl.query.version.version3", {:optional => true}]])
|
64
|
+
create_data_type("vmodl.query.PropertyCollector.RetrieveOptions", "RetrieveOptions", "vmodl.DynamicData", "vmodl.query.version.version3", [["maxObjects", "int", "vmodl.query.version.version3", {:optional => true}]])
|
65
|
+
create_data_type("vmodl.query.PropertyCollector.RetrieveResult", "RetrieveResult", "vmodl.DynamicData", "vmodl.query.version.version3", [["token", "string", "vmodl.query.version.version3", {:optional => true}], ["objects", "vmodl.query.PropertyCollector.ObjectContent[]", "vmodl.query.version.version3"]])
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module VimSdk
|
2
|
+
|
3
|
+
class DataType < BaseType
|
4
|
+
attr_accessor :parent
|
5
|
+
attr_accessor :properties
|
6
|
+
|
7
|
+
def initialize(name, wsdl_name, parent, version, properties)
|
8
|
+
super(name, wsdl_name, version)
|
9
|
+
@parent = VmodlHelper.vmodl_type_to_ruby(parent) if parent
|
10
|
+
@properties = properties ? properties.collect { |property| Property.new(*property) } : []
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module VimSdk
|
2
|
+
|
3
|
+
class ManagedType < DataType
|
4
|
+
attr_accessor :managed_methods
|
5
|
+
|
6
|
+
def initialize(name, wsdl_name, parent, version, properties, methods)
|
7
|
+
super(name, wsdl_name, parent, version, properties)
|
8
|
+
@managed_methods = methods ? methods.collect { |method| Method.new(*method) } : []
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module VimSdk
|
2
|
+
|
3
|
+
class Method
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :wsdl_name
|
6
|
+
attr_accessor :version
|
7
|
+
attr_accessor :privilege
|
8
|
+
attr_accessor :arguments
|
9
|
+
attr_accessor :result_type
|
10
|
+
attr_accessor :faults
|
11
|
+
|
12
|
+
def initialize(name, wsdl_name, version, arguments, result, privilege, faults)
|
13
|
+
@name = VmodlHelper.vmodl_property_to_ruby(name)
|
14
|
+
@wsdl_name = wsdl_name
|
15
|
+
@version = version
|
16
|
+
@privilege = privilege
|
17
|
+
@arguments = arguments.collect { |argument| Property.new(*argument) }
|
18
|
+
@result_type = VmodlHelper.vmodl_type_to_ruby(result[1])
|
19
|
+
@faults = faults.collect { |fault| VmodlHelper.vmodl_type_to_ruby(fault) } if faults
|
20
|
+
@result_type_optional = false
|
21
|
+
|
22
|
+
result[0].each do |key, value|
|
23
|
+
case key
|
24
|
+
when :optional
|
25
|
+
@result_type_optional = value
|
26
|
+
else
|
27
|
+
raise "Unknown flag: #{key}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def result_type_optional?
|
33
|
+
@result_type_optional
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# These were not auto generated for some reason
|
2
|
+
|
3
|
+
module VimSdk
|
4
|
+
module VmomiSupport
|
5
|
+
|
6
|
+
create_data_type("vmodl.MethodFault", "MethodFault", "vmodl.DynamicData", "vmodl.version.version0", [["msg", "string", "vmodl.version.version0", {:optional => true}], ["faultCause", "vmodl.MethodFault", "vmodl.version.version1", {:optional => true}], ["faultMessage", "vmodl.LocalizableMessage[]", "vmodl.version.version1", {:optional => true}]])
|
7
|
+
create_data_type("vmodl.RuntimeFault", "RuntimeFault", "vmodl.MethodFault", "vmodl.version.version0", [])
|
8
|
+
create_data_type("vmodl.LocalizedMethodFault", "LocalizedMethodFault", "vmodl.MethodFault", "vmodl.version.version0", [["fault", "vmodl.MethodFault", "vmodl.version.version0", {}], ["localizedMessage", "string", "vmodl.version.version0", {:optional => true}]])
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module VimSdk
|
2
|
+
|
3
|
+
class Property
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :type
|
6
|
+
attr_accessor :wsdl_name
|
7
|
+
attr_accessor :version
|
8
|
+
attr_accessor :privilege
|
9
|
+
attr_accessor :expected_type
|
10
|
+
|
11
|
+
def initialize(name, type, version, flags = {}, privilege = nil)
|
12
|
+
@name = VmodlHelper.vmodl_property_to_ruby(name)
|
13
|
+
@type = type.kind_of?(Class) ? type : VmodlHelper.vmodl_type_to_ruby(type)
|
14
|
+
@wsdl_name = name
|
15
|
+
@version = version
|
16
|
+
@privilege = privilege
|
17
|
+
@expected_type = nil
|
18
|
+
@optional = false
|
19
|
+
@link = false
|
20
|
+
@linkable = false
|
21
|
+
|
22
|
+
flags.each do |key, value|
|
23
|
+
case key
|
24
|
+
when :optional
|
25
|
+
@optional = value
|
26
|
+
when :link
|
27
|
+
@link = value
|
28
|
+
when :linkable
|
29
|
+
@linkable = value
|
30
|
+
else
|
31
|
+
raise "Unknown flag: #{key}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def optional?
|
37
|
+
@optional
|
38
|
+
end
|
39
|
+
|
40
|
+
def link?
|
41
|
+
@link
|
42
|
+
end
|
43
|
+
|
44
|
+
def linkable?
|
45
|
+
@linkable
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|