class Fission::Action::VM::Stopper
Public Class Methods
Public Instance Methods
stop(options={})
click to toggle source
Public: Stops a VM. The VM must be running in order to stop it.
options - Hash of options:
:hard - Boolean which specifies to power off the VM (instead of attempting to initiate a graceful shutdown). This is the equivalent of passing 'hard' to the vmrun stop command. (default: false)
Examples
@stopper.stop @stopper.stop :hard => true
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/stopper.rb, line 38 def stop(options={}) 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? unless running_response.data return Response.new :code => 1, :message => 'VM is not running' end conf_file_response = @vm.conf_file return conf_file_response unless conf_file_response.successful? command = "#{vmrun_cmd} stop " command << "'#{conf_file_response.data}' " command << 'hard ' unless options[:hard].blank? command << '2>&1' command_exec = Fission::Action::ShellExecutor.new command Response.from_shell_executor command_exec.execute end
Private Instance Methods
vmrun_cmd()
click to toggle source
Internal: Helper for getting the configured #vmrun_cmd value.
Examples
@vm_stopper.vmrun_cmd # => "/foo/bar/vmrun -T fusion"
Returns a String for the configured value of Fission#config.
# File lib/fission/action/vm/stopper.rb, line 72 def vmrun_cmd Fission.config['vmrun_cmd'] end