summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2018-07-14 13:37:35 +0200
committerCédric Ollivier <cedric.ollivier@orange.com>2018-07-14 13:40:42 +0200
commitbafbd217c68c70ae66e052833c3e33298b35da0c (patch)
tree7396cc065c327053e4f2c72723c171c7dc943ae7
parent59ba5abb31018282bca796ee0c0652d61192c6bf (diff)
Set swift_operator_role if required
Apex creates member as default role which conflicts with the default swift_operator_role [1]. It detects the default role in lowercase as well and write it in rally.conf if required. [1] https://build.opnfv.org/ci/view/functest/job/functest-apex-virtual-suite-master/116/console Change-Id: Ic4dc98c793207fc32ff35852472742c92db6699c Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
-rw-r--r--functest/core/tenantnetwork.py13
-rw-r--r--functest/opnfv_tests/openstack/tempest/tempest.py14
2 files changed, 26 insertions, 1 deletions
diff --git a/functest/core/tenantnetwork.py b/functest/core/tenantnetwork.py
index 60b747bd2..286aef67e 100644
--- a/functest/core/tenantnetwork.py
+++ b/functest/core/tenantnetwork.py
@@ -150,7 +150,7 @@ class TenantNetwork1(testcase.TestCase):
@staticmethod
def get_external_network(cloud):
"""
- Returns the configured external network name or
+ Return the configured external network name or
the first retrieved external network name
"""
assert cloud
@@ -164,6 +164,17 @@ class TenantNetwork1(testcase.TestCase):
return networks[0]
return None
+ @staticmethod
+ def get_default_role(cloud, member="Member"):
+ """Get the default role
+
+ It also tests the role in lowercase to avoid possible conflicts.
+ """
+ role = cloud.get_role(member)
+ if not role:
+ role = cloud.get_role(member.lower())
+ return role
+
def _create_network_ressources(self):
assert self.cloud
assert self.ext_net
diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py
index ac69357a8..bf79eb21d 100644
--- a/functest/opnfv_tests/openstack/tempest/tempest.py
+++ b/functest/opnfv_tests/openstack/tempest/tempest.py
@@ -261,6 +261,19 @@ class TempestCommon(singlevm.VmReady1):
with open(rally_conf, 'wb') as config_file:
rconfig.write(config_file)
+ def update_default_role(self, rally_conf='/etc/rally/rally.conf'):
+ """Detect and update the default role if required"""
+ role = self.get_default_role(self.cloud)
+ if not role:
+ return
+ rconfig = configparser.RawConfigParser()
+ rconfig.read(rally_conf)
+ if not rconfig.has_section('tempest'):
+ rconfig.add_section('tempest')
+ rconfig.set('tempest', 'swift_operator_role', '^{}$'.format(role.name))
+ with open(rally_conf, 'wb') as config_file:
+ rconfig.write(config_file)
+
def configure(self, **kwargs): # pylint: disable=unused-argument
"""
Create all openstack resources for tempest-based testcases and write
@@ -291,6 +304,7 @@ class TempestCommon(singlevm.VmReady1):
assert super(TempestCommon, self).run(
**kwargs) == testcase.TestCase.EX_OK
self.update_rally_regex()
+ self.update_default_role()
self.configure(**kwargs)
self.generate_test_list(**kwargs)
self.apply_tempest_blacklist()