From 2ad5f0a6b07c25cc8bc371a92baea3d1c52161ad Mon Sep 17 00:00:00 2001 From: Benedikt Loeffler Date: Wed, 13 Oct 2021 13:50:36 +0200 Subject: Check if stdin has isatty attribute When the stdin is closed, it has no isatty atrribute which leads to a KeyError. Closes-Bug: #1980890 Change-Id: If9a3bf68b8dfd953b346697241166578d18bb563 (cherry picked from commit 8df9328a60045edae36dc64cee1f2cf3cd4a09fa) --- glanceclient/common/utils.py | 2 +- glanceclient/v2/shell.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/glanceclient/common/utils.py b/glanceclient/common/utils.py index fd0243c..c3f08de 100644 --- a/glanceclient/common/utils.py +++ b/glanceclient/common/utils.py @@ -447,7 +447,7 @@ def get_data_file(args): except OSError: # (1) stdin is not valid (closed...) return None - if not sys.stdin.isatty(): + if hasattr(sys.stdin, 'isatty') and not sys.stdin.isatty(): # (2) image data is provided through standard input image = sys.stdin if hasattr(sys.stdin, 'buffer'): diff --git a/glanceclient/v2/shell.py b/glanceclient/v2/shell.py index be627f5..84e3639 100644 --- a/glanceclient/v2/shell.py +++ b/glanceclient/v2/shell.py @@ -94,7 +94,7 @@ def do_image_create(gc, args): backend = args.store file_name = fields.pop('file', None) - using_stdin = not sys.stdin.isatty() + using_stdin = hasattr(sys.stdin, 'isatty') and not sys.stdin.isatty() if args.store and not (file_name or using_stdin): utils.exit("--store option should only be provided with --file " "option or stdin.") @@ -205,7 +205,7 @@ def do_image_create_via_import(gc, args): fields[key] = value file_name = fields.pop('file', None) - using_stdin = not sys.stdin.isatty() + using_stdin = hasattr(sys.stdin, 'isatty') and not sys.stdin.isatty() # special processing for backward compatibility with image-create if args.import_method is None and (file_name or using_stdin): -- cgit v1.2.1