opennebula-cli 4.12.1 → 4.13.80.beta1

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
2
  SHA1:
3
- metadata.gz: 85791ed3b8e69832d513f7f06e54be33c92f8c4e
4
- data.tar.gz: e8eec994719e9fc7d757a716e90dc907c1bd930a
3
+ metadata.gz: d11d3a159c5097cd0867e860e3830a6caf5847b9
4
+ data.tar.gz: 096c01365fc81804718fe90037c31d4fdbbe76cb
5
5
  SHA512:
6
- metadata.gz: 94de716f262f4290a33b0629d8fb700471cc424fc941d5b02cbf73a37a63ce95789fc58b284580f77d801e8c2a64bb1349391788652c1581a15c5edbc6b57133
7
- data.tar.gz: 907315b3d285a1ecb3630fb1635e76a745a1f52d0b750670c246cf6364ed370cd1f18a9d1b84236582c27c64996bcaaf6628e6bbbf7e207046ab1e8d8d09fdc1
6
+ metadata.gz: 93738a9b287d2bf42334703b3de47516b2c9f2dcc77212bd98548f08e624bd125a7f399c314f9d68ed01cce0e29ccf96d47ecffc7eef0b698e0a2d2f670662d0
7
+ data.tar.gz: e15e685a4061d48d2e81b1baa99edd11ee22665dc49f3f0db42283d229a73d05e18595a21bc047bf153c9d6916231581cc75310aaaff76a98ce9e1b3c88daf9c
data/NOTICE CHANGED
@@ -1,6 +1,6 @@
1
1
  OpenNebula Open Source Project
2
2
  --------------------------------------------------------------------------------
3
- Copyright 2002-2014, OpenNebula Project, OpenNebula Systems (formerly C12G Labs)
3
+ Copyright 2002-2015, OpenNebula Project, OpenNebula Systems (formerly C12G Labs)
4
4
  --------------------------------------------------------------------------------
5
5
 
6
6
  You can find more information about the project, release notes and
@@ -21,11 +21,6 @@ The following people have contributed to the development of the technology
21
21
  - Daniel Molina Aranda (dmolina@opennebula.org)
22
22
  - Hector Sanjuan Redondo (hsanjuan@opennebula.org)
23
23
 
24
- The new features for service elasticity (oneFlow) introduced in OpenNebula 4.2
25
- were funded by BlackBerry in the context of the Fund a Feature Program.
26
-
27
- OpenNebula Project also acknowledges the contributions of C12G Labs developers.
28
-
29
24
  LICENSE
30
25
 
