From a146142f6ae7f4b20d76f68b8317eae89c4213ab Mon Sep 17 00:00:00 2001 From: Dan Firth Date: Thu, 10 Oct 2013 16:07:37 +0000 Subject: Deployment failures will now remove the disk image --- morphlib/exts/kvm.write | 1 + morphlib/exts/rawdisk.write | 10 ++++++++-- morphlib/exts/virtualbox-ssh.write | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/morphlib/exts/kvm.write b/morphlib/exts/kvm.write index 9a6be135..4f877c22 100755 --- a/morphlib/exts/kvm.write +++ b/morphlib/exts/kvm.write @@ -68,6 +68,7 @@ class KvmPlusSshWriteExtension(morphlib.writeexts.WriteExtension): except BaseException: sys.stderr.write('Error deploying to libvirt') os.remove(raw_disk) + cliapp.ssh_runcmd(ssh_host, ['rm', '-f', vm_path]) raise else: os.remove(raw_disk) diff --git a/morphlib/exts/rawdisk.write b/morphlib/exts/rawdisk.write index a74d6905..8723ac0c 100755 --- a/morphlib/exts/rawdisk.write +++ b/morphlib/exts/rawdisk.write @@ -46,8 +46,14 @@ class RawDiskWriteExtension(morphlib.writeexts.WriteExtension): if os.path.isfile(location): self.upgrade_local_system(location, temp_root) else: - self.create_local_system(temp_root, location) - self.status(msg='Disk image has been created at %s' % location) + try: + self.create_local_system(temp_root, location) + self.status(msg='Disk image has been created at %s' % location) + except Exception: + os.remove(location) + self.status(msg='Failure to create disk image at %s' % + location) + raise def upgrade_local_system(self, raw_disk, temp_root): mp = self.mount(raw_disk) diff --git a/morphlib/exts/virtualbox-ssh.write b/morphlib/exts/virtualbox-ssh.write index 2374db31..f18ef804 100755 --- a/morphlib/exts/virtualbox-ssh.write +++ b/morphlib/exts/virtualbox-ssh.write @@ -76,10 +76,10 @@ class VirtualBoxPlusSshWriteExtension(morphlib.writeexts.WriteExtension): except BaseException: sys.stderr.write('Error deploying to VirtualBox') os.remove(raw_disk) + cliapp.ssh_runcmd(ssh_host, ['rm', '-f', vdi_path]) raise else: os.remove(raw_disk) - self.status( msg='Virtual machine %(vm_name)s has been created', vm_name=vm_name) -- cgit v1.2.1