class Fission::Action::VM::Deleter
Public Class Methods
Public Instance Methods
Public: Deletes a VM
. The VM
must not be running in order to delete it. As there are a number issues with the Fusion
command line tool for deleting VMs, this is a best effort. The VM
must not be running when this method is called. This essentially deletes the VM
directory and attempts to remove the relevant entries from the Fusion
plist file. It's highly recommended to delete VMs without the Fusion
GUI running. If the Fusion
GUI is running this method should succeed, but it's been observed that Fusion
will recreate the plist data which is deleted. This leads to 'missing' VMs in the Fusion
GUI.
Examples
@deleter.delete
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.
# File lib/fission/action/vm/deleter.rb, line 37 def delete unless @vm.exists? return Response.new :code => 1, :message => 'VM does not exist' end running_response = @vm.running? return running_response unless running_response.successful? if running_response.data message = 'The VM must not be running in order to delete it.' return Response.new :code => 1, :message => message end FileUtils.rm_rf @vm.path Metadata.delete_vm_info @vm.path Response.new :code => 0 end
Private Instance Methods
Internal: Helper for getting the configured vmrun_cmd
value.
Examples
@deleter.vmrun_cmd # => "/foo/bar/vmrun -T fusion"
Returns a String
for the configured value of Fission.config
.
# File lib/fission/action/vm/deleter.rb, line 66 def vmrun_cmd Fission.config['vmrun_cmd'] end