31
26
  OpenNebula is licensed under the Apache License, Version 2.0 (the
data/bin/oneacl CHANGED
@@ -33,7 +33,7 @@ require 'one_helper/oneacl_helper'
33
33
  cmd = CommandParser::CmdParser.new(ARGV) do
34
34
  usage "`oneacl` <command> [<args>] [<options>]"
35
35
  version OpenNebulaHelper::ONE_VERSION
36
-
36
+
37
37
  helper = OneAclHelper.new
38
38
 
39
39
  before_proc do
data/bin/oneflow CHANGED
@@ -282,7 +282,7 @@ def show_service(client, args, options)
282
282
 
283
283
  column :'EVALS', "", :right, :size=>5 do |d|
284
284
  if d['period_number']
285
- "#{d['true_evals'].to_i} / #{d['period_number']}"
285
+ "#{d['true_evals'].to_i}/#{d['period_number']}"
286
286
  else
287
287
  "-"
288
288
  end
data/bin/onehost CHANGED
@@ -239,4 +239,17 @@ cmd=CommandParser::CmdParser.new(ARGV) do
239
239
  o.rename(args[1])
240
240
  end
241
241
  end
242
+
243
+ importvm_desc = <<-EOT.unindent
244
+ Import VM to OpenNebula
245
+ EOT
246
+
247
+ command :importvm, importvm_desc, :hostid, :name do
248
+ helper.perform_action(args[0], options, "imported") do |o|
249
+ rc = o.info
250
+ next rc if OpenNebula.is_error?(rc)
251
+
252
+ o.import_wild(args[1])
253
+ end
254
+ end
242
255
  end
data/bin/oneimage CHANGED
@@ -97,7 +97,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
97
97
 
98
98
  oneimage create -d default centOS.tmpl
99
99
 
100
- - new image "arch" using a path of type centOS:
100
+ - new image "arch" using a path:
101
101
 
102
102
  oneimage create -d default --name arch --path /tmp/arch.img
103
103
 
@@ -301,6 +301,36 @@ cmd=CommandParser::CmdParser.new(ARGV) do
301
301
  end
302
302
  end
303
303
 
304
+ snapshot_delete_desc = <<-EOT.unindent
305
+ Deletes a snapshot from the image
306
+ EOT
307
+
308
+ command :"snapshot-delete", snapshot_delete_desc, :imageid, :snapshot_id do
309
+ helper.perform_action(args[0], options, "snapshot deleted") do |o|
310
+ o.snapshot_delete(args[1].to_i)
311
+ end
312
+ end
313
+
314
+ snapshot_revert_desc = <<-EOT.unindent
315
+ Reverts image state to a snapshot
316
+ EOT
317
+
318
+ command :"snapshot-revert", snapshot_revert_desc, :imageid, :snapshot_id do
319
+ helper.perform_action(args[0], options, "image state reverted") do |o|
320
+ o.snapshot_revert(args[1].to_i)
321
+ end
322
+ end
323
+
324
+ snapshot_flatten_desc = <<-EOT.unindent
325
+ Flattens the snapshot and removes all other snapshots in the image
326
+ EOT
327
+
328
+ command :"snapshot-flatten", snapshot_flatten_desc, :imageid, :snapshot_id do
329
+ helper.perform_action(args[0], options, "snapshot flattened") do |o|
330
+ o.snapshot_flatten(args[1].to_i)
331
+ end
332
+ end
333
+
304
334
  list_desc = <<-EOT.unindent
305
335
  Lists Images in the pool
306
336
  EOT
data/bin/onevcenter CHANGED
@@ -216,84 +216,14 @@ cmd=CommandParser::CmdParser.new(ARGV) do
216
216
  end
217
217
 
218
218
  vms_desc = <<-EOT.unindent
219
- Import vCenter running Virtual Machines into OpenNebula
219
+ Deprecated action in onevcenter, please use onehost importvm instead
220
220
  EOT
221
221
 
222
222
  command :vms, vms_desc, :options=>[ VCENTER, USER, PASS ] do
223
- if options[:vuser].nil? ||
224
- options[:vpass].nil? ||
225
- options[:vcenter].nil?
226
- STDERR.puts "vCenter connection parameters are mandatory to import"\
227
- " VM templates:\n"\
228
- "\t --vcenter vCenter hostname\n"\
229
- "\t --vuser username to login in vcenter\n"\
230
- "\t --vpass password for the user"
231
- exit -1
232
- end
233
-
234
- begin
235
- STDOUT.print "\nConnecting to vCenter: #{options[:vcenter]}..."
236
-
237
- vc = VCenterDriver::VIClient.new_connection(
238
- :user => options[:vuser],
239
- :password => options[:vpass],
240
- :host => options[:vcenter])
241
-
242
- STDOUT.print "done!\n\n"
243
-
244
- STDOUT.print "Looking for running Virtual Machines..."
245
-
246
- rs = vc.running_vms
247
-
248
- STDOUT.print "done!\n"
249
-
250
- rs.each {|dc, tmps|
251
- STDOUT.print "\nDo you want to process datacenter #{dc} [y/n]? "
223
+ STDERR.puts "Deprecated action in onevcenter, please use onehost "\
224
+ "importvm instead"
252
225
 
253
- next if STDIN.gets.strip.downcase != 'y'
254
-
255
- if tmps.empty?
256
- STDOUT.print " No new running Virtual Machines found in"\
257
- " #{dc}...\n\n"
258
- next
259
- end
260
-
261
- tmps.each{ |v|
262
- STDOUT.print "\n * Running Virtual Machine found:\n"\
263
- " - Name : #{v[:name]}\n"\
264
- " - UUID : #{v[:uuid]}\n"\
265
- " - Cluster: #{v[:host]}\n"\
266
- " Import this Virtual Machine [y/n]? "
267
-
268
- next if STDIN.gets.strip.downcase != 'y'
269
-
270
- one_v = ::OpenNebula::VirtualMachine.new(
271
- ::OpenNebula::VirtualMachine.build_xml, vc.one)
272
-
273
- rc = one_v.allocate(v[:one])
274
-
275
- if ::OpenNebula.is_error?(rc)
276
- STDOUT.puts " Error creating Virtual Machine: "\
277
- "#{rc.message}\n"
278
- end
279
-
280
- rc = one_v.deploy v[:host_id]
281
-
282
- if ::OpenNebula.is_error?(rc)
283
- STDOUT.puts " Error creating Virtual Machine: "\
284
- "#{rc.message}\n"
285
- else
286
- STDOUT.puts " OpenNebula VM #{one_v.id} "\
287
- "created!\n"
288
- end
289
- }
290
- }
291
- rescue Exception => e
292
- STDOUT.puts "error: #{e.message}"
293
- exit -1
294
- end
295
-
296
- exit 0
226
+ exit -1
297
227
  end
298
228
 
299
229
  network_desc = <<-EOT.unindent
@@ -418,14 +348,14 @@ cmd=CommandParser::CmdParser.new(ARGV) do
418
348
  ::OpenNebula::Template.build_xml, vc.one)
