class Chef::Knife::CloudstackServerDelete

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/cloudstack_server_delete.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 delete this server", :red)}")
    connection.destroy_virtual_machine(instance_id)
    ui.warn("Deleted server #{instance_name}")
  end
end