From 8e42f003e17277229da5785819af23b6c3f5acd9 Mon Sep 17 00:00:00 2001 From: Artem Bityutskiy Date: Thu, 1 Nov 2012 16:01:50 +0200 Subject: [PATCH] Teach Creator and Flasher modules to provide human sizes Which we can use in the comman-line tools, which is quite handy. Change-Id: I904d5895d9422b3bc6a54fdbfbd4e51b06996f95 Signed-off-by: Artem Bityutskiy --- bmap-flasher | 5 ++--- bmaptools/BmapCreator.py | 11 +++++++---- bmaptools/BmapFlasher.py | 7 +++++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/bmap-flasher b/bmap-flasher index d61e220..640402a 100755 --- a/bmap-flasher +++ b/bmap-flasher @@ -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)) diff --git a/bmaptools/BmapCreator.py b/bmaptools/BmapCreator.py index 9f25a94..402930c 100644 --- a/bmaptools/BmapCreator.py +++ b/bmaptools/BmapCreator.py @@ -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 += "\n" % bmap_version xml += "\t\n" \ - % BmapHelpers.human_size(self.bmap_image_size) + % self.bmap_image_size_human xml += "\t %u \n\n" % self.bmap_image_size xml += "\t\n" @@ -270,9 +273,8 @@ class BmapCreator: mapped blocks. """ xml = "\t\n\n" - human_size = BmapHelpers.human_size(self.bmap_mapped_size) xml += "\t\n" \ - % (human_size, self.bmap_mapped_percent) + % (self.bmap_mapped_size_human, self.bmap_mapped_percent) xml += "\t %u \n" \ % self.bmap_mapped_cnt xml += "" @@ -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() diff --git a/bmaptools/BmapFlasher.py b/bmaptools/BmapFlasher.py index 6c6a8dc..c441cda 100644 --- a/bmaptools/BmapFlasher.py +++ b/bmaptools/BmapFlasher.py @@ -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() -- 2.7.4