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

Change the functional test TestCase.openstack() method to add a
way to not include the --os-auth-type option in order to test the
default auth-type logic.

Change-Id: I0f1ca2f7517a41278afaad5aaf4e98accb16bea2
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
This commit is contained in:
Dean Troyer 2019-08-22 11:05:05 -05:00
parent a15e4741fa
commit 3b2863e369

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):