Make sysprep_info return a named tuple
[snf-image-creator] / image_creator / bundle_volume.py
index 18d0245..215afb2 100644 (file)
@@ -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
 # 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)