From f2dce5f9c3ac83f23909e7e3d505a718cec7225f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= Date: Wed, 20 Feb 2013 16:53:41 +0100 Subject: [PATCH] Feature #1224: New command onevm snapshot-revert --- src/cli/onevm | 11 +++++++++++ src/oca/ruby/opennebula/virtual_machine.rb | 13 ++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/cli/onevm b/src/cli/onevm index 318fa7e3b4..6561653755 100755 --- a/src/cli/onevm +++ b/src/cli/onevm @@ -633,6 +633,17 @@ cmd=CommandParser::CmdParser.new(ARGV) do end end + # TODO: Write a more complete description: + snapshot_revert_desc = <<-EOT.unindent + Reverts a VM to a saved snapshot + EOT + + command :"snapshot-revert", snapshot_revert_desc, :vmid, :snapshot_id do + helper.perform_action(args[0],options,"snapshot reverted") do |o| + o.snapshot_revert(args[1]) + end + end + list_desc = <<-EOT.unindent Lists VMs in the pool EOT diff --git a/src/oca/ruby/opennebula/virtual_machine.rb b/src/oca/ruby/opennebula/virtual_machine.rb index 0ee51d1f0a..1c4b055319 100644 --- a/src/oca/ruby/opennebula/virtual_machine.rb +++ b/src/oca/ruby/opennebula/virtual_machine.rb @@ -38,7 +38,8 @@ module OpenNebula :detach => "vm.detach", :rename => "vm.rename", :update => "vm.update", - :snapshotcreate => "vm.snapshotcreate" + :snapshotcreate => "vm.snapshotcreate", + :snapshotrevert => "vm.snapshotrevert" } VM_STATE=%w{INIT PENDING HOLD ACTIVE STOPPED SUSPENDED DONE FAILED @@ -420,6 +421,16 @@ module OpenNebula return call(VM_METHODS[:snapshotcreate], @pe_id, name) end + # Creates a new VM snapshot + # + # @param snap_id [Integer] Id of the snapshot + # + # @return [nil, OpenNebula::Error] nil in case of success, Error + # otherwise + def snapshot_revert(snap_id) + return call(VM_METHODS[:snapshotrevert], @pe_id, snap_id) + end + ####################################################################### # Helpers to get VirtualMachine information #######################################################################