diff --git a/ironicclient/tests/functional/base.py b/ironicclient/tests/functional/base.py index 1b24a0eff..bef94254b 100644 --- a/ironicclient/tests/functional/base.py +++ b/ironicclient/tests/functional/base.py @@ -148,6 +148,22 @@ class FunctionalTestBase(base.ClientTestBase): return self.client.cmd_with_auth('ironic', action, flags, params) + def _ironic_osc(self, action, flags='', params=''): + """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) + 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 b6b2793e0..6d8271ca5 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.clients.openstack(*args, **kwargs) + return self._ironic_osc(*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 1024a048c..a789573ce 100755 --- a/tools/run_functional.sh +++ b/tools/run_functional.sh @@ -16,6 +16,7 @@ cat <$CONFIG_FILE [functional] api_version = 1 os_auth_url=$OS_AUTH_URL +os_identity_api_version = $OS_IDENTITY_API_VERSION os_username=$OS_USERNAME os_password=$OS_PASSWORD os_tenant_name=$OS_TENANT_NAME