X-Git-Url: https://code.grnet.gr/git/snf-image-creator/blobdiff_plain/dcf9274b9589ba4380412e49c8cbc2dccabd4b83..b686bde920ca2e103391662499817174b40545f8:/image_creator/main.py diff --git a/image_creator/main.py b/image_creator/main.py index a12d863..9996dd6 100644 --- a/image_creator/main.py +++ b/image_creator/main.py @@ -45,6 +45,7 @@ import sys import os import optparse import StringIO +import signal def check_writable_dir(option, opt_str, value, parser): @@ -187,13 +188,20 @@ def image_creator(): "(use --force to overwrite it)." % filename) disk = Disk(options.source, out) + + def signal_handler(signum, frame): + disk.cleanup() + + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) try: snapshot = disk.snapshot() dev = disk.get_device(snapshot) # If no customization is to be applied, the image should be mounted ro - readonly = not (options.sysprep or options.shrink) + readonly = (not (options.sysprep or options.shrink) or + options.print_sysprep) dev.mount(readonly) cls = os_cls(dev.distro, dev.ostype)