Register global Keystone args first
As described in the referenced bug, registering the Keystone args last causes their default values to be ignored. Registering them first seems to prevent the problem. Change-Id: I8eb7882a0153fedbd6591dde2157df13fa2e5ba3 Closes-Bug: 1463581
This commit is contained in:
parent
01d2520788
commit
e6ae41c537
|
@ -96,6 +96,14 @@ class IronicShell(object):
|
|||
formatter_class=HelpFormatter,
|
||||
)
|
||||
|
||||
# FIXME(gyee): this method should come from python-keystoneclient.
|
||||
# Will refactor this code once it is available.
|
||||
# https://bugs.launchpad.net/python-keystoneclient/+bug/1332337
|
||||
|
||||
# Register global Keystone args first so their defaults are respected.
|
||||
# See https://bugs.launchpad.net/python-ironicclient/+bug/1463581
|
||||
self._append_global_identity_args(parser)
|
||||
|
||||
# Global arguments
|
||||
parser.add_argument('-h', '--help',
|
||||
action='store_true',
|
||||
|
@ -241,12 +249,6 @@ class IronicShell(object):
|
|||
'IRONIC_RETRY_INTERVAL',
|
||||
default=str(http.DEFAULT_RETRY_INTERVAL)))
|
||||
|
||||
# FIXME(gyee): this method should come from python-keystoneclient.
|
||||
# Will refactor this code once it is available.
|
||||
# https://bugs.launchpad.net/python-keystoneclient/+bug/1332337
|
||||
|
||||
self._append_global_identity_args(parser)
|
||||
|
||||
return parser
|
||||
|
||||
def get_subcommand_parser(self, version):
|
||||
|
|
|
@ -183,7 +183,7 @@ class TestCase(testtools.TestCase):
|
|||
client_env = ('OS_USERNAME', 'OS_PASSWORD', 'OS_TENANT_ID',
|
||||
'OS_TENANT_NAME', 'OS_AUTH_URL', 'OS_REGION_NAME',
|
||||
'OS_AUTH_TOKEN', 'OS_NO_CLIENT_AUTH', 'OS_SERVICE_TYPE',
|
||||
'OS_ENDPOINT_TYPE')
|
||||
'OS_ENDPOINT_TYPE', 'OS_CACERT', 'OS_CERT', 'OS_KEY')
|
||||
|
||||
for key in client_env:
|
||||
self.useFixture(
|
||||
|
@ -302,3 +302,17 @@ class ShellTestNoMoxV3(ShellTestNoMox):
|
|||
|
||||
def _set_fake_env(self):
|
||||
self.set_fake_env(FAKE_ENV_KEYSTONE_V3)
|
||||
|
||||
|
||||
class ShellParserTest(TestCase):
|
||||
def test_deprecated_defaults(self):
|
||||
cert_env = {}
|
||||
cert_env['OS_CACERT'] = '/fake/cacert.pem'
|
||||
cert_env['OS_CERT'] = '/fake/cert.pem'
|
||||
cert_env['OS_KEY'] = '/fake/key.pem'
|
||||
self.set_fake_env(cert_env)
|
||||
parser = ironic_shell.IronicShell().get_base_parser()
|
||||
options, _ = parser.parse_known_args([])
|
||||
self.assertEqual(cert_env['OS_CACERT'], options.os_cacert)
|
||||
self.assertEqual(cert_env['OS_CERT'], options.os_cert)
|
||||
self.assertEqual(cert_env['OS_KEY'], options.os_key)
|
||||
|
|
Loading…
Reference in New Issue