diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-05-25 21:15:09 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-05-25 21:15:09 +0000 |
commit | 0c244b24bd70c8ae54b0ed5e6096043f780a0eab (patch) | |
tree | fd0f1f7e507b9c7a972b203ea239e0d4d97431ae | |
parent | 048e763b75c5c1a0f18bf461577751386043c2d0 (diff) | |
parent | 583adc34f8cd4abd1048c57c058e88b8c68d5780 (diff) | |
download | python-glanceclient-0c244b24bd70c8ae54b0ed5e6096043f780a0eab.tar.gz |
Merge "Check image-download for redirection"
-rw-r--r-- | glanceclient/v1/shell.py | 11 | ||||
-rw-r--r-- | glanceclient/v2/shell.py | 16 |
2 files changed, 20 insertions, 7 deletions
diff --git a/glanceclient/v1/shell.py b/glanceclient/v1/shell.py index e0a373a..692f9bc 100644 --- a/glanceclient/v1/shell.py +++ b/glanceclient/v1/shell.py @@ -147,8 +147,8 @@ def do_image_show(gc, args): @utils.arg('--file', metavar='<FILE>', help='Local file to save downloaded image data to. ' - 'If this is not specified the image data will be ' - 'written to stdout.') + 'If this is not specified and there is no redirection ' + 'the image data will be not be saved.') @utils.arg('image', metavar='<IMAGE>', help='Name or ID of image to download.') @utils.arg('--progress', action='store_true', default=False, help='Show download progress bar.') @@ -158,7 +158,12 @@ def do_image_download(gc, args): body = image.data() if args.progress: body = progressbar.VerboseIteratorWrapper(body, len(body)) - utils.save_image(body, args.file) + if not (sys.stdout.isatty() and args.file is None): + utils.save_image(body, args.file) + else: + print('No redirection or local file specified for downloaded image ' + 'data. Please specify a local file with --file to save ' + 'downloaded image or redirect output to another source.') @utils.arg('--id', metavar='<IMAGE_ID>', diff --git a/glanceclient/v2/shell.py b/glanceclient/v2/shell.py index 0b3b6da..7298069 100644 --- a/glanceclient/v2/shell.py +++ b/glanceclient/v2/shell.py @@ -13,6 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. +import sys + from glanceclient.common import progressbar from glanceclient.common import utils from glanceclient import exc @@ -46,7 +48,7 @@ def get_image_schema(): ' May be used multiple times.')) @utils.arg('--file', metavar='<FILE>', help='Local file that contains disk image to be uploaded ' - 'during creation. Alternatively, images can be passed ' + 'during creation. Must be present if images are not passed ' 'to the client via stdin.') @utils.arg('--progress', action='store_true', default=False, help='Show upload progress bar.') @@ -254,8 +256,8 @@ def do_explain(gc, args): @utils.arg('--file', metavar='<FILE>', help='Local file to save downloaded image data to. ' - 'If this is not specified the image data will be ' - 'written to stdout.') + 'If this is not specified and there is no redirection ' + 'the image data will be not be saved.') @utils.arg('id', metavar='<IMAGE_ID>', help='ID of image to download.') @utils.arg('--progress', action='store_true', default=False, help='Show download progress bar.') @@ -264,7 +266,13 @@ def do_image_download(gc, args): body = gc.images.data(args.id) if args.progress: body = progressbar.VerboseIteratorWrapper(body, len(body)) - utils.save_image(body, args.file) + if not (sys.stdout.isatty() and args.file is None): + utils.save_image(body, args.file) + else: + msg = ('No redirection or local file specified for downloaded image ' + 'data. Please specify a local file with --file to save ' + 'downloaded image or redirect output to another source.') + utils.exit(msg) @utils.arg('--file', metavar='<FILE>', |