opennebula 6.2.0 → 6.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 62addc3c6ca7a2d64f362b69e78d5249a8c580ca
4
- data.tar.gz: 753aea24a283602fad7c6e7171164a8c6af9ee00
2
+ SHA256:
3
+ metadata.gz: 630fc82258e06265dd9308385f987452c2c9e97774f9c844567eb0512c699996
4
+ data.tar.gz: 4b19ee5faf356fc61ba4e8883dc7bb37137d54d34c251c6f0cbbfab5a8b0b27b
5
5
  SHA512:
6
- metadata.gz: afd9480704e6bfce7e708729ef75ad7457ce713b0e85b235b23373e94867b40713aef2a032b191d52f3567b2ca8de4a361e5baaf757228aa131eb32ceda2b12e
7
- data.tar.gz: 0b319949a9cfad08f13f6ecd1040b28d5edaf1a11c46f5fadbd0ea3ee90af97f239a48fa85809789eec9805cb269ad44f9f72c63b5809e6fea8e273acda7f1c5
6
+ metadata.gz: ea3eba7d99bfc70cb7b94a2c8c2548b130d50ec3cf73d3344e0ed12a05b2e83780eec32e4790cfeef00bde6a38164468a0cfe91bb62cd1325c20aac7f9cca235
7
+ data.tar.gz: eeb5c702a03ef47f5ad8e37f95b94259e49019a78d5b58f8ce560d3b2afd50cb8828a7512afe14b1f3e25e262ab3b3974f9174e3109a20a98d89140a90fbca96
@@ -51,7 +51,7 @@ end
51
51
  module CloudClient
52
52
 
53
53
  # OpenNebula version
54
- VERSION = '6.2.0'
54
+ VERSION = '6.2.1'
55
55
 
56
56
  # #########################################################################
57
57
  # Default location for the authentication file
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 = (ccr['name']).to_s.tr(' ', '_')
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
- def get_unimported_datastores(dpool, vcenter_instance_name, hpool)
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 = name.to_s
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(_args = {})
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
- res = { :id => [], :name => selected[:simple_name] }
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 = selected[: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)
@@ -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.info
464
+ rc = pool.info_all
465
465
 
466
466
  return rc if OpenNebula.is_error?(rc)
467
467
 
@@ -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 |key, old_val, new_val|
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 applicance #{id}" if logger
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
@@ -77,5 +77,5 @@ require 'opennebula/flow'
77
77
  module OpenNebula
78
78
 
79
79
  # OpenNebula version
80
- VERSION = '6.2.0'
80
+ VERSION = '6.2.1'
81
81
  end
@@ -202,7 +202,7 @@ module VCenterDriver
202
202
  # index associated to his own resource opt
203
203
  #
204
204
  # Example:
