diff --git a/ironicclient/tests/functional/base.py b/ironicclient/tests/functional/base.py index a0ea61b88..ab0aefa9d 100644 --- a/ironicclient/tests/functional/base.py +++ b/ironicclient/tests/functional/base.py @@ -83,7 +83,8 @@ class FunctionalTestBase(base.ClientTestBase): conf_settings += ['os_auth_url', 'os_username', 'os_password', 'os_project_name'] keystone_v3_conf_settings += ['os_user_domain_id', - 'os_project_domain_id'] + 'os_project_domain_id', + 'os_identity_api_version'] else: conf_settings += ['os_auth_token', 'ironic_url'] @@ -126,11 +127,14 @@ class FunctionalTestBase(base.ClientTestBase): return base.execute(cmd, action, flags, params, cli_dir=self.client.cli_dir) - def _ironic(self, action, flags='', params='', merge_stderr=False): + def _ironic(self, action, cmd='ironic', flags='', params='', + merge_stderr=False): """Execute ironic command for the given action. :param action: the cli command to run using Ironic :type action: string + :param cmd: the base of cli command to run + :type action: string :param flags: any optional cli flags to use :type flags: string :param params: any optional positional args to use @@ -138,9 +142,15 @@ class FunctionalTestBase(base.ClientTestBase): :param merge_stderr: whether to merge stderr into the result :type merge_stderr: bool """ - flags += ' --os-endpoint-type publicURL' + if cmd == 'openstack': + config = self._get_config() + id_api_version = config['os_identity_api_version'] + flags += ' --os-identity-api-version {0}'.format(id_api_version) + else: + flags += ' --os-endpoint-type publicURL' + if hasattr(self, 'os_auth_token'): - return self._cmd_no_auth('ironic', action, flags, params) + return self._cmd_no_auth(cmd, action, flags, params) else: for keystone_object in 'user', 'project': domain_attr = 'os_%s_domain_id' % keystone_object @@ -149,25 +159,8 @@ class FunctionalTestBase(base.ClientTestBase): 'ks_obj': keystone_object, 'value': getattr(self, domain_attr) } - return self.client.cmd_with_auth('ironic', - action, flags, params, - merge_stderr=merge_stderr) - - def _ironic_osc(self, action, flags='', params='', merge_stderr=False): - """Execute baremetal commands via OpenStack Client.""" - config = self._get_config() - id_api_version = config.get('functional', 'os_identity_api_version') - flags += ' --os-identity-api-version {0}'.format(id_api_version) - - for keystone_object in 'user', 'project': - domain_attr = 'os_%s_domain_id' % keystone_object - if hasattr(self, domain_attr): - flags += ' --os-%(ks_obj)s-domain-id %(value)s' % { - 'ks_obj': keystone_object, - 'value': getattr(self, domain_attr) - } - return self.client.cmd_with_auth( - 'openstack', action, flags, params, merge_stderr=merge_stderr) + return self.client.cmd_with_auth( + cmd, action, flags, params, merge_stderr=merge_stderr) def ironic(self, action, flags='', params='', parse=True): """Return parsed list of dicts with basic item info. diff --git a/ironicclient/tests/functional/osc/v1/base.py b/ironicclient/tests/functional/osc/v1/base.py index b2a3ec970..aa30e84ec 100644 --- a/ironicclient/tests/functional/osc/v1/base.py +++ b/ironicclient/tests/functional/osc/v1/base.py @@ -21,7 +21,7 @@ from ironicclient.tests.functional import base class TestCase(base.FunctionalTestBase): def openstack(self, *args, **kwargs): - return self._ironic_osc(*args, **kwargs) + return self._ironic(cmd='openstack', *args, **kwargs) def get_opts(self, fields=None, output_format='json'): """Get options for OSC output fields format. diff --git a/tools/run_functional.sh b/tools/run_functional.sh index e9725192b..ce0c499f9 100755 --- a/tools/run_functional.sh +++ b/tools/run_functional.sh @@ -16,7 +16,7 @@ cat <$CONFIG_FILE [functional] api_version = 1 os_auth_url=$OS_AUTH_URL -os_identity_api_version = $OS_IDENTITY_API_VERSION +os_identity_api_version=$OS_IDENTITY_API_VERSION os_username=$OS_USERNAME os_password=$OS_PASSWORD os_project_name=$OS_PROJECT_NAME