419
349
 
420
350
  vnet_template = n[:one] + ar_str
421
-
351
+
422
352
  rc = one_vn.allocate(vnet_template)
423
353
 
424
354
  if ::OpenNebula.is_error?(rc)
425
355
  STDOUT.puts " Error creating virtual network: " +
426
356
  " #{rc.message}\n"
427
357
  else
428
- STDOUT.puts " OpenNebula virtual network " +
358
+ STDOUT.puts " OpenNebula virtual network " +
429
359
  "#{one_vn.id} created with size #{size}!\n"
430
360
  end
431
361
  }
data/bin/onevm CHANGED
@@ -56,6 +56,13 @@ cmd=CommandParser::CmdParser.new(ARGV) do
56
56
  :description => "Device where the image will be attached"
57
57
  }
58
58
 
59
+ PREFIX={
60
+ :name => "prefix",
61
+ :large => "--prefix prefix",
62
+ :format => String,
63
+ :description => "Overrides the DEV_PREFIX of the image"
64
+ }
65
+
59
66
  IP={
60
67
  :name => "ip",
61
68
  :short => "-i ip",
@@ -72,6 +79,14 @@ cmd=CommandParser::CmdParser.new(ARGV) do
72
79
  " writeback, directsync or unsafe. (Only KVM driver)"
73
80
  }
74
81
 
82
+ DISCARD={
83
+ :name => "discard",
84
+ :large => "--discard discard_mode",
85
+ :format => String,
86
+ :description => "Hypervisor discard mode: ignore or unmap."<<
87
+ " (Only KVM driver)"
88
+ }
89
+
75
90
  ENFORCE={
76
91
  :name => "enforce",
77
92
  :short => "-e",
@@ -91,11 +106,25 @@ cmd=CommandParser::CmdParser.new(ARGV) do
91
106
  :description => "Recover a VM by failing the pending action"
92
107
  }
93
108
 
