import os
import optparse
import StringIO
+import signal
def check_writable_dir(option, opt_str, value, parser):
"(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)
if options.outfile is not None:
dev.dump(options.outfile)
- out.output('Dumping metadata file...', False)
+ out.output('Dumping metadata file ...', False)
with open('%s.%s' % (options.outfile, 'meta'), 'w') as f:
f.write(metastring)
out.success('done')
- out.output('Dumping md5sum file...', False)
+ out.output('Dumping md5sum file ...', False)
with open('%s.%s' % (options.outfile, 'md5sum'), 'w') as f:
f.write('%s %s\n' % (checksum,
os.path.basename(options.outfile)))
size=len(metastring),
remote_path="%s.%s" % (options.upload, 'meta'))
out.success('done')
- out.output("(4/4) Uploading md5sum file...", False)
+ out.output("(4/4) Uploading md5sum file ...", False)
md5sumstr = '%s %s\n' % (checksum,
os.path.basename(options.upload))
kamaki.upload(StringIO.StringIO(md5sumstr),
out.output()
if options.register:
- out.output('Registering image with ~okeanos...', False)
+ out.output('Registering image with ~okeanos ...', False)
kamaki.register(options.register, uploaded_obj, metadata)
out.success('done')
out.output()