summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Romanenko <kromanenko@mirantis.com>2016-12-26 14:58:58 +0200
committerKyrylo Romanenko <kromanenko@mirantis.com>2017-07-31 17:17:45 +0300
commitfab6a8bfef303094e4ece0266ee4fa132b269f1f (patch)
treeba109cd8986cc5f8835ddf3978193ea637733c8d
parent835775e45c05ac72850770267e543e2f986176d4 (diff)
downloadpython-ironicclient-fab6a8bfef303094e4ece0266ee4fa132b269f1f.tar.gz
Pass os_identity_api_version into functional tests
Add 'os_identity_api_version' to keystone_v3_conf_settings. Deduplicate excessive _ironic_osc method. Change-Id: I9b93ec8a299d3a69629bf294d23d1b1d9e23660e Closes-Bug: #1646837
-rw-r--r--ironicclient/tests/functional/base.py39
-rw-r--r--ironicclient/tests/functional/osc/v1/base.py2
-rwxr-xr-xtools/run_functional.sh2
3 files changed, 18 insertions, 25 deletions
diff --git a/ironicclient/tests/functional/base.py b/ironicclient/tests/functional/base.py
index a0ea61b..ab0aefa 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 b2a3ec9..aa30e84 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 e972519..ce0c499 100755
--- a/tools/run_functional.sh
+++ b/tools/run_functional.sh
@@ -16,7 +16,7 @@ cat <<END >$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