diff --git a/glanceclient/shell.py b/glanceclient/shell.py index e613139..cba0010 100755 --- a/glanceclient/shell.py +++ b/glanceclient/shell.py @@ -659,6 +659,13 @@ class OpenStackImagesShell(object): # Parse args again and call whatever callback was selected args = subcommand_parser.parse_args(argv) + # NOTE(flaper87): Make sure we re-use the password input if we + # have one. This may happen if the schemas were downloaded in + # this same command. Password will be asked to download the + # schemas and then for the operations below. + if not args.os_password and options.os_password: + args.os_password = options.os_password + # Short-circuit and deal with help command right away. if args.func == self.do_help: self.do_help(args) diff --git a/glanceclient/tests/unit/test_shell.py b/glanceclient/tests/unit/test_shell.py index f0dfb67..8f0ab42 100644 --- a/glanceclient/tests/unit/test_shell.py +++ b/glanceclient/tests/unit/test_shell.py @@ -291,7 +291,7 @@ class ShellTest(testutils.TestCase): self.assertRaises(ks_exc.ConnectionRefused, glance_shell.main, ['image-list']) # Make sure we are actually prompted. - mock_getpass.assert_called_with('OS Password: ') + mock_getpass.assert_called_once_with('OS Password: ') @mock.patch('sys.stdin', side_effect=mock.MagicMock) @mock.patch('getpass.getpass', side_effect=EOFError)