205
- # {"vm-343" => {linked: '0', copy: '0'...}
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
- cluster_list[c['ID']] = c['NAME'] if c['ID'].to_i != 0
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
- << value << "\n"
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(cluster[:cluster_name])
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((cluster[:cluster_name]).to_s)
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#{cluster[:cluster_name]}\e[39m with"\
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
@@ -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 => Time.now.utc.strftime('%Y%m%d%M%S%L').to_i,
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 => Time.now.utc.strftime('%Y%m%d%M%S%L').to_i,
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
- .create_template_copy(
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 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
- create(working_template[:one]) do |one_object, id|
1897
- res[:id] << id
1978
+ unless copy
1979
+ create(working_template[:one]) do |one_object, id|
1980
+ res[:id] << id
1898
1981
 
1899
- type = { :object => 'template', :id => id }
1900
- error, template_disks, allocated_images =
1901
- template
1902
- .import_vcenter_disks(
1903
- vc_uuid,
1904
- dpool,
1905
- ipool,
1906
- type
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
- if allocated_images
1910
- # rollback stack
1911
- allocated_images.reverse.each do |i|
1912
- @rollback.unshift(Raction.new(i, :delete))
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
- end
1915
- raise error unless error.empty?
1998
+ raise error unless error.empty?
1916
1999
 
1917
- working_template[:one] << template_disks
2000
+ working_template[:one] << template_disks
1918
2001
 
1919
- if template_copy_ref
1920
- template_moref = template_copy_ref
1921
- else
1922
- template_moref = selected[:vcenter_ref]
1923
- end
2002
+ if template_copy_ref
2003
+ template_moref = template_copy_ref
2004
+ else
2005
+ template_moref = selected[:vcenter_ref]
2006
+ end
1924
2007
 
1925
- opts_nics = {
1926
- :vi_client => @vi_client,
1927
- :vc_uuid => vc_uuid,
1928
- :npool => npool,
1929
- :hpool => hpool,
1930
- :vcenter => vcenter,
1931
- :template_moref => template_moref,
1932
- :vm_object => nil
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
- error, template_nics, _ar_ids, allocated_nets =
1936
- template
1937
- .import_vcenter_nics(
1938
- opts_nics,
1939
- id,
1940
- dc
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
- if allocated_nets
1944
- # rollback stack
1945
- allocated_nets.reverse.each do |n|
1946
- @rollback.unshift(Raction.new(n, :delete))
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
- end
1949
- raise error unless error.empty?
2032
+ raise error unless error.empty?
1950
2033
 
1951
- working_template[:one] << template_nics
1952
- working_template[:one] << rp_opts(
1953
- opts[:type],
1954
- opts[:resourcepool]
1955
- )
2034
+ working_template[:one] << template_nics
2035
+ working_template[:one] << rp_opts(
2036
+ opts[:type],
2037
+ opts[:resourcepool]
2038
+ )
1956
2039
 
1957
- one_object.update(working_template[:one])
2040
+ one_object.update(working_template[:one])
2041
+ end
1958
2042
  end
1959
2043
 
1960
2044
  res
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opennebula
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.0
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: 2021-11-02 00:00:00.000000000 Z
11
+ date: 2022-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
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
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rbvmomi
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: xmlrpc
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: treetop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: ipaddress
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: parse-cron
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Libraries needed to talk to OpenNebula
@@ -114,34 +114,30 @@ executables: []
114
114
  extensions: []
115
115
  extra_rdoc_files: []
116
116
  files:
117
- - lib/opennebula.rb
118
- - lib/vcenter_driver.rb
117
+ - LICENSE
118
+ - NOTICE
119
+ - lib/ActionManager.rb
120
+ - lib/CommandManager.rb
121
+ - lib/DriverExecHelper.rb
122
+ - lib/OpenNebulaDriver.rb
123
+ - lib/VirtualMachineDriver.rb
124
+ - lib/cloud/CloudClient.rb
119
125
  - lib/datacenter.rb
120
126
  - lib/datastore.rb
127
+ - lib/distributed_firewall.rb
121
128
  - lib/file_helper.rb
122
129
  - lib/host.rb
123
- - lib/memoize.rb
124
- - lib/network.rb
125
- - lib/rest_client.rb
126
- - lib/vcenter_importer.rb
127
- - lib/vi_client.rb
128
- - lib/vi_helper.rb
129
- - lib/virtual_machine.rb
130
- - lib/vm_device.rb
131
- - lib/vm_disk.rb
132
- - lib/vm_nic.rb
133
- - lib/vm_helper.rb
134
- - lib/vm_monitor.rb
135
- - lib/vm_folder.rb
136
- - lib/vm_template.rb
137
- - lib/vmm_importer.rb
138
- - lib/nsx_driver.rb
139
- - lib/distributed_firewall.rb
140
130
  - lib/logical_port.rb
141
131
  - lib/logical_switch.rb
132
+ - lib/memoize.rb
133
+ - lib/models.rb
134
+ - lib/models/role.rb
135
+ - lib/models/service.rb
136
+ - lib/network.rb
142
137
  - lib/nsx_client.rb
143
138
  - lib/nsx_component.rb
144
139
  - lib/nsx_constants.rb
140
+ - lib/nsx_driver.rb
145
141
  - lib/nsx_error.rb
146
142
  - lib/nsx_rule.rb
147
143
  - lib/nsxt_client.rb
@@ -155,17 +151,7 @@ files:
155
151
  - lib/nsxv_rule.rb
156
152
  - lib/nsxv_tz.rb
157
153
  - lib/opaque_network.rb
158
- - lib/transport_zone.rb
159
- - lib/virtual_wire.rb
160
- - lib/VirtualMachineDriver.rb
161
- - lib/OpenNebulaDriver.rb
162
- - lib/CommandManager.rb
163
- - lib/ActionManager.rb
164
- - lib/DriverExecHelper.rb
165
- - lib/scripts_common.rb
166
- - lib/models.rb
167
- - lib/models/role.rb
168
- - lib/models/service.rb
154
+ - lib/opennebula.rb
169
155
  - lib/opennebula/acl.rb
170
156
  - lib/opennebula/acl_pool.rb
171
157
  - lib/opennebula/client.rb
@@ -179,6 +165,12 @@ files:
179
165
  - lib/opennebula/document_pool_json.rb
180
166
  - lib/opennebula/error.rb
181
167
  - lib/opennebula/flow.rb
168
+ - lib/opennebula/flow/grammar.rb
169
+ - lib/opennebula/flow/service_pool.rb
170
+ - lib/opennebula/flow/service_template.rb
171
+ - lib/opennebula/flow/service_template_ext.rb
172
+ - lib/opennebula/flow/service_template_pool.rb
173
+ - lib/opennebula/flow/validator.rb
182
174
  - lib/opennebula/group.rb
183
175
  - lib/opennebula/group_pool.rb
184
176
  - lib/opennebula/hook.rb
@@ -188,6 +180,8 @@ files:
188
180
  - lib/opennebula/host_pool.rb
189
181
  - lib/opennebula/image.rb
190
182
  - lib/opennebula/image_pool.rb
183
+ - lib/opennebula/ldap_auth.rb
184
+ - lib/opennebula/ldap_auth_spec.rb
191
185
  - lib/opennebula/lockable_ext.rb
192
186
  - lib/opennebula/marketplace.rb
193
187
  - lib/opennebula/marketplace_pool.rb
@@ -199,6 +193,9 @@ files:
199
193
  - lib/opennebula/pool_element.rb
200
194
  - lib/opennebula/security_group.rb
201
195
  - lib/opennebula/security_group_pool.rb
196
+ - lib/opennebula/server_cipher_auth.rb
197
+ - lib/opennebula/server_x509_auth.rb
198
+ - lib/opennebula/ssh_auth.rb
202
199
  - lib/opennebula/system.rb
203
200
  - lib/opennebula/template.rb
204
201
  - lib/opennebula/template_ext.rb
@@ -220,26 +217,29 @@ files:
220
217
  - lib/opennebula/vntemplate.rb
221
218
  - lib/opennebula/vntemplate_pool.rb
222
219
  - lib/opennebula/wait_ext.rb
220
+ - lib/opennebula/x509_auth.rb
223
221
  - lib/opennebula/xml_element.rb
224
222
  - lib/opennebula/xml_pool.rb
225
223
  - lib/opennebula/xml_utils.rb
226
224
  - lib/opennebula/zone.rb
227
225
  - lib/opennebula/zone_pool.rb
228
- - lib/opennebula/flow/grammar.rb
229
- - lib/opennebula/flow/service_pool.rb
230
- - lib/opennebula/flow/service_template.rb
231
- - lib/opennebula/flow/service_template_ext.rb
232
- - lib/opennebula/flow/service_template_pool.rb
233
- - lib/opennebula/flow/validator.rb
234
- - lib/opennebula/ldap_auth.rb
235
- - lib/opennebula/ldap_auth_spec.rb
236
- - lib/opennebula/server_cipher_auth.rb
237
- - lib/opennebula/server_x509_auth.rb
238
- - lib/opennebula/ssh_auth.rb
239
- - lib/opennebula/x509_auth.rb
240
- - lib/cloud/CloudClient.rb
241
- - NOTICE
242
- - LICENSE
226
+ - lib/rest_client.rb
227
+ - lib/scripts_common.rb
228
+ - lib/transport_zone.rb
229
+ - lib/vcenter_driver.rb
230
+ - lib/vcenter_importer.rb
231
+ - lib/vi_client.rb
232
+ - lib/vi_helper.rb
233
+ - lib/virtual_machine.rb
234
+ - lib/virtual_wire.rb
235
+ - lib/vm_device.rb
236
+ - lib/vm_disk.rb
237
+ - lib/vm_folder.rb
238
+ - lib/vm_helper.rb
239
+ - lib/vm_monitor.rb
240
+ - lib/vm_nic.rb
241
+ - lib/vm_template.rb
242
+ - lib/vmm_importer.rb
243
243
  homepage: http://opennebula.io
244
244
  licenses:
245
245
  - Apache-2.0
@@ -250,17 +250,16 @@ require_paths:
250
250
  - lib
251
251
  required_ruby_version: !ruby/object:Gem::Requirement
252
252
  requirements:
253
- - - '>='
253
+ - - ">="
254
254
  - !ruby/object:Gem::Version
255
255
  version: '0'
256
256
  required_rubygems_version: !ruby/object:Gem::Requirement
257
257
  requirements:
258
- - - '>='
258
+ - - ">="
259
259
  - !ruby/object:Gem::Version
260
260
  version: '0'
261
261
  requirements: []
262
- rubyforge_project:
263
- rubygems_version: 2.0.14.1
262
+ rubygems_version: 3.1.2
264
263
  signing_key:
265
264
  specification_version: 4
266
265
  summary: OpenNebula Client API