mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
cb4e9701b5
This patch implements the start, stop and reboot methods for the Server model instances. These server model methods share common names with the AWS server model. This patch also implements the API requests required to control the power state of a VMware Virtual Machine. The requests default to issuing shutdown and reboot commands to the guest operating system itself. However, if force is set to true for power_off and reboot, then the VM is powered off or reset at the virtual hardware layer.
33 lines
820 B
Ruby
33 lines
820 B
Ruby
module Fog
|
|
module Compute
|
|
class Vsphere
|
|
class Real
|
|
|
|
def vm_reboot(params = {})
|
|
params = { :force => false }.merge(params)
|
|
raise ArgumentError ":instance_uuid is a required parameter" unless params.has_key? :instance_uuid
|
|
unless vm = find_all_by_instance_uuid(params[:instance_uuid]).shift
|
|
raise Fog::Vsphere::Errors::NotFound, "Could not find a VM with instance UUID: #{params[:instance_uuid]}"
|
|
end
|
|
if params[:force] then
|
|
task = vm.ResetVM_Task
|
|
task.wait_for_completion
|
|
task.info.state
|
|
else
|
|
vm.RebootGuest
|
|
"running"
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
class Mock
|
|
|
|
def vm_reboot(params = {})
|
|
"running"
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|