From ecbe164baecd58c0d53afda752d27f23c449ef50 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Thu, 28 Feb 2019 14:59:31 +0000 Subject: [PATCH] Clean up boot-from-volume volumes on error When we're booting boot-from-volume servers and there are errors, we leave the root volume around. Clean up after ourselves. Change-Id: I6341cdbf21d659d043592f92ddf8ecf6be997802 --- launch/launch-node.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/launch/launch-node.py b/launch/launch-node.py index f146b62e17..d52e1dae14 100755 --- a/launch/launch-node.py +++ b/launch/launch-node.py @@ -254,6 +254,9 @@ def build_server(cloud, name, image, flavor, print("****") print("Server %s failed to build!" % (server.id)) try: + volumes = [] + if boot_from_volume: + volumes = cloud.get_volumes(server) if keep: print("Keeping as requested") # Write out the private SSH key we generated, as we @@ -262,11 +265,14 @@ def build_server(cloud, name, image, flavor, key.write_private_key(key_file) os.chmod(key_file.name, 0o600) print("Private key saved in %s" % key_file.name) - print( - "Run to delete -> openstack server delete %s" % \ - (server.id)) + print("Run to delete:") + print(" openstack server delete %s" % (server.id)) + for attachment in volumes: + print(" openstack volume delete %s" % (attachment.id)) else: cloud.delete_server(server.id, delete_ips=True) + for attachment in volumes: + cloud.delete_volume(attachment.id) except Exception: print("Exception encountered deleting server:") traceback.print_exc()