From b4447b9ecc64dd3ddd4db44897486dfefe90f78d Mon Sep 17 00:00:00 2001 From: Seth Chisamore Date: Fri, 29 Jul 2011 22:26:53 -0400 Subject: [PATCH] [KNIFE_EC2-17] print friendly error message when server cant be located --- lib/chef/knife/ec2_server_delete.rb | 48 ++++++++++++++++------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/lib/chef/knife/ec2_server_delete.rb b/lib/chef/knife/ec2_server_delete.rb index 36277df2..3fb9bf36 100644 --- a/lib/chef/knife/ec2_server_delete.rb +++ b/lib/chef/knife/ec2_server_delete.rb @@ -30,27 +30,33 @@ class Ec2ServerDelete < Knife def run @name_args.each do |instance_id| - server = connection.servers.get(instance_id) - - msg_pair("Instance ID", server.id) - msg_pair("Flavor", server.flavor_id) - msg_pair("Image", server.image_id) - msg_pair("Region", connection.instance_variable_get(:@region)) - msg_pair("Availability Zone", server.availability_zone) - msg_pair("Security Groups", server.groups.join(", ")) - msg_pair("SSH Key", server.key_name) - msg_pair("Root Device Type", server.root_device_type) - msg_pair("Public DNS Name", server.dns_name) - msg_pair("Public IP Address", server.public_ip_address) - msg_pair("Private DNS Name", server.private_dns_name) - msg_pair("Private IP Address", server.private_ip_address) - - puts "\n" - confirm("Do you really want to delete this server") - - server.destroy - - ui.warn("Deleted server #{server.id}") + + begin + server = connection.servers.get(instance_id) + + msg_pair("Instance ID", server.id) + msg_pair("Flavor", server.flavor_id) + msg_pair("Image", server.image_id) + msg_pair("Region", connection.instance_variable_get(:@region)) + msg_pair("Availability Zone", server.availability_zone) + msg_pair("Security Groups", server.groups.join(", ")) + msg_pair("SSH Key", server.key_name) + msg_pair("Root Device Type", server.root_device_type) + msg_pair("Public DNS Name", server.dns_name) + msg_pair("Public IP Address", server.public_ip_address) + msg_pair("Private DNS Name", server.private_dns_name) + msg_pair("Private IP Address", server.private_ip_address) + + puts "\n" + confirm("Do you really want to delete this server") + + server.destroy + + ui.warn("Deleted server #{server.id}") + + rescue NoMethodError + ui.error("Could not locate server '#{instance_id}'. Please verify it was provisioned in the '#{locate_config_value(:region)}' region.") + end end end