opennebula 6.2.0.1 → 6.2.1
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/lib/cloud/CloudClient.rb +1 -1
- data/lib/datacenter.rb +33 -3
- data/lib/datastore.rb +11 -4
- data/lib/opennebula/ldap_auth.rb +3 -1
- data/lib/opennebula/marketplaceapp_ext.rb +1 -1
- data/lib/opennebula/user.rb +2 -2
- data/lib/opennebula/virtual_machine_ext.rb +31 -2
- data/lib/opennebula/virtual_machine_pool.rb +4 -0
- data/lib/opennebula.rb +1 -1
- data/lib/vcenter_importer.rb +16 -6
- data/lib/virtual_machine.rb +8 -4
- data/lib/vm_template.rb +140 -56
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 630fc82258e06265dd9308385f987452c2c9e97774f9c844567eb0512c699996
|
4
|
+
data.tar.gz: 4b19ee5faf356fc61ba4e8883dc7bb37137d54d34c251c6f0cbbfab5a8b0b27b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea3eba7d99bfc70cb7b94a2c8c2548b130d50ec3cf73d3344e0ed12a05b2e83780eec32e4790cfeef00bde6a38164468a0cfe91bb62cd1325c20aac7f9cca235
|
7
|
+
data.tar.gz: eeb5c702a03ef47f5ad8e37f95b94259e49019a78d5b58f8ce560d3b2afd50cb8828a7512afe14b1f3e25e262ab3b3974f9174e3109a20a98d89140a90fbca96
|
data/lib/cloud/CloudClient.rb
CHANGED
data/lib/datacenter.rb
CHANGED
@@ -131,7 +131,10 @@ module VCenterDriver
|
|
131
131
|
|
132
132
|
# Setting host import name and
|
133
133
|
# replace spaces and weird characters
|
134
|
-
cluster_name =
|
134
|
+
cluster_name = ccr['name'].to_s.tr(' ', '_')
|
135
|
+
cluster_name = VCenterDriver::VcImporter.sanitize(
|
136
|
+
cluster_name
|
137
|
+
)
|
135
138
|
cluster_name =
|
136
139
|
VCenterDriver::VIHelper
|
137
140
|
.one_name(
|
@@ -159,11 +162,28 @@ module VCenterDriver
|
|
159
162
|
host_objects
|
160
163
|
end
|
161
164
|
|
162
|
-
|
165
|
+
# rubocop:disable Style/GlobalVars
|
166
|
+
def get_unimported_datastores(dpool, vcenter_instance_name, hpool, args)
|
163
167
|
import_id = 0
|
164
168
|
ds_objects = {}
|
165
169
|
vcenter_uuid = vcenter_instance_uuid
|
166
170
|
|
171
|
+
# Selected host in OpenNebula
|
172
|
+
if $conf.nil?
|
173
|
+
one_client = OpenNebula::Client.new
|
174
|
+
else
|
175
|
+
one_client = OpenNebula::Client.new(
|
176
|
+
nil,
|
177
|
+
$conf[:one_xmlrpc]
|
178
|
+
)
|
179
|
+
end
|
180
|
+
one_host = OpenNebula::Host.new_with_id(args[:host], one_client)
|
181
|
+
|
182
|
+
rc = one_host.info
|
183
|
+
raise rc.message if OpenNebula.is_error? rc
|
184
|
+
|
185
|
+
cluster_id = one_host['CLUSTER_ID'].to_i
|
186
|
+
|
167
187
|
# Get datacenters
|
168
188
|
fetch! if @items.empty?
|
169
189
|
|
@@ -185,7 +205,10 @@ module VCenterDriver
|
|
185
205
|
'summary.freeSpace'
|
186
206
|
)
|
187
207
|
|
188
|
-
ds_name
|
208
|
+
ds_name = VCenterDriver::VcImporter.sanitize(
|
209
|
+
name.to_s
|
210
|
+
)
|
211
|
+
|
189
212
|
ds_total_mb = ((capacity.to_i / 1024) / 1024)
|
190
213
|
ds_free_mb = ((free_space.to_i / 1024) / 1024)
|
191
214
|
ds_ref = ds['_ref']
|
@@ -363,8 +386,15 @@ module VCenterDriver
|
|
363
386
|
end
|
364
387
|
end
|
365
388
|
|
389
|
+
ds_objects.keys.each do |key|
|
390
|
+
unless ds_objects[key][:cluster].include? cluster_id
|
391
|
+
ds_objects.delete key
|
392
|
+
end
|
393
|
+
end
|
394
|
+
|
366
395
|
{ vcenter_instance_name => ds_objects }
|
367
396
|
end
|
397
|
+
# rubocop:enable Style/GlobalVars
|
368
398
|
|
369
399
|
def get_unimported_templates(vi_client, tpool)
|
370
400
|
template_objects = {}
|
data/lib/datastore.rb
CHANGED
@@ -881,7 +881,7 @@ module VCenterDriver
|
|
881
881
|
@one_class = OpenNebula::Datastore
|
882
882
|
end
|
883
883
|
|
884
|
-
def get_list(
|
884
|
+
def get_list(args = {})
|
885
885
|
dc_folder = VCenterDriver::DatacenterFolder.new(@vi_client)
|
886
886
|
|
887
887
|
# one pool creation
|
@@ -908,7 +908,8 @@ module VCenterDriver
|
|
908
908
|
.get_unimported_datastores(
|
909
909
|
dpool,
|
910
910
|
@vi_client.vc_name,
|
911
|
-
hpool
|
911
|
+
hpool,
|
912
|
+
args
|
912
913
|
)
|
913
914
|
@list = rs
|
914
915
|
end
|
@@ -948,7 +949,11 @@ module VCenterDriver
|
|
948
949
|
clusters = opts['selected_clusters'].each.map(&:to_i)
|
949
950
|
end
|
950
951
|
|
951
|
-
|
952
|
+
name = VCenterDriver::VcImporter.sanitize(
|
953
|
+
selected[:simple_name]
|
954
|
+
)
|
955
|
+
|
956
|
+
res = { :id => [], :name => name }
|
952
957
|
@info[:rollback] = []
|
953
958
|
pair.each do |ds|
|
954
959
|
create(ds[:one]) do |one_object, id|
|
@@ -1011,7 +1016,9 @@ module VCenterDriver
|
|
1011
1016
|
message = 'Error creating the OpenNebula resource'
|
1012
1017
|
info = selected[:one]
|
1013
1018
|
dsid = selected[:dsid].to_i
|
1014
|
-
name =
|
1019
|
+
name = VCenterDriver::VcImporter.sanitize(
|
1020
|
+
selected[:name]
|
1021
|
+
)
|
1015
1022
|
|
1016
1023
|
rc = resource.allocate(info, dsid, false)
|
1017
1024
|
VCenterDriver::VIHelper.check_error(rc, message)
|
data/lib/opennebula/ldap_auth.rb
CHANGED
@@ -15,7 +15,9 @@
|
|
15
15
|
# ---------------------------------------------------------------------------- #
|
16
16
|
|
17
17
|
require 'rubygems'
|
18
|
-
require 'opennebula'
|
18
|
+
require 'opennebula/xml_utils'
|
19
|
+
require 'opennebula/client'
|
20
|
+
require 'opennebula/group_pool'
|
19
21
|
require 'net/ldap'
|
20
22
|
require 'yaml'
|
21
23
|
|
@@ -461,7 +461,7 @@ module OpenNebula::MarketPlaceAppExt
|
|
461
461
|
def export_recursive(xpath, options)
|
462
462
|
# Get marketplace apps pool to find roles apps
|
463
463
|
pool = OpenNebula::MarketPlaceAppPool.new(@client)
|
464
|
-
rc = pool.
|
464
|
+
rc = pool.info_all
|
465
465
|
|
466
466
|
return rc if OpenNebula.is_error?(rc)
|
467
467
|
|
data/lib/opennebula/user.rb
CHANGED
@@ -89,8 +89,8 @@ module OpenNebula
|
|
89
89
|
#######################################################################
|
90
90
|
|
91
91
|
# Retrieves the information of the given User.
|
92
|
-
def info()
|
93
|
-
super(USER_METHODS[:info], 'USER')
|
92
|
+
def info(decrypt = false)
|
93
|
+
super(USER_METHODS[:info], 'USER', decrypt)
|
94
94
|
end
|
95
95
|
|
96
96
|
alias_method :info!, :info
|
@@ -94,6 +94,35 @@ module OpenNebula::VirtualMachineExt
|
|
94
94
|
raise rc.message if OpenNebula.is_error?(rc)
|
95
95
|
end
|
96
96
|
|
97
|
+
# --------------------------------------------------------------
|
98
|
+
# Ask if source VM is linked clone
|
99
|
+
# --------------------------------------------------------------
|
100
|
+
use_linked_clones = self['USER_TEMPLATE/VCENTER_LINKED_CLONES']
|
101
|
+
|
102
|
+
if use_linked_clones && use_linked_clones.downcase == 'yes'
|
103
|
+
# Delay the require until it is strictly needed
|
104
|
+
# This way we can avoid the vcenter driver dependency
|
105
|
+
# in no vCenter deployments
|
106
|
+
require 'vcenter_driver'
|
107
|
+
|
108
|
+
deploy_id = self['DEPLOY_ID']
|
109
|
+
vm_id = self['ID']
|
110
|
+
host_id = self['HISTORY_RECORDS/HISTORY[last()]/HID']
|
111
|
+
vi_client = VCenterDriver::VIClient.new_from_host(host_id)
|
112
|
+
|
113
|
+
vm = VCenterDriver::VirtualMachine.new(
|
114
|
+
vi_client,
|
115
|
+
deploy_id,
|
116
|
+
vm_id
|
117
|
+
)
|
118
|
+
|
119
|
+
error, vm_template_ref = vm.save_as_linked_clones(name)
|
120
|
+
|
121
|
+
raise error unless error.nil?
|
122
|
+
|
123
|
+
return vm_template_ref
|
124
|
+
end
|
125
|
+
|
97
126
|
# --------------------------------------------------------------
|
98
127
|
# Clone the source template
|
99
128
|
# --------------------------------------------------------------
|
@@ -271,7 +300,7 @@ module OpenNebula::VirtualMachineExt
|
|
271
300
|
|
272
301
|
raise rc.message if OpenNebula.is_error?(rc)
|
273
302
|
|
274
|
-
binfo.merge!(backup_info) do |
|
303
|
+
binfo.merge!(backup_info) do |_key, old_val, new_val|
|
275
304
|
new_val.nil? ? old_val : new_val
|
276
305
|
end
|
277
306
|
|
@@ -472,7 +501,7 @@ module OpenNebula::VirtualMachineExt
|
|
472
501
|
end
|
473
502
|
|
474
503
|
binfo[:apps].each do |id|
|
475
|
-
logger.info "Deleting
|
504
|
+
logger.info "Deleting appliance #{id}" if logger
|
476
505
|
|
477
506
|
papp = OpenNebula::MarketPlaceApp.new_with_id(id, @client)
|
478
507
|
|
@@ -450,6 +450,10 @@ module OpenNebula
|
|
450
450
|
private
|
451
451
|
|
452
452
|
def build_accounting(filter_flag, options, &block)
|
453
|
+
|
454
|
+
options[:start_time] = -1 if options[:start_time].nil?
|
455
|
+
options[:end_time] = -1 if options[:end_time].nil?
|
456
|
+
|
453
457
|
xml_str = @client.call(VM_POOL_METHODS[:accounting],
|
454
458
|
filter_flag,
|
455
459
|
options[:start_time],
|
data/lib/opennebula.rb
CHANGED
data/lib/vcenter_importer.rb
CHANGED
@@ -202,7 +202,7 @@ module VCenterDriver
|
|
202
202
|
# index associated to his own resource opt
|
203
203
|
#
|
204
204
|
# Example:
|
205
|
-
# {"vm-343" => {
|
205
|
+
# {"vm-343" => {:linked_clone: '0', :copy: '0'...}
|
206
206
|
#
|
207
207
|
# @ return [Hash] the list of unimported resources
|
208
208
|
#
|
@@ -263,7 +263,10 @@ module VCenterDriver
|
|
263
263
|
|
264
264
|
cluster_list = {}
|
265
265
|
cpool.each do |c|
|
266
|
-
|
266
|
+
name = VCenterDriver::VcImporter.sanitize(
|
267
|
+
c['NAME']
|
268
|
+
)
|
269
|
+
cluster_list[c['ID']] = name if c['ID'].to_i != 0
|
267
270
|
end
|
268
271
|
|
269
272
|
# Get OpenNebula's host pool
|
@@ -312,10 +315,13 @@ module VCenterDriver
|
|
312
315
|
|
313
316
|
cluster_list_str = "\n"
|
314
317
|
cluster_list.each do |key, value|
|
318
|
+
name = VCenterDriver::VcImporter.sanitize(
|
319
|
+
value
|
320
|
+
)
|
315
321
|
cluster_list_str << " - \e[94mID: " \
|
316
322
|
<< key \
|
317
323
|
<< "\e[39m - NAME: " \
|
318
|
-
<<
|
324
|
+
<< name << "\n"
|
319
325
|
end
|
320
326
|
|
321
327
|
STDOUT.print "\n #{cluster_list_str}"
|
@@ -330,15 +336,19 @@ module VCenterDriver
|
|
330
336
|
end
|
331
337
|
end
|
332
338
|
|
339
|
+
cluster_name = VCenterDriver::VcImporter.sanitize(
|
340
|
+
cluster[:cluster_name]
|
341
|
+
)
|
342
|
+
|
333
343
|
# Check if the OpenNebula Cluster exists, and reuse it
|
334
344
|
one_cluster_id ||= cluster_list
|
335
|
-
.key(
|
345
|
+
.key(cluster_name)
|
336
346
|
|
337
347
|
if !one_cluster_id
|
338
348
|
one_cluster = VCenterDriver::VIHelper
|
339
349
|
.new_one_item(OpenNebula::Cluster)
|
340
350
|
rc = one_cluster
|
341
|
-
.allocate(
|
351
|
+
.allocate(cluster_name.to_s)
|
342
352
|
if ::OpenNebula.is_error?(rc)
|
343
353
|
# rubocop:disable Layout/LineLength
|
344
354
|
STDOUT.puts " Error creating OpenNebula cluster: #{rc.message}\n"
|
@@ -355,7 +365,7 @@ module VCenterDriver
|
|
355
365
|
rpool,
|
356
366
|
one_cluster_id)
|
357
367
|
# rubocop:disable Layout/LineLength
|
358
|
-
STDOUT.puts "\n OpenNebula host \e[92m#{
|
368
|
+
STDOUT.puts "\n OpenNebula host \e[92m#{cluster_name}\e[39m with"\
|
359
369
|
" ID \e[94m#{one_host.id}\e[39m successfully created."
|
360
370
|
STDOUT.puts
|
361
371
|
# rubocop:enable Layout/LineLength
|
data/lib/virtual_machine.rb
CHANGED
@@ -579,8 +579,6 @@ end
|
|
579
579
|
end
|
580
580
|
end
|
581
581
|
|
582
|
-
dc = cluster.datacenter
|
583
|
-
|
584
582
|
vcenter_vm_folder = drv_action['USER_TEMPLATE/VCENTER_VM_FOLDER']
|
585
583
|
|
586
584
|
if !vcenter_vm_folder.nil? && !vcenter_vm_folder.empty?
|
@@ -1983,7 +1981,7 @@ end
|
|
1983
1981
|
end
|
1984
1982
|
|
1985
1983
|
card_spec = {
|
1986
|
-
:key =>
|
1984
|
+
:key => 0,
|
1987
1985
|
:deviceInfo => {
|
1988
1986
|
:label => 'net' + card_num.to_s,
|
1989
1987
|
:summary => pg_name
|
@@ -1993,6 +1991,9 @@ end
|
|
1993
1991
|
:macAddress => mac,
|
1994
1992
|
:unitNumber => unumber
|
1995
1993
|
}
|
1994
|
+
if @vi_client.vim.serviceContent.about.apiVersion.to_f >= 7.0
|
1995
|
+
card_spec[:key] = Time.now.utc.strftime('%m%d%M%S%L').to_i
|
1996
|
+
end
|
1996
1997
|
|
1997
1998
|
if (limit || rsrv) && (limit > 0)
|
1998
1999
|
ra_spec = {}
|
@@ -2129,7 +2130,7 @@ end
|
|
2129
2130
|
end
|
2130
2131
|
|
2131
2132
|
card_spec = {
|
2132
|
-
:key =>
|
2133
|
+
:key => 0,
|
2133
2134
|
:deviceInfo => {
|
2134
2135
|
:label => 'net' + card_num.to_s,
|
2135
2136
|
:summary => pg_name
|
@@ -2137,6 +2138,9 @@ end
|
|
2137
2138
|
:backing => backing,
|
2138
2139
|
:addressType => 'generated'
|
2139
2140
|
}
|
2141
|
+
if @vi_client.vim.serviceContent.about.apiVersion.to_f >= 7.0
|
2142
|
+
card_spec[:key] = Time.now.utc.strftime('%m%d%M%S%L').to_i
|
2143
|
+
end
|
2140
2144
|
|
2141
2145
|
if (limit || rsrv) && (limit > 0)
|
2142
2146
|
ra_spec = {}
|
data/lib/vm_template.rb
CHANGED
@@ -96,6 +96,90 @@ module VCenterDriver
|
|
96
96
|
@vi_client.vim.serviceContent.about.instanceUuid rescue nil
|
97
97
|
end
|
98
98
|
|
99
|
+
def save_as_linked_clones(name)
|
100
|
+
error = nil
|
101
|
+
|
102
|
+
disks = @item.config.hardware.device.grep(
|
103
|
+
RbVmomi::VIM::VirtualMachine
|
104
|
+
)
|
105
|
+
disks.select {|x| x.backing.parent.nil? }.each do |disk|
|
106
|
+
spec = {
|
107
|
+
:deviceChange => [
|
108
|
+
{
|
109
|
+
:operation => :remove,
|
110
|
+
:device => disk
|
111
|
+
},
|
112
|
+
{
|
113
|
+
:operation => :add,
|
114
|
+
:fileOperation => :create,
|
115
|
+
:device => disk.dup.tap do |x|
|
116
|
+
x.backing = x.backing.dup
|
117
|
+
x.backing.fileName =
|
118
|
+
"[#{disk.backing.datastore.name}]"
|
119
|
+
x.backing.parent = disk.backing
|
120
|
+
end
|
121
|
+
}
|
122
|
+
]
|
123
|
+
}
|
124
|
+
@item.ReconfigVM_Task(
|
125
|
+
:spec => spec
|
126
|
+
).wait_for_completion
|
127
|
+
end
|
128
|
+
|
129
|
+
relocateSpec = RbVmomi::VIM.VirtualMachineRelocateSpec(
|
130
|
+
:diskMoveType => :moveChildMostDiskBacking
|
131
|
+
)
|
132
|
+
|
133
|
+
spec = RbVmomi::VIM.VirtualMachineCloneSpec(
|
134
|
+
:location => relocateSpec,
|
135
|
+
:powerOn => false,
|
136
|
+
:template => true
|
137
|
+
)
|
138
|
+
|
139
|
+
new_template = @item.CloneVM_Task(
|
140
|
+
:folder => @item.parent,
|
141
|
+
:name => name,
|
142
|
+
:spec => spec
|
143
|
+
).wait_for_completion
|
144
|
+
|
145
|
+
new_vm_template_ref = new_template._ref
|
146
|
+
|
147
|
+
one_client = OpenNebula::Client.new
|
148
|
+
importer = VCenterDriver::VmImporter.new(
|
149
|
+
one_client,
|
150
|
+
@vi_client
|
151
|
+
)
|
152
|
+
|
153
|
+
importer.retrieve_resources({})
|
154
|
+
importer.get_indexes(new_vm_template_ref)
|
155
|
+
|
156
|
+
importer.process_import(
|
157
|
+
new_vm_template_ref,
|
158
|
+
{
|
159
|
+
new_vm_template_ref.to_s => {
|
160
|
+
:type => 'default',
|
161
|
+
:linked_clone => '1',
|
162
|
+
:copy => '0',
|
163
|
+
:name => '',
|
164
|
+
:folder => ''
|
165
|
+
}
|
166
|
+
}
|
167
|
+
)
|
168
|
+
|
169
|
+
begin
|
170
|
+
importer.output[:success][0][:id][0]
|
171
|
+
rescue StandardError => e
|
172
|
+
error = 'Creating linked clone VM Template' \
|
173
|
+
" failed due to \"#{e.message}\".\n"
|
174
|
+
|
175
|
+
if VCenterDriver::CONFIG[:debug_information]
|
176
|
+
error += " #{e.backtrace}\n"
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
[error, new_vm_template_ref]
|
181
|
+
end
|
182
|
+
|
99
183
|
def create_template_copy(template_name)
|
100
184
|
error = nil
|
101
185
|
template_ref = nil
|
@@ -1835,12 +1919,10 @@ module VCenterDriver
|
|
1835
1919
|
# the template if something go wrong
|
1836
1920
|
if copy
|
1837
1921
|
error, template_copy_ref =
|
1838
|
-
selected[:template]
|
1839
|
-
|
1840
|
-
opts[:name]
|
1841
|
-
)
|
1922
|
+
selected[:template].save_as_linked_clones(opts[:name])
|
1923
|
+
|
1842
1924
|
unless template_copy_ref
|
1843
|
-
raise 'There is a problem creating
|
1925
|
+
raise 'There is a problem creating ' \
|
1844
1926
|
"your copy: #{error}"
|
1845
1927
|
end
|
1846
1928
|
|
@@ -1893,68 +1975,70 @@ module VCenterDriver
|
|
1893
1975
|
working_template[:one] <<
|
1894
1976
|
"VCENTER_TEMPLATE_NAME=\"#{selected[:name]}\"\n"
|
1895
1977
|
|
1896
|
-
|
1897
|
-
|
1978
|
+
unless copy
|
1979
|
+
create(working_template[:one]) do |one_object, id|
|
1980
|
+
res[:id] << id
|
1898
1981
|
|
1899
|
-
|
1900
|
-
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1904
|
-
|
1905
|
-
|
1906
|
-
|
1907
|
-
|
1982
|
+
type = { :object => 'template', :id => id }
|
1983
|
+
error, template_disks, allocated_images =
|
1984
|
+
template
|
1985
|
+
.import_vcenter_disks(
|
1986
|
+
vc_uuid,
|
1987
|
+
dpool,
|
1988
|
+
ipool,
|
1989
|
+
type
|
1990
|
+
)
|
1908
1991
|
|
1909
|
-
|
1910
|
-
|
1911
|
-
|
1912
|
-
|
1992
|
+
if allocated_images
|
1993
|
+
# rollback stack
|
1994
|
+
allocated_images.reverse.each do |i|
|
1995
|
+
@rollback.unshift(Raction.new(i, :delete))
|
1996
|
+
end
|
1913
1997
|
end
|
1914
|
-
|
1915
|
-
raise error unless error.empty?
|
1998
|
+
raise error unless error.empty?
|
1916
1999
|
|
1917
|
-
|
2000
|
+
working_template[:one] << template_disks
|
1918
2001
|
|
1919
|
-
|
1920
|
-
|
1921
|
-
|
1922
|
-
|
1923
|
-
|
2002
|
+
if template_copy_ref
|
2003
|
+
template_moref = template_copy_ref
|
2004
|
+
else
|
2005
|
+
template_moref = selected[:vcenter_ref]
|
2006
|
+
end
|
1924
2007
|
|
1925
|
-
|
1926
|
-
|
1927
|
-
|
1928
|
-
|
1929
|
-
|
1930
|
-
|
1931
|
-
|
1932
|
-
|
1933
|
-
|
2008
|
+
opts_nics = {
|
2009
|
+
:vi_client => @vi_client,
|
2010
|
+
:vc_uuid => vc_uuid,
|
2011
|
+
:npool => npool,
|
2012
|
+
:hpool => hpool,
|
2013
|
+
:vcenter => vcenter,
|
2014
|
+
:template_moref => template_moref,
|
2015
|
+
:vm_object => nil
|
2016
|
+
}
|
1934
2017
|
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
|
2018
|
+
error, template_nics, _ar_ids, allocated_nets =
|
2019
|
+
template
|
2020
|
+
.import_vcenter_nics(
|
2021
|
+
opts_nics,
|
2022
|
+
id,
|
2023
|
+
dc
|
2024
|
+
)
|
1942
2025
|
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
2026
|
+
if allocated_nets
|
2027
|
+
# rollback stack
|
2028
|
+
allocated_nets.reverse.each do |n|
|
2029
|
+
@rollback.unshift(Raction.new(n, :delete))
|
2030
|
+
end
|
1947
2031
|
end
|
1948
|
-
|
1949
|
-
raise error unless error.empty?
|
2032
|
+
raise error unless error.empty?
|
1950
2033
|
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
2034
|
+
working_template[:one] << template_nics
|
2035
|
+
working_template[:one] << rp_opts(
|
2036
|
+
opts[:type],
|
2037
|
+
opts[:resourcepool]
|
2038
|
+
)
|
1956
2039
|
|
1957
|
-
|
2040
|
+
one_object.update(working_template[:one])
|
2041
|
+
end
|
1958
2042
|
end
|
1959
2043
|
|
1960
2044
|
res
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opennebula
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.2.
|
4
|
+
version: 6.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenNebula
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|