From 1c3cb0a3b54cdb6cd5b27e88372b65cfac844422 Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Mon, 27 Mar 2017 15:52:04 -0500 Subject: [PATCH] Change noauth strategy for plugin loading Don't do it. os-client-config's plugin loading has been causing this pain for a long time, removing the KSC hack-around in o-c-c unmasked this again. So when auth is not reuired, just don't let o-c-c do any plugin loading at all. Ever. Of course, this shouldn't be in OSC either, but we have to do this until the equivalent fix lands in osc-lib, is released and makes it into the global requirements minimum version. Depends-on: Ie68c82f7b073012685f0513b615ab1bf00bc0c3a Change-Id: Ifdf65f3bb90fb923947a2cbe80a881d71a3fee56 --- openstackclient/shell.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/openstackclient/shell.py b/openstackclient/shell.py index d7fe6ac193..4ec357cde0 100644 --- a/openstackclient/shell.py +++ b/openstackclient/shell.py @@ -175,24 +175,17 @@ class OpenStackShell(shell.OpenStackShell): def prepare_to_run_command(self, cmd): """Set up auth and API versions""" - # TODO(dtroyer): Move this to osc-lib - # NOTE(dtroyer): If auth is not required for a command, force fake - # token auth so KSA plugins are happy - - kwargs = {} - if not cmd.auth_required: - # Build fake token creds to keep ksa and o-c-c hushed - kwargs['auth_type'] = 'token_endpoint' - kwargs['auth'] = {} - kwargs['auth']['token'] = 'x' - kwargs['auth']['url'] = 'x' + # TODO(dtroyer): Move this to osc-lib, remove entire method when 1.4.0 + # release is minimum version is in global-requirements + # NOTE(dtroyer): If auth is not required for a command, skip + # get_one_Cloud()'s validation to avoid loading plugins + validate = cmd.auth_required # Validate auth options self.cloud = self.cloud_config.get_one_cloud( cloud=self.options.cloud, argparse=self.options, - validate=True, - **kwargs + validate=validate, ) # Push the updated args into ClientManager self.client_manager._cli_options = self.cloud