opennebula-cli 4.14.2 → 4.90.0.beta1

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/NOTICE +1 -1
  3. data/bin/oneacct +1 -1
  4. data/bin/oneacl +1 -1
  5. data/bin/onecluster +4 -1
  6. data/bin/onedatastore +4 -1
  7. data/bin/oneflow +26 -1
  8. data/bin/oneflow-template +57 -1
  9. data/bin/onegroup +4 -1
  10. data/bin/onehost +24 -15
  11. data/bin/oneimage +5 -3
  12. data/bin/onemarket +178 -0
  13. data/bin/onemarketapp +282 -0
  14. data/bin/onesecgroup +18 -1
  15. data/bin/oneshowback +1 -1
  16. data/bin/onetemplate +30 -21
  17. data/bin/oneuser +12 -6
  18. data/bin/oneuser.backup +522 -0
  19. data/bin/onevcenter +287 -1
  20. data/bin/onevdc +4 -1
  21. data/bin/onevm +78 -56
  22. data/bin/onevnet +10 -4
  23. data/bin/onevrouter +305 -0
  24. data/bin/onezone +4 -1
  25. data/lib/cli_helper.rb +1 -1
  26. data/lib/command_parser.rb +1 -1
  27. data/lib/one_helper/oneacct_helper.rb +1 -1
  28. data/lib/one_helper/oneacl_helper.rb +11 -5
  29. data/lib/one_helper/onecluster_helper.rb +1 -1
  30. data/lib/one_helper/onedatastore_helper.rb +17 -7
  31. data/lib/one_helper/onegroup_helper.rb +1 -1
  32. data/lib/one_helper/onehost_helper.rb +2 -5
  33. data/lib/one_helper/oneimage_helper.rb +1 -15
  34. data/lib/one_helper/onemarket_helper.rb +152 -0
  35. data/lib/one_helper/onemarketapp_helper.rb +223 -0
  36. data/lib/one_helper/onequota_helper.rb +1 -1
  37. data/lib/one_helper/onesecgroup_helper.rb +46 -3
  38. data/lib/one_helper/onetemplate_helper.rb +146 -11
  39. data/lib/one_helper/oneuser_helper.rb +1 -1
  40. data/lib/one_helper/onevdc_helper.rb +1 -1
  41. data/lib/one_helper/onevm_helper.rb +37 -53
  42. data/lib/one_helper/onevnet_helper.rb +23 -11
  43. data/lib/one_helper/onevrouter_helper.rb +221 -0
  44. data/lib/one_helper/onezone_helper.rb +1 -1
  45. data/lib/one_helper.rb +193 -25
  46. metadata +21 -10
data/bin/onevcenter CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  # -------------------------------------------------------------------------- #
4
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
4
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
5
5
  # #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
7
7
  # not use this file except in compliance with the License. You may obtain #
@@ -195,6 +195,148 @@ cmd=CommandParser::CmdParser.new(ARGV) do
195
195
 
196
196
  next if STDIN.gets.strip.downcase != 'y'
197
197
 
