X-Git-Url: https://code.grnet.gr/git/snf-image-creator/blobdiff_plain/35b13de541a25e7f5a9aa670a9c14f317efea84f..17649dd681e2d2f1c98ca8764cc77043740c9e97:/image_creator/bundle_volume.py diff --git a/image_creator/bundle_volume.py b/image_creator/bundle_volume.py index 18d0245..215afb2 100644 --- a/image_creator/bundle_volume.py +++ b/image_creator/bundle_volume.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- +# # Copyright 2012 GRNET S.A. All rights reserved. # # Redistribution and use in source and binary forms, with or @@ -31,6 +33,11 @@ # interpreted as representing official policies, either expressed # or implied, of GRNET S.A. +"""This module hosts the code that performes the host bundling operation. By +using the create_image method of the BundleVolume class the user can create an +image out of the running system. +""" + import os import re import tempfile @@ -260,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)