Class: Chef::Knife::XenserverVmDelete

Inherits:
Chef::Knife show all
Includes:
XenserverBase
Defined in:
lib/chef/knife/xenserver_vm_delete.rb

Instance Method Summary collapse

Methods included from XenserverBase

#bytes_to_megabytes, #connection, included, #locate_config_value

Instance Method Details

#runObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/chef/knife/xenserver_vm_delete.rb', line 39

def run
  if config[:force_delete] =~ /y|yes/i
    ui.warn "--force-delete is deprecated."
    ui.warn "Use --yes to confirm deletion."
    config[:yes] = true 
  end
  deleted = []
  connection.servers.each do |vm|
    to_delete = []
    @name_args.each do |vm_name|
      if config[:match]
        if vm.name =~ /#{vm_name}/
          to_delete << vm
        end
      else
        if (vm_name == vm.name) or (vm_name == vm.uuid)
          to_delete << vm
        end
      end
    end
    to_delete.each do |vm|
      confirm("Do you really want to #{'delete'.bold.red} this virtual machine #{vm.name.bold.red}")
      vm.destroy
      deleted << vm.name 
      ui.info("#{'Deleted'.yellow} virtual machine #{vm.name.yellow} [uuid: #{vm.uuid}]")
    end
  end
  @name_args.each do |vm_name|
    ui.warn "Virtual Machine#{'(s) matching' if config[:match]} '#{vm_name}' not found" if deleted.size == 0
  end
end