94
- CLONETEMPLATE={
95
- :name => "clonetemplate",
96
- :short => "-c",
97
- :large => "--clonetemplate",
98
- :description => "Clone original VM Template and replace disk with saved one"
109
+ RETRY={
110
+ :name => "retry",
111
+ :large => "--retry",
112
+ :description => "Recover a VM by retrying the last failed action"
113
+ }
114
+
115
+ INTERACTIVE={
116
+ :name => "interactive",
117
+ :large => "--interactive",
118
+ :description => "Enables interactive recovery. Only works alongside "<<
119
+ " the --retry option."
120
+ }
121
+
122
+ SNAP={
123
+ :name => "snapshot",
124
+ :short => "-s snapshot",
125
+ :large => "--snapshot snapshot",
126
+ :format => String,
127
+ :description => "ID of the Snapshot to save."
99
128
  }
100
129
 
101
130
  ########################################################################
@@ -292,29 +321,36 @@ cmd=CommandParser::CmdParser.new(ARGV) do
292
321
  end
293
322
  end
294
323
 
295
- disk_snapshot_desc = <<-EOT.unindent
296
- Sets the specified VM disk to be saved in a new Image. The Image is
297
- created immediately, but the contents are saved only if the VM is
298
- shut down gracefully (i.e., using 'onevm shutdown' and not
299
- 'onevm delete')
300
-
301
- If '--live' is specified, the Image will be saved immediately.
324
+ disk_saveas_desc = <<-EOT.unindent
325
+ Saves the specified VM disk as a new Image. The Image is
326
+ created immediately, and the contents of the VM disk will be saved to
327
+ it.
302
328
 
303
329
  States: ANY
304
330
  EOT
305
331
 
306
- command :"disk-snapshot", disk_snapshot_desc, :vmid, :diskid, :img_name,
307
- :options=>[TYPE, OneVMHelper::LIVE, CLONETEMPLATE] do
308
- disk_id = args[1].to_i
309
- image_name = args[2]
310
- image_type = options[:type] || ""
332
+ command :"disk-saveas", disk_saveas_desc, :vmid, :diskid, :img_name,
333
+ :options=>[TYPE, SNAP] do
311
334
 
312
- verbose = "disk #{disk_id} prepared to be saved in " <<
313
- "the image #{image_name}"
335
+ disk_id = args[1].to_i
336
+ image_name = args[2]
337
+ image_type = options[:type] || ""
338
+ snapshot_id = options[:snapshot]
339
+
340
+ if snapshot_id.nil? || snapshot_id.empty?
341
+ snapshot_id = -1
342
+
343
+ verbose = "disk #{disk_id} prepared to be saved in " <<
344
+ "the image #{image_name}"
345
+ else
346
+ snapshot_id = snapshot_id.to_i
347
+
348
+ verbose = "disk #{disk_id} snapshot #{snapshot_id} prepared to " <<
349
+ "be saved in the image #{image_name}"
350
+ end
314
351
 
315
352
  helper.perform_action(args[0],options,verbose) do |vm|
316
- res = vm.disk_snapshot(disk_id, image_name, image_type,
317
- options[:live]==true, options[:clonetemplate]==true)
353
+ res = vm.disk_saveas(disk_id, image_name, image_type, snapshot_id)
318
354
 
319
355
  if !OpenNebula.is_error?(res)
320
356
  puts "Image ID: #{res}"
@@ -421,7 +457,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
421
457
  deployment, in a standard installation the Scheduler is in charge
422
458
  of this decision
423
459
 
424
- States: PENDING
460
+ States: PENDING, HOLD, STOPPED, UNDEPLOYED
425
461
  EOT
426
462
 
427
463
  command :deploy, deploy_desc, [:range,:vmid_list], :hostid, [:datastoreid,nil],
@@ -444,32 +480,18 @@ cmd=CommandParser::CmdParser.new(ARGV) do
444
480
  States: RUNNING
445
481
  EOT
446
482
 
447
- command :migrate, migrate_desc, [:range,:vmid_list], :hostid,
483
+ command :migrate, migrate_desc, [:range,:vmid_list], :hostid, [:datastoreid,nil],
448
484
  :options=>[ENFORCE, OneVMHelper::LIVE] do
449
485
  host_id = args[1]
450
486
  verbose = "migrating to #{host_id}"
451
487
 
488
+ ds_id = args[2].nil? ? -1 : args[2]
489
+
452
490
  helper.perform_actions(args[0],options,verbose) do |vm|
453
491
  vm.migrate( host_id,
454
492
  options[:live]==true,
455
- options[:enforce]==true)
456
- end
457
- end
458
-
459
- boot_desc = <<-EOT.unindent
460
- Boots the given VM.
461
-
462
- States: UNKNOWN, BOOT
463
- EOT
464
-
465
- command :boot, boot_desc, [:range,:vmid_list],
466
- :options => [OneVMHelper::SCHEDULE] do
467
- if (!options[:schedule].nil?)
468
- helper.schedule_actions(args[0], options, @comm_name)
469
- else
470
- helper.perform_actions(args[0],options,"booting") do |vm|
471
- vm.boot
472
- end
493
+ options[:enforce]==true,
494
+ ds_id)
473
495
  end
474
496
  end
475
497
 
@@ -514,7 +536,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
514
536
  resume_desc = <<-EOT.unindent
515
537
  Resumes the execution of the a saved VM
516
538
 
517
- States: STOPPED, SUSPENDED, UNDEPLOYED, POWEROFF
539
+ States: STOPPED, SUSPENDED, UNDEPLOYED, POWEROFF, UNKNOWN
518
540
  EOT
519
541
 