198
+ ds_input = ""
199
+ rp_input = ""
200
+
201
+ # Datastores
202
+
203
+ STDOUT.print "\n This template is currently set to be "\
204
+ "deployed in datastore #{t[:default_ds]}."\
205
+ "\n Press y to keep the default, n to select"\
206
+ " a new datastore or d to delegate the choice"\
207
+ " to the user [y/n/d]? "
208
+
209
+ answer = STDIN.gets.strip.downcase
210
+
211
+ case answer
212
+ when 'd'
213
+ ds_split = t[:ds].split("|")
214
+ list_of_ds = ds_split[-2]
215
+ default_ds = ds_split[-1]
216
+ ds_input = ds_split[0] + "|" + ds_split[1] + "|" +
217
+ ds_split[2] + "|"
218
+
219
+ # Available list of datastores
220
+
221
+ input_str = " The list of available datastores to be"\
222
+ " presented to the user are \"#{list_of_ds}\""
223
+ input_str+= "\n Press y to agree, or input a comma"\
224
+ " separated list of datastores to edit "\
225
+ "[y/comma separated list] "
226
+ STDOUT.print input_str
227
+
228
+ answer = STDIN.gets.strip
229
+
230
+ if answer.downcase == 'y'
231
+ ds_input += ds_split[3] + "|"
232
+ else
233
+ ds_input += answer + "|"
234
+ end
235
+
236
+ # Default
237
+ input_str = " The default datastore presented to "\
238
+ "the end user is set to \"#{default_ds}\"."
239
+ input_str+= "\n Press y to agree, or input a new "\
240
+ "datastore [y/datastore name] "
241
+ STDOUT.print input_str
242
+
243
+ answer = STDIN.gets.strip
244
+
245
+ if answer.downcase == 'y'
246
+ ds_input += ds_split[4]
247
+ else
248
+ ds_input += answer
249
+ end
250
+ when 'n'
251
+ ds_split = t[:ds].split("|")
252
+ list_of_ds = ds_split[-2]
253
+
254
+ input_str = " The list of available datastores is"\
255
+ " \"#{list_of_ds}\"."
256
+ input_str+= "\n Please input the new default datastore: "
257
+ STDOUT.print input_str
258
+
259
+ answer = STDIN.gets.strip
260
+
261
+ t[:one] += "VCENTER_DATASTORE=\"#{answer}\"\n"
262
+ end
263
+
264
+ # Resource Pools
265
+
266
+ rp_split = t[:rp].split("|")
267
+
268
+ if rp_split.size > 3
269
+ STDOUT.print "\n This template is currently set to "\
270
+ "launch VMs in the default resource pool."\
271
+ "\n Press y to keep this behaviour, n to select"\
272
+ " a new resource pool or d to delegate the choice"\
273
+ " to the user [y/n/d]? "
274
+
275
+ answer = STDIN.gets.strip.downcase
276
+
277
+ case answer
278
+ when 'd'
279
+ list_of_rp = rp_split[-2]
280
+ default_rp = rp_split[-1]
281
+ rp_input = rp_split[0] + "|" + rp_split[1] + "|" +
282
+ rp_split[2] + "|"
283
+
284
+ # Available list of resource pools
285
+
286
+ input_str = " The list of available resource pools "\
287
+ "to be presented to the user are "\
288
+ "\"#{list_of_rp}\""
289
+ input_str+= "\n Press y to agree, or input a comma"\
290
+ " separated list of resource pools to edit "\
291
+ "[y/comma separated list] "
292
+ STDOUT.print input_str
293
+
294
+ answer = STDIN.gets.strip
295
+
296
+ if answer.downcase == 'y'
297
+ rp_input += rp_split[3] + "|"
298
+ else
299
+ rp_input += answer + "|"
300
+ end
301
+
302
+ # Default
303
+ input_str = " The default resource pool presented "\
304
+ "to the end user is set to"\
305
+ " \"#{default_rp}\"."
306
+ input_str+= "\n Press y to agree, or input a new "\
307
+ "resource pool [y/resource pool name] "
308
+ STDOUT.print input_str
309
+
310
+ answer = STDIN.gets.strip
311
+
312
+ if answer.downcase == 'y'
313
+ rp_input += rp_split[4]
314
+ else
315
+ rp_input += answer
316
+ end
317
+ when 'n'
318
+ list_of_rp = rp_split[-2]
319
+
320
+ input_str = " The list of available resource pools is"\
321
+ " \"#{list_of_rp}\"."
322
+ input_str+= "\n Please input the new default resource pool: "
323
+ STDOUT.print input_str
324
+
325
+ answer = STDIN.gets.strip
326
+
327
+ t[:one] += "RESOURCE_POOL=\"#{answer}\"\n"
328
+ end
329
+ end
330
+
331
+ if ds_input != "" ||
332
+ rp_input != ""
333
+ t[:one] += "USER_INPUTS=["
334
+ t[:one] += "VCENTER_DATASTORE=\"#{ds_input}\"," if ds_input != ""
335
+ t[:one] += "RESOURCE_POOL=\"#{rp_input}\"," if rp_input != ""
336
+ t[:one] = t[:one][0..-2]
337
+ t[:one] += "]"
338
+ end
339
+
198
340
  one_t = ::OpenNebula::Template.new(
199
341
  ::OpenNebula::Template.build_xml, vc.one)
200
342
 
@@ -368,4 +510,148 @@ cmd=CommandParser::CmdParser.new(ARGV) do
368
510
 
369
511
  exit 0
370
512
  end
