diff --git a/image_creator/bundle_volume.py b/image_creator/bundle_volume.py index eec084f847f58c967a68da67858b0a417f817ae2..215afb27f92969ffbce9974452512b94712d3614 100644 --- a/image_creator/bundle_volume.py +++ b/image_creator/bundle_volume.py @@ -267,8 +267,11 @@ class BundleVolume(object): name = os.path.basename(dev) + "_" + uuid.uuid4().hex tablefd, table = tempfile.mkstemp() try: - size = end - start + 1 - os.write(tablefd, "0 %d linear %s %d" % (size, dev, start)) + try: + size = end - start + 1 + os.write(tablefd, "0 %d linear %s %d" % (size, dev, start)) + finally: + os.close(tablefd) dmsetup('create', "%sp%d" % (name, num), table) finally: os.unlink(table) diff --git a/image_creator/disk.py b/image_creator/disk.py index 76a53aa4102a9054a459aa7214c3108786d7365c..5806d6f93ed1bab5b2e1cc4d1e7b74c205fa253e 100644 --- a/image_creator/disk.py +++ b/image_creator/disk.py @@ -174,11 +174,14 @@ class Disk(object): snapshot = uuid.uuid4().hex tablefd, table = tempfile.mkstemp() try: - os.write(tablefd, "0 %d snapshot %s %s n 8" % - (int(size), sourcedev, cowdev)) + try: + os.write(tablefd, "0 %d snapshot %s %s n 8" % + (int(size), sourcedev, cowdev)) + finally: + os.close(tablefd) + dmsetup('create', snapshot, table) self._add_cleanup(try_fail_repeat, dmsetup, 'remove', snapshot) - finally: os.unlink(table) self.out.success('done')