520
542
  command :resume, resume_desc, [:range,:vmid_list],
@@ -530,32 +552,40 @@ cmd=CommandParser::CmdParser.new(ARGV) do
530
552
 
531
553
  recover_desc = <<-EOT.unindent
532
554
  Recovers a stuck VM that is waiting for a driver operation. The recovery
533
- may be done by failing or succeeding the pending operation. YOU NEED
555
+ may be done by failing, succeeding or retrying the current operation. YOU NEED
534
556
  TO MANUALLY CHECK THE VM STATUS ON THE HOST, to decide if the operation
535
- was successful or not.
557
+ was successful or not, or if it can be retried.
536
558
 
537
559
  Example: A VM is stuck in "migrate" because of a hardware failure. You
538
560
  need to check if the VM is running in the new host or not to recover
539
561
  the vm with --success or --failure, respectively.
540
562
 
541
- States: Any ACTIVE state.
563
+ States for success/failure recovers: Any ACTIVE state.
564
+ States for a retry recover: Any *FAILURE state
542
565
  EOT
543
566
 
544
567
  command :recover, recover_desc, [:range,:vmid_list],
545
- :options => [SUCCESS, FAILURE] do
568
+ :options => [SUCCESS, FAILURE, RETRY, INTERACTIVE] do
546
569
  if !options[:success].nil?
547
- result = true
570
+ result = 1
548
571
  elsif !options[:failure].nil?
549
- result = false
572
+ result = 0
573
+ elsif !options[:retry].nil?
574
+ result = 2
550
575
  else
551
576
  STDERR.puts "Need to specify the result of the pending action."
552
577
  STDERR.puts "\t--success recover the VM by succeeding the missing action."
553
578
  STDERR.puts "\t--failure recover the VM by failing the missing action."
579
+ STDERR.puts "\t--retry recover the VM by retrying the last failed action."
554
580
  exit -1
555
581
  end
556
582
 
557
583
  helper.perform_actions(args[0], options, "recovering") do |vm|
558
- vm.recover(result)
584
+ if options[:retry] && options[:interactive]
585
+ helper.recover_retry_interactive(vm)
586
+ else
587
+ vm.recover(result)
588
+ end
559
589
  end
560
590
  end
561
591
 
@@ -563,12 +593,12 @@ cmd=CommandParser::CmdParser.new(ARGV) do
563
593
  Attaches a disk to a running VM. When using --file add only one
564
594
  DISK instance.
565
595
 
566
- States: RUNNING
596
+ States: RUNNING, POWEROFF
567
597
  EOT
568
598
 
569
599
  command :"disk-attach", disk_attach_desc, :vmid,
570
600
  :options => [OneVMHelper::FILE, OneVMHelper::IMAGE,
571
- TARGET, CACHE] do
601
+ TARGET, CACHE, DISCARD, PREFIX] do
572
602
 
573
603
  if options[:file].nil? and options[:image].nil?
574
604
  STDERR.puts "Provide a template file or an image:"
@@ -581,19 +611,25 @@ cmd=CommandParser::CmdParser.new(ARGV) do
581
611
  template = File.read(options[:file])
582
612
  else
583
613
  image_id = options[:image]
584
- target = options[:target]
614
+ target = options[:target]
615
+ prefix = options[:prefix] || "sd"
616
+
585
617
  if target
586
618
  template =
587
619
  "DISK = [ IMAGE_ID = #{image_id}, TARGET = #{target}"
588
620
  else
589
- template =
590
- "DISK = [ IMAGE_ID = #{image_id}, DEV_PREFIX = sd"
621
+ template = "DISK = [ IMAGE_ID = #{image_id}"
622
+ template << ", DEV_PREFIX = #{prefix}"
591
623
  end
592
624
 
593
625
  if options[:cache]
594
626
  template<<", CACHE = \"#{options[:cache]}\""
595
627
  end
596
628
 
629
+ if options[:discard]
630
+ template<<", DISCARD = \"#{options[:discard]}\""
631
+ end
632
+
597
633
  template << " ]"
598
634
  end
599
635
 
@@ -605,7 +641,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
605
641
  disk_detach_desc = <<-EOT.unindent
606
642
  Detaches a disk from a running VM
607
643
 
608
- States: RUNNING
644
+ States: RUNNING, POWEROFF
609
645
  EOT
610
646
 
