Merge "Fix OSC networking commands help errors"
This commit is contained in:
commit
bfad2abf23
@ -59,6 +59,8 @@ class ClientManager(clientmanager.ClientManager):
|
|||||||
self._interface = self.interface
|
self._interface = self.interface
|
||||||
self._cacert = self.cacert
|
self._cacert = self.cacert
|
||||||
self._insecure = not self.verify
|
self._insecure = not self.verify
|
||||||
|
# store original auth_type
|
||||||
|
self._original_auth_type = cli_options.auth_type
|
||||||
|
|
||||||
def setup_auth(self):
|
def setup_auth(self):
|
||||||
"""Set up authentication"""
|
"""Set up authentication"""
|
||||||
@ -73,12 +75,33 @@ class ClientManager(clientmanager.ClientManager):
|
|||||||
if self._cli_options._openstack_config is not None:
|
if self._cli_options._openstack_config is not None:
|
||||||
self._cli_options._openstack_config._pw_callback = \
|
self._cli_options._openstack_config._pw_callback = \
|
||||||
shell.prompt_for_password
|
shell.prompt_for_password
|
||||||
|
try:
|
||||||
|
self._cli_options._auth = \
|
||||||
|
self._cli_options._openstack_config.load_auth_plugin(
|
||||||
|
self._cli_options.config,
|
||||||
|
)
|
||||||
|
except TypeError as e:
|
||||||
|
self._fallback_load_auth_plugin(e)
|
||||||
|
|
||||||
|
return super(ClientManager, self).setup_auth()
|
||||||
|
|
||||||
|
def _fallback_load_auth_plugin(self, e):
|
||||||
|
# NOTES(RuiChen): Hack to avoid auth plugins choking on data they don't
|
||||||
|
# expect, delete fake token and endpoint, then try to
|
||||||
|
# load auth plugin again with user specified options.
|
||||||
|
# We know it looks ugly, but it's necessary.
|
||||||
|
if self._cli_options.config['auth']['token'] == 'x':
|
||||||
|
# restore original auth_type
|
||||||
|
self._cli_options.config['auth_type'] = \
|
||||||
|
self._original_auth_type
|
||||||
|
del self._cli_options.config['auth']['token']
|
||||||
|
del self._cli_options.config['auth']['endpoint']
|
||||||
self._cli_options._auth = \
|
self._cli_options._auth = \
|
||||||
self._cli_options._openstack_config.load_auth_plugin(
|
self._cli_options._openstack_config.load_auth_plugin(
|
||||||
self._cli_options.config,
|
self._cli_options.config,
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
return super(ClientManager, self).setup_auth()
|
raise e
|
||||||
|
|
||||||
def is_network_endpoint_enabled(self):
|
def is_network_endpoint_enabled(self):
|
||||||
"""Check if the network endpoint is enabled"""
|
"""Check if the network endpoint is enabled"""
|
||||||
|
@ -64,3 +64,10 @@ class HelpTests(base.TestCase):
|
|||||||
raw_output = self.openstack('help server')
|
raw_output = self.openstack('help server')
|
||||||
for command in [row[0] for row in self.SERVER_COMMANDS]:
|
for command in [row[0] for row in self.SERVER_COMMANDS]:
|
||||||
self.assertIn(command, raw_output)
|
self.assertIn(command, raw_output)
|
||||||
|
|
||||||
|
def test_networking_commands_help(self):
|
||||||
|
"""Check networking related commands in help message."""
|
||||||
|
raw_output = self.openstack('help network list')
|
||||||
|
self.assertIn('List networks', raw_output)
|
||||||
|
raw_output = self.openstack('network create --help')
|
||||||
|
self.assertIn('Create new network', raw_output)
|
||||||
|
6
releasenotes/notes/bug-1650026-0ce6a77e69d24424.yaml
Normal file
6
releasenotes/notes/bug-1650026-0ce6a77e69d24424.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixed a ``__init__() got an unexpected keyword argument 'project_name'``
|
||||||
|
error in various networking commands when ``help`` or ``--help`` was used.
|
||||||
|
[Bug `1650026 <https://bugs.launchpad.net/bugs/1650026>`_]
|
Loading…
Reference in New Issue
Block a user