Teach Creator and Flasher modules to provide human sizes
authorArtem Bityutskiy <artem.bityutskiy@intel.com>
Thu, 1 Nov 2012 14:01:50 +0000 (16:01 +0200)
committerArtem Bityutskiy <artem.bityutskiy@intel.com>
Thu, 1 Nov 2012 14:01:50 +0000 (16:01 +0200)
Which we can use in the comman-line tools, which is quite handy.

Change-Id: I904d5895d9422b3bc6a54fdbfbd4e51b06996f95
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
bmap-flasher
bmaptools/BmapCreator.py
bmaptools/BmapFlasher.py

index d61e220..640402a 100755 (executable)
@@ -127,9 +127,8 @@ def main():
         log.info("block map format version %s" % flasher.bmap_version)
         log.info("%d blocks of size %d (%s), mapped %d blocks (%s or %.1f%%)" \
                  % (flasher.bmap_blocks_cnt, flasher.bmap_block_size,
-                    BmapHelpers.human_size(flasher.bmap_total_size),
-                    flasher.bmap_mapped_cnt,
-                    BmapHelpers.human_size(flasher.bmap_mapped_size),
+                    flasher.bmap_total_size_human, flasher.bmap_mapped_cnt,
+                    flasher.bmap_mapped_size_human,
                     flasher.bmap_mapped_percent))
         log.info("writing the image to '%s' using bmap file '%s'" \
                  % (args.bdev, args.bmap))
index 9f25a94..402930c 100644 (file)
@@ -32,7 +32,7 @@ import hashlib
 from fcntl import ioctl
 import struct
 from itertools import groupby
-from bmaptools import BmapHelpers
+from BmapHelpers import human_size
 import array
 
 # The bmap format version we generate
@@ -72,10 +72,12 @@ class BmapCreator:
 
         self.fiemap_supported = None
         self.bmap_image_size = None
+        self.bmap_image_size_human = None
         self.bmap_block_size = None
         self.bmap_blocks_cnt = None
         self.bmap_mapped_cnt = None
         self.bmap_mapped_size = None
+        self.bmap_mapped_size_human = None
         self.bmap_mapped_percent = None
 
         self._f_image = None
@@ -87,6 +89,7 @@ class BmapCreator:
                         % (image_path, err), err.errno)
 
         self.bmap_image_size = os.fstat(self._f_image.fileno()).st_size
+        self.bmap_image_size_human = human_size(self.bmap_image_size)
         if self.bmap_image_size == 0:
             raise Error("cannot generate bmap for zero-sized image file '%s'" \
                         % image_path, err.errno)
@@ -160,7 +163,7 @@ class BmapCreator:
 
         xml += "<bmap version=\"%s\">\n" % bmap_version
         xml += "\t<!-- Image size in bytes (%s) -->\n" \
-                % BmapHelpers.human_size(self.bmap_image_size)
+                % self.bmap_image_size_human
         xml += "\t<ImageSize> %u </ImageSize>\n\n" % self.bmap_image_size
 
         xml += "\t<!-- Size of a block in bytes -->\n"
@@ -270,9 +273,8 @@ class BmapCreator:
             mapped blocks. """
 
         xml = "\t</BlockMap>\n\n"
-        human_size = BmapHelpers.human_size(self.bmap_mapped_size)
         xml += "\t<!-- Count of mapped blocks (%s or %.1f%% mapped) -->\n" \
-               % (human_size, self.bmap_mapped_percent)
+               % (self.bmap_mapped_size_human, self.bmap_mapped_percent)
         xml += "\t<MappedBlocksCount> %u </MappedBlocksCount>\n" \
                % self.bmap_mapped_cnt
         xml += "</bmap>"
@@ -333,6 +335,7 @@ class BmapCreator:
                               % (sha1, first, last))
 
         self.bmap_mapped_size = self.bmap_mapped_cnt * self.bmap_block_size
+        self.bmap_mapped_size_human = human_size(self.bmap_mapped_size)
         self.bmap_mapped_percent = self.bmap_mapped_cnt * 100.0
         self.bmap_mapped_percent /= self.bmap_blocks_cnt
         self._bmap_file_end()
index 6c6a8dc..c441cda 100644 (file)
@@ -21,6 +21,7 @@ file which have to be copied to the block device.
 import os
 import hashlib
 from xml.etree import ElementTree
+from BmapHelpers import human_size
 
 # A list of supported image formats
 supported_image_formats = ('bz2', 'gz', 'tar.gz', 'tgz', 'tar.bz2')
@@ -101,7 +102,9 @@ class BmapFlasher:
         self.bmap_blocks_cnt = int(xml.find("BlocksCount").text.strip())
         self.bmap_mapped_cnt = int(xml.find("MappedBlocksCount").text.strip())
         self.bmap_total_size = self.bmap_blocks_cnt * self.bmap_block_size
+        self.bmap_total_size_human = human_size(self.bmap_total_size)
         self.bmap_mapped_size = self.bmap_mapped_cnt * self.bmap_block_size
+        self.bmap_mapped_size_human = human_size(self.bmap_mapped_size)
         self.bmap_mapped_percent = self.bmap_mapped_cnt * 100.0
         self.bmap_mapped_percent /= self.bmap_blocks_cnt
 
@@ -179,7 +182,9 @@ class BmapFlasher:
         self.bmap_blocks_cnt = None
         self.bmap_mapped_cnt = None
         self.bmap_total_size = None
+        self.bmap_total_size_human = None
         self.bmap_mapped_size = None
+        self.bmap_mapped_size_human = None
         self.bmap_mapped_percent = None
 
         self._open_block_device()
@@ -295,9 +300,11 @@ class BmapFlasher:
         # Now we finally know the image size, initialize some of the
         # user-visible variables
         self.bmap_total_size = total_size
+        self.bmap_total_size_human = human_size(total_size)
         self.bmap_blocks_cnt = self.bmap_total_size / self.bmap_block_size
         self.bmap_mapped_cnt = self.bmap_blocks_cnt
         self.bmap_mapped_size = self.bmap_total_size
+        self.bmap_mapped_size_human = self.bmap_total_size_human
 
         if sync:
             self.sync()