def destroy_VM_instance(settings, ip_address): """ Terminate a VM instance """ print("Terminating VM instance %s" % ip_address) if _is_instance_running(settings, ip_address, ip_given=True): try: if not confirm_teardown(): return instance = get_this_instance(settings, ip_address, ip_given=True) instance_id = instance.id ip_address = get_instance_ip(instance) delete_chef_node_client(settings, instance_id, ip_address) connection = create_cloud_connection(settings) connection.terminate_instances([instance_id]) _wait_for_instance_to_terminate(settings, ip_address) except Exception: traceback.print_exc(file=sys.stdout) raise else: print "VM instance with IP %s doesn't exist" % ip_address
def destroy_VM_instance(settings, connection, ip_address): """ Terminate - all instances, or - a group of instances, or - a single instance """ print("Terminating VM instance %s" % ip_address) if _is_instance_running(connection, ip_address): try: instance = get_this_instance(connection, ip_address, ip_given=True) if not confirm_teardown(settings): return instance_id = instance.id ip_address = instance.public_ips[0] delete_chef_node_client(settings, instance_id, ip_address) connection.destroy_node(instance) _wait_for_instance_to_terminate(settings, connection, ip_address) except Exception: traceback.print_exc(file=sys.stdout) raise else: print "VM instance with IP %s doesn't exist" % ip_address