Class: Chef::Knife::OvhPccVmDelete

Inherits:
Chef::Knife show all
Includes:
OvhBase
Defined in:
lib/chef/knife/ovh_pcc_vm_delete.rb

Instance Method Summary collapse

Methods included from OvhBase

#fatal_exit, #find_all_in_folders, #find_in_folders, #get_folders, #get_vim_connection, included

Instance Method Details

#runObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/chef/knife/ovh_pcc_vm_delete.rb', line 17

def run
  $stdout.sync = true
  
  vmname = @name_args[0]
  
  if vmname.nil?
    show_usage
    fatal_exit("You must specify a virtual machine name")
  end
  
  vim = get_vim_connection
  
  dcname = config[:vsphere_dc] || Chef::Config[:knife][:vsphere_dc]
  dc = vim.serviceInstance.find_datacenter(dcname) or
  fatal_exit("datacenter not found")
  
  vm = find_in_folders(dc.vmFolder, RbVmomi::VIM::VirtualMachine,vmname) or fatal_exit("VM #{vmname} not found")
  
  vm.PowerOffVM_Task.wait_for_completion unless vm.runtime.powerState == "poweredOff"
  vm.Destroy_Task
  puts "Deleted virtual machine #{vmname}"
end