Class: Chef::Knife::EsxVmDelete

Inherits:
Chef::Knife show all
Includes:
ESXBase
Defined in:
lib/chef/knife/esx_vm_delete.rb

Instance Method Summary collapse

Methods included from ESXBase

#connection, included, #locate_config_value

Instance Method Details

#runObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/chef/knife/esx_vm_delete.rb', line 34

def run
  deleted = []
  connection.virtual_machines.each do |vm|
    @name_args.each do |vm_name|
      if vm_name == vm.name
        if config[:force_delete] =~ /(no|NO|false|FALSE)/
          confirm("Do you really want to delete this virtual machine '#{vm.name}'")
        end

        vm.power_off if (vm.name =~ /#{vm.name}/ and vm.power_state == 'poweredOn')
        vm.destroy
        deleted << vm_name
        #Assume yes because the user already confirmed the deletion
        system "knife client delete #{vm.name} -y"
        system "knife node delete #{vm.name} -y"
        ui.info("Deleted virtual machine #{vm.name}")
      end
    end
  end
  @name_args.each do |vm_name|
    ui.warn "Virtual Machine #{vm_name} not found" if not deleted.include?(vm_name)
  end
end