diff options
author | Radostin Stoyanov <rstoyanov1@gmail.com> | 2017-07-04 16:24:17 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cbosdonnat@suse.com> | 2017-07-05 09:31:19 +0200 |
commit | 847886deea03e95d35afec925a598a498d68265c (patch) | |
tree | 17842bc5c1638b007b840187db617789a9f0d2f5 /src | |
parent | 78a5313c1076580c4a7308294765c26caa2da127 (diff) | |
download | virt-bootstrap.git-847886deea03e95d35afec925a598a498d68265c.tar.gz virt-bootstrap.git-847886deea03e95d35afec925a598a498d68265c.tar.xz virt-bootstrap.git-847886deea03e95d35afec925a598a498d68265c.zip |
Log the size of layers when extracting
Diffstat (limited to 'src')
-rw-r--r-- | src/virtBootstrap/sources.py | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/virtBootstrap/sources.py b/src/virtBootstrap/sources.py index d943dcc..a9c3939 100644 --- a/src/virtBootstrap/sources.py +++ b/src/virtBootstrap/sources.py @@ -94,6 +94,28 @@ def safe_untar(src, dest): execute(virt_sandbox + params) +def format_number(number): + """ + Turn numbers into human-readable metric-like numbers + """ + symbols = ['', 'KiB', 'MiB', 'GiB'] + step = 1024.0 + thresh = 999 + depth = 0 + max_depth = len(symbols) - 1 + + while number > thresh and depth < max_depth: + depth = depth + 1 + number = number / step + + if int(number) == float(number): + fmt = '%i %s' + else: + fmt = '%.2f %s' + + return(fmt % (number or 0, symbols[depth])) + + def get_layer_info(digest, image_dir): """ Get checksum type/value and path to corresponding tarball. @@ -108,7 +130,8 @@ def untar_layers(layers_list, image_dir, dest_dir): Untar each of layers from container image. """ for index, layer in enumerate(layers_list): - logger.info("Extracting layer (%s/%s)", index+1, len(layers_list)) + logger.info("Extracting layer (%s/%s) with size: %s", + index+1, len(layers_list), format_number(layer['size'])) sum_type, sum_value, layer_file = get_layer_info(layer['digest'], image_dir) @@ -187,7 +210,8 @@ def extract_layers_in_qcow2(layers_list, image_dir, dest_dir): qcow2_backing_file = None for index, layer in enumerate(layers_list): - logger.info("Extracting layer (%s/%s)", index+1, len(layers_list)) + logger.info("Extracting layer (%s/%s) with size: %s", + index+1, len(layers_list), format_number(layer['size'])) # Get layer file information sum_type, sum_value, tar_file = get_layer_info(layer['digest'], |