513
+
514
+ datastores_desc = <<-EOT.unindent
515
+ Import vCenter Datastores into OpenNebula
516
+ EOT
517
+
518
+ command :datastores, datastores_desc, :options=>[ VCENTER, USER, PASS ] do
519
+ if options[:vuser].nil? ||
520
+ options[:vpass].nil? ||
521
+ options[:vcenter].nil?
522
+ STDERR.puts "vCenter connection parameters are mandatory to import"\
523
+ " Datastores:\n"\
524
+ "\t --vcenter vCenter hostname\n"\
525
+ "\t --vuser username to login in vcenter\n"\
526
+ "\t --vpass password for the user"
527
+ exit -1
528
+ end
529
+
530
+ begin
531
+ STDOUT.print "\nConnecting to vCenter: #{options[:vcenter]}..."
532
+
533
+ vc = VCenterDriver::VIClient.new_connection(
534
+ :user => options[:vuser],
535
+ :password => options[:vpass],
536
+ :host => options[:vcenter])
537
+
538
+ STDOUT.print "done!\n\n"
539
+
540
+ STDOUT.print "Looking for Datastores..."
541
+
542
+ rs = vc.vcenter_datastores
543
+
544
+ STDOUT.print "done!\n"
545
+
546
+ rs.each {|dc, tmps|
547
+ STDOUT.print "\nDo you want to process datacenter #{dc} [y/n]? "
548
+
549
+ next if STDIN.gets.strip.downcase != 'y'
550
+
551
+ if tmps.empty?
552
+ STDOUT.print " No new Datastores found in #{dc}...\n\n"
553
+ next
554
+ end
555
+
556
+ tmps.each{ |d|
557
+ STDOUT.print "\n * Datastore found:\n"\
558
+ " - Name : #{d[:name]}\n"\
559
+ " - Total MB : #{d[:total_mb]}\n"\
560
+ " - Free MB : #{d[:free_mb]}\n"\
561
+ " - Cluster : #{d[:cluster]}\n"\
562
+ " Import this Datastore [y/n]? "
563
+
564
+ next if STDIN.gets.strip.downcase != 'y'
565
+
566
+ one_d = ::OpenNebula::Datastore.new(
567
+ ::OpenNebula::Datastore.build_xml, vc.one)
568
+
569
+ rc = one_d.allocate(d[:one])
570
+
571
+ if ::OpenNebula.is_error?(rc)
572
+ STDOUT.puts " Error creating datastore: #{rc.message}\n"\
573
+ " One datastore can exist only once, and "\
574
+ "can be used in any vCenter Cluster that "\
575
+ "has access to it. Also, no spaces allowed "\
576
+ "in datastore name (rename it in vCenter "\
577
+ "and try again)"
578
+ else
579
+ STDOUT.puts " OpenNebula datastore #{one_d.id} created!\n"
580
+ end
581
+ }
582
+ }
583
+ rescue Exception => e
584
+ STDOUT.puts "error: #{e.message}"
585
+ exit -1
586
+ end
587
+
588
+ exit 0
589
+ end
590
+
591
+ images_desc = <<-EOT.unindent
592
+ Import vCenter Images into OpenNebula
593
+ EOT
594
+
595
+ command :images, images_desc, :ds_name, :options=>[ VCENTER, USER, PASS ] do
596
+ ds_name = args[0]
597
+
598
+ if !ds_name
599
+ STDERR.puts "Datastore name needed to import images from"
600
+ exit -1
601
+ end
602
+
603
+ if options[:vuser].nil? ||
604
+ options[:vpass].nil? ||
605
+ options[:vcenter].nil?
606
+ STDERR.puts "vCenter connection parameters are mandatory to import"\
607
+ " Datastores:\n"\
608
+ "\t --vcenter vCenter hostname\n"\
609
+ "\t --vuser username to login in vcenter\n"\
610
+ "\t --vpass password for the user"
611
+ exit -1
612
+ end
613
+
614
+ begin
615
+ STDOUT.print "\nConnecting to vCenter: #{options[:vcenter]}..."
616
+
617
+ vc = VCenterDriver::VIClient.new_connection(
618
+ :user => options[:vuser],
619
+ :password => options[:vpass],
620
+ :host => options[:vcenter])
621
+
622
+ STDOUT.print "done!\n\n"
623
+
624
+ STDOUT.print "Looking for Images..."
625
+
626
+ images = vc.vcenter_images(ds_name)
627
+
628
+ STDOUT.print "done!\n"
629
+
630
+ images.each{ |i|
631
+ STDOUT.print "\n * Image found:\n"\
632
+ " - Name : #{i[:name]}\n"\
633
+ " - Path : #{i[:path]}\n"\
634
+ " - Type : #{i[:type]}\n"\
635
+ " Import this Image [y/n]? "
636
+
637
+ next if STDIN.gets.strip.downcase != 'y'
638
+
639
+ one_i = ::OpenNebula::Image.new(
640
+ ::OpenNebula::Image.build_xml, vc.one)
641
+
642
+ rc = one_i.allocate(i[:one], i[:dsid].to_i)
643
+
644
+ if ::OpenNebula.is_error?(rc)
645
+ STDOUT.puts " Error creating image: #{rc.message}\n"
646
+ else
647
+ STDOUT.puts " OpenNebula image #{one_i.id} created!\n"
648
+ end
649
+ }
650
+ rescue Exception => e
651
+ STDOUT.puts "error: #{e.message}"
652
+ exit -1
653
+ end
654
+
655
+ exit 0
656
+ end
371
657
  end
