Fix a bug in windows shrink sysprep
[snf-image-creator] / image_creator / bundle_volume.py
index 40acf53..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)
@@ -413,7 +423,7 @@ class BundleVolume(object):
                     mopts = filter(
                         lambda p: p.startswith('Default mount options:'),
                         tune2fs('-l', orig_dev[i]).splitlines()
-                        )[0].split(':')[1].strip().split()
+                    )[0].split(':')[1].strip().split()
 
                     if not (len(mopts) == 1 and mopts[0] == '(none)'):
                         for opt in mopts: