class Chef::Knife::CloudstackServerDestroy

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/cloudstack_server_destroy.rb, line 28
def run

  if @name_args.nil? || @name_args.empty?
    puts "#{ui.color("Please provide an Instance ID.", :red)}"
  end

  @name_args.each do |instance_id|
    response = connection.list_virtual_machines('name' => instance_id)
    instance_name = response['listvirtualmachinesresponse']['virtualmachine'].first['name']
    instance_ip = response['listvirtualmachinesresponse']['virtualmachine'].first['nic'].first['ipaddress']
    real_instance_id = response['listvirtualmachinesresponse']['virtualmachine'].first['id']
    puts "#{ui.color("Name", :red)}: #{instance_name}"
    puts "#{ui.color("Public IP", :red)}: #{instance_ip}"
    puts "\n"
    confirm("#{ui.color("Do you really want to destroy this server", :red)}")
    connection.destroy_virtual_machine(instance_id)
    ui.warn("Destroyed server #{instance_name}")
  end
end