data/bin/onevdc CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  # -------------------------------------------------------------------------- #
4
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
4
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
5
5
  # #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
7
7
  # not use this file except in compliance with the License. You may obtain #
@@ -148,6 +148,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
148
148
  str = OpenNebulaHelper.update_template(args[0], obj, args[1])
149
149
  end
150
150
 
151
+ helper.set_client(options)
152
+ obj = helper.retrieve_resource(obj.id)
153
+
151
154
  obj.update(str, options[:append])
152
155
  end
153
156
  end
data/bin/onevm CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  # -------------------------------------------------------------------------- #
4
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
4
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
5
5
  # #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
7
7
  # not use this file except in compliance with the License. You may obtain #
@@ -63,14 +63,6 @@ cmd=CommandParser::CmdParser.new(ARGV) do
63
63
  :description => "Overrides the DEV_PREFIX of the image"
64
64
  }
65
65
 
66
- IP={
67
- :name => "ip",
68
- :short => "-i ip",
69
- :large => "--ip ip",
70
- :format => String,
71
- :description => "IP address for the new NIC"
72
- }
73
-
74
66
  CACHE={
75
67
  :name => "cache",
76
68
  :large => "--cache cache_mode",
@@ -112,6 +104,18 @@ cmd=CommandParser::CmdParser.new(ARGV) do
112
104
  :description => "Recover a VM by retrying the last failed action"
113
105
  }
114
106
 
