ruby_vcloud_sdk 0.5.1 → 0.6.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.
- data/README.md +182 -3
- data/lib/ruby_vcloud_sdk/catalog.rb +18 -13
- data/lib/ruby_vcloud_sdk/client.rb +10 -1
- data/lib/ruby_vcloud_sdk/connection/connection.rb +1 -1
- data/lib/ruby_vcloud_sdk/disk.rb +1 -13
- data/lib/ruby_vcloud_sdk/infrastructure.rb +11 -1
- data/lib/ruby_vcloud_sdk/internal_disk.rb +12 -0
- data/lib/ruby_vcloud_sdk/network.rb +8 -3
- data/lib/ruby_vcloud_sdk/right_record.rb +12 -0
- data/lib/ruby_vcloud_sdk/vapp.rb +85 -0
- data/lib/ruby_vcloud_sdk/vdc.rb +61 -41
- data/lib/ruby_vcloud_sdk/vm.rb +233 -0
- data/lib/ruby_vcloud_sdk/xml/constants.rb +10 -0
- data/lib/ruby_vcloud_sdk/xml/wrapper.rb +10 -1
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/disk.rb +1 -1
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/ip_ranges.rb +16 -0
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/ip_scope.rb +4 -0
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/network_config_section.rb +4 -6
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/org_vdc_network.rb +0 -4
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/product_section.rb +35 -0
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/product_section_list.rb +14 -0
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/query_result_records.rb +4 -0
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/virtual_hardware_section.rb +6 -4
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes/vm.rb +31 -47
- data/lib/ruby_vcloud_sdk/xml/wrapper_classes.rb +2 -0
- data/lib/ruby_vcloud_sdk/xml/xml_templates/NetworkConfig.xml +1 -6
- data/lib/ruby_vcloud_sdk/xml/xml_templates/ProductSectionList.xml +8 -1
- metadata +29 -13
- checksums.yaml +0 -7
@@ -13,6 +13,13 @@ module VCloudSdk
|
|
13
13
|
.first
|
14
14
|
end
|
15
15
|
|
16
|
+
def product_sections_link
|
17
|
+
get_nodes(XML_TYPE[:LINK],
|
18
|
+
{ type: MEDIA_TYPE[:PRODUCT_SECTIONS] },
|
19
|
+
true)
|
20
|
+
.first
|
21
|
+
end
|
22
|
+
|
16
23
|
def attach_disk_link
|
17
24
|
get_nodes(XML_TYPE[:LINK],
|
18
25
|
{ rel: "disk:attach",
|
@@ -41,10 +48,13 @@ module VCloudSdk
|
|
41
48
|
node = nodes.first
|
42
49
|
return unless node
|
43
50
|
node.content = value
|
51
|
+
value
|
44
52
|
end
|
45
53
|
|
46
54
|
def reconfigure_link
|
47
|
-
get_nodes(
|
55
|
+
get_nodes(XML_TYPE[:LINK],
|
56
|
+
{ rel: "reconfigureVm" },
|
57
|
+
true).first
|
48
58
|
end
|
49
59
|
|
50
60
|
def insert_media_link
|
@@ -60,7 +70,9 @@ module VCloudSdk
|
|
60
70
|
end
|
61
71
|
|
62
72
|
def metadata_link
|
63
|
-
get_nodes(
|
73
|
+
get_nodes(XML_TYPE[:LINK],
|
74
|
+
{ type: MEDIA_TYPE[:METADATA] },
|
75
|
+
true).first
|
64
76
|
end
|
65
77
|
|
66
78
|
def hardware_section
|
@@ -73,20 +85,22 @@ module VCloudSdk
|
|
73
85
|
|
74
86
|
def network_connection_section
|
75
87
|
get_nodes("NetworkConnectionSection",
|
76
|
-
|
88
|
+
type: MEDIA_TYPE[:NETWORK_CONNECTION_SECTION]).first
|
89
|
+
end
|
90
|
+
|
91
|
+
def product_section
|
92
|
+
get_nodes("ProductSection", nil, true, OVF).first
|
77
93
|
end
|
78
94
|
|
79
95
|
# hardware modification methods
|
80
96
|
|
81
|
-
def add_hard_disk(
|
97
|
+
def add_hard_disk(capacity, bus_type, bus_sub_type)
|
82
98
|
section = hardware_section
|
83
|
-
scsi_controller = section.scsi_controller
|
84
|
-
unless scsi_controller
|
85
|
-
raise ObjectNotFoundError, "No SCSI controller found for VM #{name}"
|
86
|
-
end
|
87
99
|
# Create a RASD item
|
88
|
-
new_disk = WrapperFactory
|
89
|
-
|
100
|
+
new_disk = WrapperFactory
|
101
|
+
.create_instance("Item",
|
102
|
+
nil,
|
103
|
+
hardware_section.doc_namespaces)
|
90
104
|
section.add_item(new_disk)
|
91
105
|
# The order matters!
|
92
106
|
new_disk.add_rasd(RASD_TYPES[:HOST_RESOURCE])
|
@@ -96,12 +110,11 @@ module VCloudSdk
|
|
96
110
|
new_disk.set_rasd(rt, HARDWARE_TYPE[:HARD_DISK])
|
97
111
|
host_resource = new_disk.get_rasd(RASD_TYPES[:HOST_RESOURCE])
|
98
112
|
host_resource[new_disk.create_qualified_name(
|
99
|
-
"capacity", VCLOUD_NAMESPACE)] =
|
113
|
+
"capacity", VCLOUD_NAMESPACE)] = capacity.to_s
|
100
114
|
host_resource[new_disk.create_qualified_name(
|
101
|
-
"busSubType", VCLOUD_NAMESPACE)] =
|
102
|
-
RASD_TYPES[:RESOURCE_SUB_TYPE])
|
115
|
+
"busSubType", VCLOUD_NAMESPACE)] = bus_sub_type
|
103
116
|
host_resource[new_disk.create_qualified_name(
|
104
|
-
"busType", VCLOUD_NAMESPACE)] =
|
117
|
+
"busType", VCLOUD_NAMESPACE)] = bus_type
|
105
118
|
end
|
106
119
|
|
107
120
|
def change_cpu_count(quantity)
|
@@ -116,37 +129,6 @@ module VCloudSdk
|
|
116
129
|
item.set_rasd("VirtualQuantity", mb)
|
117
130
|
end
|
118
131
|
|
119
|
-
def add_nic(nic_index, network_name, addressing_mode, ip = nil)
|
120
|
-
section = hardware_section
|
121
|
-
is_primary = hardware_section.nics.length == 0
|
122
|
-
new_nic = Xml::NicItemWrapper.new(Xml::WrapperFactory.create_instance(
|
123
|
-
"Item", nil, hardware_section.doc_namespaces))
|
124
|
-
section.add_item(new_nic)
|
125
|
-
new_nic.nic_index = nic_index
|
126
|
-
new_nic.network = network_name
|
127
|
-
new_nic.set_ip_addressing_mode(addressing_mode, ip)
|
128
|
-
new_nic.is_primary = is_primary
|
129
|
-
@logger.info("Adding NIC #{nic_index} to VM #{name} with the " +
|
130
|
-
"following parameters: Network name: #{network_name}, " +
|
131
|
-
"Addressing mode #{addressing_mode}, " +
|
132
|
-
"IP address: #{ip.nil? ? "blank" : ip}")
|
133
|
-
end
|
134
|
-
|
135
|
-
# NIC modification methods
|
136
|
-
|
137
|
-
def connect_nic(nic_index, network_name, addressing_mode,
|
138
|
-
ip_address = nil)
|
139
|
-
section = network_connection_section
|
140
|
-
new_connection = WrapperFactory.create_instance("NetworkConnection",
|
141
|
-
nil, network_connection_section.doc_namespaces)
|
142
|
-
section.add_item(new_connection)
|
143
|
-
new_connection.network_connection_index = nic_index
|
144
|
-
new_connection.network = network_name
|
145
|
-
new_connection.ip_address_allocation_mode = addressing_mode
|
146
|
-
new_connection.ip_address = ip_address if ip_address
|
147
|
-
new_connection.is_connected = true
|
148
|
-
end
|
149
|
-
|
150
132
|
# Deletes NIC from VM. Accepts variable number of arguments for NICs.
|
151
133
|
# To delete all NICs from VM use the splat operator
|
152
134
|
# ex: delete_nic(vm, *vm.hardware_section.nics)
|
@@ -168,15 +150,17 @@ module VCloudSdk
|
|
168
150
|
net_conn_section = network_connection_section
|
169
151
|
connection = net_conn_section.network_connection(nic_index)
|
170
152
|
unless connection
|
171
|
-
|
172
|
-
|
153
|
+
fail ObjectNotFoundError,
|
154
|
+
"NIC #{nic_index} cannot be found on VM #{name}."
|
173
155
|
end
|
174
156
|
connection.is_connected = is_connected
|
157
|
+
nil
|
175
158
|
end
|
176
159
|
|
177
160
|
def set_primary_nic(nic_index)
|
178
161
|
net_conn_section = network_connection_section
|
179
162
|
net_conn_section.primary_network_connection_index = nic_index
|
163
|
+
nil
|
180
164
|
end
|
181
165
|
end
|
182
166
|
end
|
@@ -30,6 +30,8 @@ require "ruby_vcloud_sdk/xml/wrapper_classes/nic_item_wrapper"
|
|
30
30
|
require "ruby_vcloud_sdk/xml/wrapper_classes/org"
|
31
31
|
require "ruby_vcloud_sdk/xml/wrapper_classes/org_network"
|
32
32
|
require "ruby_vcloud_sdk/xml/wrapper_classes/org_vdc_network"
|
33
|
+
require "ruby_vcloud_sdk/xml/wrapper_classes/product_section"
|
34
|
+
require "ruby_vcloud_sdk/xml/wrapper_classes/product_section_list"
|
33
35
|
require "ruby_vcloud_sdk/xml/wrapper_classes/query_result_records"
|
34
36
|
require "ruby_vcloud_sdk/xml/wrapper_classes/recompose_vapp_params"
|
35
37
|
require "ruby_vcloud_sdk/xml/wrapper_classes/session"
|
@@ -7,12 +7,7 @@
|
|
7
7
|
<IsInherited />
|
8
8
|
<Gateway />
|
9
9
|
<Netmask />
|
10
|
-
<IpRanges
|
11
|
-
<IpRange>
|
12
|
-
<StartAddress />
|
13
|
-
<EndAddress />
|
14
|
-
</IpRange>
|
15
|
-
</IpRanges>
|
10
|
+
<IpRanges />
|
16
11
|
</IpScope>
|
17
12
|
</IpScopes>
|
18
13
|
<ParentNetwork type="application/vnd.vmware.vcloud.network+xml" name="" href=""/>
|
@@ -1 +1,8 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ProductSectionList xmlns="http://www.vmware.com/vcloud/v1.5"
|
3
|
+
xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1">
|
4
|
+
<ovf:ProductSection
|
5
|
+
required="true">
|
6
|
+
<ovf:Info>Information about the installed software</ovf:Info>
|
7
|
+
</ovf:ProductSection>
|
8
|
+
</ProductSectionList>
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_vcloud_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- VMware
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: builder
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: httpclient
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - '='
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - '='
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rest-client
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - ~>
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: nokogiri
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :runtime
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -69,26 +78,27 @@ dependencies:
|
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: netaddr
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
|
-
- - '>='
|
83
|
+
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
75
85
|
version: '0'
|
76
86
|
type: :runtime
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
|
-
- - '>='
|
91
|
+
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
82
93
|
version: '0'
|
83
|
-
description:
|
84
|
-
|
85
|
-
|
94
|
+
description: ! 'BOSH vCloud API client
|
95
|
+
|
96
|
+
a51aef'
|
86
97
|
email: support@cloudfoundry.com
|
87
98
|
executables: []
|
88
99
|
extensions: []
|
89
100
|
extra_rdoc_files: []
|
90
101
|
files:
|
91
|
-
- README.md
|
92
102
|
- lib/ruby_vcloud_sdk.rb
|
93
103
|
- lib/ruby_vcloud_sdk/catalog.rb
|
94
104
|
- lib/ruby_vcloud_sdk/catalog_item.rb
|
@@ -101,12 +111,14 @@ files:
|
|
101
111
|
- lib/ruby_vcloud_sdk/edge_gateway.rb
|
102
112
|
- lib/ruby_vcloud_sdk/errors.rb
|
103
113
|
- lib/ruby_vcloud_sdk/infrastructure.rb
|
114
|
+
- lib/ruby_vcloud_sdk/internal_disk.rb
|
104
115
|
- lib/ruby_vcloud_sdk/ip_ranges.rb
|
105
116
|
- lib/ruby_vcloud_sdk/memory.rb
|
106
117
|
- lib/ruby_vcloud_sdk/network.rb
|
107
118
|
- lib/ruby_vcloud_sdk/ovf_directory.rb
|
108
119
|
- lib/ruby_vcloud_sdk/powerable.rb
|
109
120
|
- lib/ruby_vcloud_sdk/resources.rb
|
121
|
+
- lib/ruby_vcloud_sdk/right_record.rb
|
110
122
|
- lib/ruby_vcloud_sdk/session.rb
|
111
123
|
- lib/ruby_vcloud_sdk/vapp.rb
|
112
124
|
- lib/ruby_vcloud_sdk/vdc.rb
|
@@ -147,6 +159,8 @@ files:
|
|
147
159
|
- lib/ruby_vcloud_sdk/xml/wrapper_classes/org.rb
|
148
160
|
- lib/ruby_vcloud_sdk/xml/wrapper_classes/org_network.rb
|
149
161
|
- lib/ruby_vcloud_sdk/xml/wrapper_classes/org_vdc_network.rb
|
162
|
+
- lib/ruby_vcloud_sdk/xml/wrapper_classes/product_section.rb
|
163
|
+
- lib/ruby_vcloud_sdk/xml/wrapper_classes/product_section_list.rb
|
150
164
|
- lib/ruby_vcloud_sdk/xml/wrapper_classes/query_result_records.rb
|
151
165
|
- lib/ruby_vcloud_sdk/xml/wrapper_classes/recompose_vapp_params.rb
|
152
166
|
- lib/ruby_vcloud_sdk/xml/wrapper_classes/session.rb
|
@@ -353,29 +367,31 @@ files:
|
|
353
367
|
- lib/ruby_vcloud_sdk/xml/xml_templates/VmPendingQuestion.xml
|
354
368
|
- lib/ruby_vcloud_sdk/xml/xml_templates/VmQuestionAnswer.xml
|
355
369
|
- lib/ruby_vcloud_sdk/xml/xml_templates/generate_dictionary.rb
|
370
|
+
- README.md
|
356
371
|
homepage: https://github.com/vchs/ruby_vcloud_sdk
|
357
372
|
licenses:
|
358
373
|
- Apache 2.0
|
359
|
-
metadata: {}
|
360
374
|
post_install_message:
|
361
375
|
rdoc_options: []
|
362
376
|
require_paths:
|
363
377
|
- lib
|
364
378
|
required_ruby_version: !ruby/object:Gem::Requirement
|
379
|
+
none: false
|
365
380
|
requirements:
|
366
|
-
- - '>='
|
381
|
+
- - ! '>='
|
367
382
|
- !ruby/object:Gem::Version
|
368
383
|
version: 1.9.3
|
369
384
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
385
|
+
none: false
|
370
386
|
requirements:
|
371
|
-
- - '>='
|
387
|
+
- - ! '>='
|
372
388
|
- !ruby/object:Gem::Version
|
373
389
|
version: '0'
|
374
390
|
requirements: []
|
375
391
|
rubyforge_project:
|
376
|
-
rubygems_version:
|
392
|
+
rubygems_version: 1.8.24
|
377
393
|
signing_key:
|
378
|
-
specification_version:
|
394
|
+
specification_version: 3
|
379
395
|
summary: BOSH vCloud API client
|
380
396
|
test_files: []
|
381
397
|
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: e4a7a59af14ae30e7e385ec2d53140e95bbeea19
|
4
|
-
data.tar.gz: f9ea0599b374ae52a64d243754736534d45c6233
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: ad8a5d9da2550b289ac57d6570a959ee26d28de8975e901d1b84666f61e14d5aeb5b3c2e1ae9000dfe334e60c3b7d267591d23e06ce062d814b74c91cc0a17c5
|
7
|
-
data.tar.gz: 098583e00f2b459ead4922fa101056a1c744e26ec16da444c0afb0ea0a684c55d1e2b09c380cd39623fdedde19d954c626472770dea51e803605da8b6d96c16b
|