611
647
  command :"disk-detach", disk_detach_desc, :vmid, :diskid do
@@ -620,7 +656,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
620
656
  Attaches a NIC to a running VM. When using --file add only one
621
657
  NIC instance.
622
658
 
623
- States: RUNNING
659
+ States: RUNNING, POWEROFF
624
660
  EOT
625
661
 
626
662
  command :"nic-attach", nic_attach_desc, :vmid,
@@ -653,7 +689,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do
653
689
  nic_detach_desc = <<-EOT.unindent
654
690
  Detaches a NIC from a running VM
655
691
 
656
- States: RUNNING
692
+ States: RUNNING, POWEROFF
657
693
  EOT
658
694
 
659
695
  command :"nic-detach", nic_detach_desc, :vmid, :nicid do
@@ -772,6 +808,45 @@ cmd=CommandParser::CmdParser.new(ARGV) do
772
808
  end
773
809
  end
774
810
 
811
+ disk_snapshot_create_desc = <<-EOT.unindent
812
+ Takes a new snapshot of the given disk. This operation needs support
813
+ from the Datastore drivers: QCOW2 or Ceph.
814
+
815
+ States: POWEROFF
816
+ EOT
817
+
818
+ command :"disk-snapshot-create", disk_snapshot_create_desc,
819
+ :vmid, :diskid, :name do
820
+ helper.perform_action(args[0],options,"disk snapshot created") do |o|
821
+ o.disk_snapshot_create(args[1].to_i, args[2])
822
+ end
823
+ end
824
+
825
+ disk_snapshot_revert_desc = <<-EOT.unindent
826
+ Reverts disk state to a previously taken snapshot.
827
+
828
+ States: POWEROFF
829
+ EOT
830
+
831
+ command :"disk-snapshot-revert", disk_snapshot_revert_desc,
832
+ :vmid, :diskid, :snapshot_id do
833
+ helper.perform_action(args[0],options,"disk snapshot reverted") do |o|
834
+ o.disk_snapshot_revert(args[1].to_i, args[2].to_i)
835
+ end
836
+ end
837
+
838
+ disk_snapshot_delete_desc = <<-EOT.unindent
839
+ Deletes a disk snapshot.
840
+
841
+ States: POWEROFF
842
+ EOT
843
+ command :"disk-snapshot-delete", disk_snapshot_delete_desc,
844
+ :vmid, :diskid, :snapshot_id do
845
+ helper.perform_action(args[0],options,"disk snapshot deleted") do |o|
846
+ o.disk_snapshot_delete(args[1].to_i, args[2].to_i)
847
+ end
848
+ end
849
+
775
850
  list_desc = <<-EOT.unindent
776
851
  Lists VMs in the pool
777
852
  EOT
@@ -834,14 +909,34 @@ cmd=CommandParser::CmdParser.new(ARGV) do
834
909
  end
835
910
  end
836
911
 
912
+ save_desc = <<-EOT.unindent
913
+ Clones the VM's source Template, replacing the disks with live snapshots
914
+ of the current disks. The VM capacity and NICs are also preserved
915
+
916
+ States: POWEROFF
917
+ EOT
918
+
919
+ command :save, save_desc, :vmid, :name do
920
+ helper.perform_action(args[0],options,"Saving VM") do |vm|
921
+ res = vm.save_as_template(args[1])
922
+
923
+ if !OpenNebula.is_error?(res)
924
+ puts "Template ID: #{res}"
925
+ end
926
+
927
+ res
928
+ end
929
+ end
930
+
837
931
  # Deprecated commands
838
932
 
839
933
  deprecated_command(:attachdisk, 'disk-attach')
840
934
  deprecated_command(:detachdisk, 'disk-detach')
841
- deprecated_command(:saveas, 'disk-snapshot')
935
+ deprecated_command(:'disk-snapshot', 'disk-saveas')
842
936
  deprecated_command(:livemigrate, 'migrate --live')
843
937
  deprecated_command(:cancel, 'shutdown --hard')
844
938
  deprecated_command(:reset, 'reboot --hard')
845
- deprecated_command(:restart, 'boot')
939
+ deprecated_command(:restart, 'recover --retry')
940
+ deprecated_command(:boot, 'recover --retry')
846
941
  deprecated_command(:resubmit, 'delete --recreate')
847
942
  end