107
+ DELETE={
108
+ :name => "delete",
109
+ :large => "--delete",
110
+ :description => "No recover action possible, delete the VM"
111
+ }
112
+
113
+ RECREATE={
114
+ :name => "recreate",
115
+ :large => "--recreate",
116
+ :description => "No recover action possible, delete and recreate the VM"
117
+ }
118
+
115
119
  INTERACTIVE={
116
120
  :name => "interactive",
117
121
  :large => "--interactive",
@@ -263,32 +267,10 @@ cmd=CommandParser::CmdParser.new(ARGV) do
263
267
  str = OpenNebulaHelper.update_template(args[0], obj, args[1], 'USER_TEMPLATE')
264
268
  end
265
269
 
266
- obj.update(str, options[:append])
267
- end
268
- end
269
-
270
- delete_desc = <<-EOT.unindent
271
- Deletes the given VM. Using --recreate resubmits the VM.
270
+ helper.set_client(options)
271
+ obj = helper.retrieve_resource(obj.id)
272
272
 
273
- Resubmits the VM to PENDING state. This is intended for VMs stuck in a
274
- transient state. To re-deploy a fresh copy of the same VM, create a
275
- Template and instantiate it, see 'onetemplate instantiate'
276
-
277
- States: ANY
278
- EOT
279
-
280
- command :delete, delete_desc, [:range, :vmid_list],
281
- :options => [OneVMHelper::SCHEDULE, OneVMHelper::RECREATE] do
282
-
283
- command_name="delete"
284
- command_name<<"-recreate" if options[:recreate]
285
-
286
- if (!options[:schedule].nil?)
287
- helper.schedule_actions(args[0], options, command_name)
288
- else
289
- helper.perform_actions(args[0],options,"deleted") do |vm|
290
- vm.delete(options[:recreate]==true)
291
- end
273
+ obj.update(str, options[:append])
292
274
  end
293
275
  end
294
276
 
@@ -366,25 +348,25 @@ cmd=CommandParser::CmdParser.new(ARGV) do
366
348
  end
367
349
  end
368
350
 
369
- shutdown_desc = <<-EOT.unindent
370
- Shuts down the given VM. The VM life cycle will end.
351
+ terminate_desc = <<-EOT.unindent
352
+ Terminates the given VM. The VM life cycle will end.
371
353
 
372
354
  With --hard it unplugs the VM.
373
355
 
374
- States: RUNNING, UNKNOWN (with --hard)
356
+ States: valid if no operation is being performed on the VM
375
357
  EOT
376
358
 
377
- command :shutdown, shutdown_desc, [:range,:vmid_list],
359
+ command :terminate, terminate_desc, [:range,:vmid_list],
378
360
  :options => [OneVMHelper::SCHEDULE, OneVMHelper::HARD] do
379
361
 
380
- command_name='shutdown'
362
+ command_name='terminate'
381
363
  command_name<<'-hard' if options[:hard]
382
364
 
383
365
  if (!options[:schedule].nil?)
384
366
  helper.schedule_actions(args[0], options, command_name)
385
367
  else
386
- helper.perform_actions(args[0],options,"shutting down") do |vm|
387
- vm.shutdown(options[:hard]==true)
368
+ helper.perform_actions(args[0],options,"terminated") do |vm|
369
+ vm.terminate(options[:hard]==true)
388
370
  end
389
371
  end
390
372
  end
@@ -558,9 +540,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
558
540
 
559
541
  recover_desc = <<-EOT.unindent
560
542
  Recovers a stuck VM that is waiting for a driver operation. The recovery
561
- may be done by failing, succeeding or retrying the current operation. YOU NEED
562
- TO MANUALLY CHECK THE VM STATUS ON THE HOST, to decide if the operation
563
- was successful or not, or if it can be retried.
543
+ may be done by failing, succeeding or retrying the current operation.
544
+ YOU NEED TO MANUALLY CHECK THE VM STATUS ON THE HOST, to decide if the
545
+ operation was successful or not, or if it can be retried.
564
546
 
565
547
  Example: A VM is stuck in "migrate" because of a hardware failure. You
566
548
  need to check if the VM is running in the new host or not to recover
@@ -568,21 +550,29 @@ cmd=CommandParser::CmdParser.new(ARGV) do
568
550
 
569
551
  States for success/failure recovers: Any ACTIVE state.
570
552
  States for a retry recover: Any *FAILURE state
553
+ States for delete: Any
554
+ States for delete-recreate: Any but STOP/UNDEPLOYED
571
555
  EOT
572
556
 
573
557
  command :recover, recover_desc, [:range,:vmid_list],
574
- :options => [SUCCESS, FAILURE, RETRY, INTERACTIVE] do
558
+ :options => [SUCCESS, FAILURE, RETRY, INTERACTIVE, DELETE, RECREATE] do
575
559
  if !options[:success].nil?
576
560
  result = 1
577
561
  elsif !options[:failure].nil?
578
562
  result = 0
579
563
  elsif !options[:retry].nil?
580
564
  result = 2
565
+ elsif !options[:delete].nil?
566
+ result = 3
567
+ elsif !options[:recreate].nil?
568
+ result = 4
581
569
  else
582
570
  STDERR.puts "Need to specify the result of the pending action."
583
571
  STDERR.puts "\t--success recover the VM by succeeding the missing action."
584
572
  STDERR.puts "\t--failure recover the VM by failing the missing action."
585
573
  STDERR.puts "\t--retry recover the VM by retrying the last failed action."
574
+ STDERR.puts "\t--delete no recover possible, delete the VM."
575
+ STDERR.puts "\t--recreate no recover possible, delete and recreate the VM."
586
576
  exit -1
587
577
  end
588
578
 
@@ -666,7 +656,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
666
656
  EOT
667
657
 
668
658
  command :"nic-attach", nic_attach_desc, :vmid,
669
- :options => [OneVMHelper::FILE, OneVMHelper::NETWORK, IP] do
659
+ :options => [OneVMHelper::FILE, OneVMHelper::NETWORK, OneVMHelper::IP] do
670
660
 
671
661
  if options[:file].nil? and options[:network].nil?
672
662
  STDERR.puts "Provide a template file or a network:"
@@ -831,7 +821,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
831
821
  disk_snapshot_revert_desc = <<-EOT.unindent
832
822
  Reverts disk state to a previously taken snapshot.
833
823
 
834
- States: RUNNING, POWEROFF, SUSPENDED
824
+ States: POWEROFF, SUSPENDED
835
825
  EOT
836
826
 
837
827
  command :"disk-snapshot-revert", disk_snapshot_revert_desc,
@@ -934,15 +924,47 @@ cmd=CommandParser::CmdParser.new(ARGV) do
934
924
  end
935
925
  end
936
926
 
927
+ updateconf_desc = <<-EOT.unindent
928
+ Updates the configuration of a VM. The VM cannot be in a active (running)
929
+ state, valid states are: pending, failure, poweroff, undeploy, hold or
930
+ clonning.
931
+
932
+ This command accepts a template file or opens an editor, the full list of
933
+ configuration attributes are:
934
+
935
+ OS = ["ARCH", "MACHINE", "KERNEL", "INITRD", "BOOTLOADER", "BOOT"]
936
+ FEATURES = ["ACPI", "PAE", "APIC", "LOCALTIME", "HYPERV", "GUEST_AGENT"]
937
+ INPUT = ["TYPE", "BUS"]
938
+ GRAPHICS = ["TYPE", "LISTEN", "PASSWD", "KEYMAP" ]
939
+ RAW = ["DATA", "DATA_VMX", "TYPE"]
940
+ CONTEXT (any value, **variable substitution will be made**)
941
+ EOT
942
+
943
+ command :updateconf, updateconf_desc, :vmid, [:file, nil] do
944
+ template = ""
945
+
946
+ begin
947
+ template=File.read(args[1]) if args[1]
948
+ rescue Exception => e
949
+ STDERR.puts "Error reading template."
950
+ exit -1
951
+ end
952
+
953
+ helper.perform_action(args[0], options, "Updating VM configuration") do |vm|
954
+ if template.empty?
955
+ vm.info
956
+
957
+ template = vm.template_like_str('TEMPLATE', true,
958
+ 'OS | FEATURES | INPUT | GRAPHICS | RAW | CONTEXT')
959
+ template = OpenNebulaHelper::editor_input(template)
960
+ end
961
+
962
+ vm.updateconf(template)
963
+ end
964
+ end
965
+
937
966
  # Deprecated commands
938
967
 
939
- deprecated_command(:attachdisk, 'disk-attach')
940
- deprecated_command(:detachdisk, 'disk-detach')
941
- deprecated_command(:'disk-snapshot', 'disk-saveas')
942
- deprecated_command(:livemigrate, 'migrate --live')
943
- deprecated_command(:cancel, 'shutdown --hard')
944
- deprecated_command(:reset, 'reboot --hard')
945
- deprecated_command(:restart, 'recover --retry')
946
- deprecated_command(:boot, 'recover --retry')
947
- deprecated_command(:resubmit, 'delete --recreate')
968
+ deprecated_command(:shutdown, 'terminate')
969
+ deprecated_command(:delete, 'recover')
948
970
  end
data/bin/onevnet CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  # -------------------------------------------------------------------------- #
4
- # Copyright 2002-2015, OpenNebula Project, OpenNebula Systems #
4
+ # Copyright 2002-2016, OpenNebula Project, OpenNebula Systems #
5
5
  # #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License"); you may #
7
7
  # not use this file except in compliance with the License. You may obtain #
@@ -148,9 +148,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
148
148
  ar << ", ULA_PREFIX = " <<
149
149
  options[:ip6_ula] if options[:ip6_ula]
150
150
  ar << ", GATEWAY = " << options[:gateway] if options[:gateway]
151
- ar << ", MASK = " << options[:netmask] if options[:netmask]
152
- ar << ", VLAN = YES" if options[:vlan]
153
- ar << ", VLAN_ID = " << options[:vlanid] if options[:vlanid]
151
+ ar << ", MASK = " << options[:netmask] if options[:netmask]
152
+ ar << ", VN_MAD = " << options[:vn_mad] if options[:vn_mad]
153
+ ar << ", VLAN_ID = " << options[:vlanid] if options[:vlanid]
154
154
 
155
155
  ar << "]"
156
156
  end
@@ -329,6 +329,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
329
329
  str = OpenNebulaHelper.update_template(args[0], obj, args[1])
330
330
  end
331
331
 
332
+ helper.set_client(options)
333
+ obj = helper.retrieve_resource(obj.id)
334
+
332
335
  obj.update(str, options[:append])
333
336
  end
334
337
  end
@@ -365,6 +368,9 @@ cmd=CommandParser::CmdParser.new(ARGV) do
365
368
  str = OpenNebulaHelper.update_template_helper(false, args[0], obj,
366
369
  args[2], "AR_POOL", false)
367
370
 
371
+ helper.set_client(options)
372
+ obj = helper.retrieve_resource(obj.id)
373
+
368
374
  obj.update_ar(str)
369
375
  end
370
376
  end