Fix undesirable raw Python error
Using the glanceclient without a subcommand while passing an optional argument triggers the raw Python error `ERROR: 'Namespace' object has no attribute 'func'`. This bug can be reproduced by issuing the command `glance --os-image-api-version 2`. Added a default value to `func` as placeholder so that a help message is shown instead of the Python error. Closes-Bug: #1903727 Change-Id: Ie4288262e408192310cbbc240bd1779b265a64fd
This commit is contained in:
parent
cb084f5289
commit
1eb0bbbed7
@ -166,6 +166,8 @@ class OpenStackImagesShell(object):
|
||||
parser.add_argument('--os_image_api_version',
|
||||
help=argparse.SUPPRESS)
|
||||
|
||||
parser.set_defaults(func=self.do_help)
|
||||
|
||||
if osprofiler_profiler:
|
||||
parser.add_argument('--profile',
|
||||
metavar='HMAC_KEY',
|
||||
|
@ -211,6 +211,14 @@ class ShellTest(testutils.TestCase):
|
||||
self.assertEqual(0, actual)
|
||||
self.assertFalse(et_mock.called)
|
||||
|
||||
def test_help_no_subcommand(self):
|
||||
shell = openstack_shell.OpenStackImagesShell()
|
||||
argstr = '--os-image-api-version 2'
|
||||
with mock.patch.object(shell, '_get_keystone_auth_plugin') as et_mock:
|
||||
actual = shell.main(argstr.split())
|
||||
self.assertEqual(0, actual)
|
||||
self.assertFalse(et_mock.called)
|
||||
|
||||
def test_blank_call(self):
|
||||
shell = openstack_shell.OpenStackImagesShell()
|
||||
with mock.patch.object(shell, '_get_keystone_auth_plugin') as et_mock:
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
`Bug #1903727 <https://bugs.launchpad.net/python-glanceclient/+bug/1903727>`_:
|
||||
Fixed raw Python error message when using ``glance`` without
|
||||
a subcommand while passing an optional argument, such as
|
||||
``--os-image-api-version``.
|
Loading…
Reference in New Issue
Block a user