Merge "Fix functional.base.TestCase.openstack() to optionally omit --os-auth-type"

This commit is contained in:
Zuul 2019-08-23 19:40:13 +00:00 committed by Gerrit Code Review
commit 7b7488d51c
1 changed files with 21 additions and 7 deletions

View File

@ -44,18 +44,32 @@ class TestCase(testtools.TestCase):
@classmethod
def openstack(cls, cmd, cloud=ADMIN_CLOUD, fail_ok=False):
"""Executes openstackclient command for the given action."""
if cloud is not None:
return execute(
'openstack --os-cloud={cloud} '.format(cloud=cloud) + cmd,
fail_ok=fail_ok
)
else:
"""Executes openstackclient command for the given action
NOTE(dtroyer): There is a subtle distinction between pasing
cloud=None and cloud='': for compatibility reasons passing
cloud=None continues to include the option '--os-auth-type none'
in the command while passing cloud='' omits the '--os-auth-type'
option completely to let the default handlers be invoked.
"""
if cloud is None:
# Execute command with no auth
return execute(
'openstack --os-auth-type none ' + cmd,
fail_ok=fail_ok
)
elif cloud == '':
# Execute command with no auth options at all
return execute(
'openstack ' + cmd,
fail_ok=fail_ok
)
else:
# Execure command with an explicit cloud specified
return execute(
'openstack --os-cloud=' + cloud + ' ' + cmd,
fail_ok=fail_ok
)
@classmethod
def is_service_enabled(cls, service):