Disable progress bar if image is piped into client
Previously, running: cat something.img | glance image-create --progress --container-format=bare --disk-format=raw or cat something.img | glance --os-image-api-version 2 image-upload --progress <image id> would result in an error. This error was caused by the length of the input being unknown, so the overall progress cannot be found. This patch disables the progress bar whenever the size of the input file cannot be determined. Change-Id: I6bfef7441864b638194126880241cc2c96d5b18b Closes-Bug: #1402746
This commit is contained in:
@@ -225,9 +225,12 @@ def do_image_create(gc, args):
|
||||
# Only show progress bar for local image files
|
||||
if fields.get('data') and args.progress:
|
||||
filesize = utils.get_file_size(fields['data'])
|
||||
fields['data'] = progressbar.VerboseFileWrapper(
|
||||
fields['data'], filesize
|
||||
)
|
||||
if filesize is not None:
|
||||
# NOTE(kragniz): do not show a progress bar if the size of the
|
||||
# input is unknown (most likely a piped input)
|
||||
fields['data'] = progressbar.VerboseFileWrapper(
|
||||
fields['data'], filesize
|
||||
)
|
||||
|
||||
image = gc.images.create(**fields)
|
||||
_image_show(image, args.human_readable)
|
||||
|
@@ -254,7 +254,10 @@ def do_image_upload(gc, args):
|
||||
image_data = utils.get_data_file(args)
|
||||
if args.progress:
|
||||
filesize = utils.get_file_size(image_data)
|
||||
image_data = progressbar.VerboseFileWrapper(image_data, filesize)
|
||||
if filesize is not None:
|
||||
# NOTE(kragniz): do not show a progress bar if the size of the
|
||||
# input is unknown (most likely a piped input)
|
||||
image_data = progressbar.VerboseFileWrapper(image_data, filesize)
|
||||
gc.images.upload(args.id, image_data, args.size)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user