Class: Fission::Action::Snapshot::Deleter
- Defined in:
- lib/fission/action/snapshot/deleter.rb
Instance Method Summary collapse
-
#delete_snapshot(name) ⇒ Object
Public: Deletes a snapshot for a VM.
-
#initialize(vm) ⇒ Deleter
constructor
Internal: Creates a new SnapshotDeleter object.
Constructor Details
#initialize(vm) ⇒ Deleter
17 18 19 |
# File 'lib/fission/action/snapshot/deleter.rb', line 17 def initialize(vm) @vm = vm end |
Instance Method Details
#delete_snapshot(name) ⇒ Object
Public: Deletes a snapshot for a VM. The snapshot to delete must exist. If the Fusion GUI is running, then the VM must also be running.
name - The name of the snapshot to delete.
Examples
@deleter.delete_snapshot('foo_snap_1')
Returns a Response with the result. If successful, the Response’s data attribute will be nil. If there is an error, an unsuccessful Response will be returned.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/fission/action/snapshot/deleter.rb', line 33 def delete_snapshot(name) unless @vm.exists? return Response.new :code => 1, :message => 'VM does not exist' end if Fusion.running? running_response = @vm.running? return running_response unless running_response.successful? unless running_response.data = 'A snapshot cannot be deleted when the GUI is running ' << 'and the VM is not running.' return Response.new :code => 1, :message => end end conf_file_response = @vm.conf_file return conf_file_response unless conf_file_response.successful? snapshots_response = @vm.snapshots return snapshots_response unless snapshots_response.successful? unless snapshots_response.data.include? name = "Unable to find a snapshot named '#{name}'." return Response.new :code => 1, :message => end command = "#{vmrun_cmd} deleteSnapshot " command << "'#{conf_file_response.data}' \"#{name}\" 2>&1" command_exec = Fission::Action::ShellExecutor.new command Response.from_shell_executor command_exec.execute end |