Allow overriding the default role 61/60261/3
authorCédric Ollivier <cedric.ollivier@orange.com>
Fri, 20 Jul 2018 08:45:20 +0000 (10:45 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Fri, 27 Jul 2018 12:33:53 +0000 (14:33 +0200)
It allows testing controllers which implements other RBAC policies.
Defining NEW_USER_ROLE=admin will easily raise side effects for
orchestrators such as Juju and Cloudify.

Change-Id: Ia78a25381aeb8aa81fd1872661629e1c08432b8f
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit 51f3e7a3cc4409fb9dda03bffa1252a8660f38b0)

functest/core/tenantnetwork.py
functest/opnfv_tests/vnf/epc/juju_epc.py
functest/opnfv_tests/vnf/ims/cloudify_ims.py
functest/utils/env.py

index e7526a5..ea338b4 100644 (file)
@@ -35,7 +35,6 @@ class NewProject(object):
     # pylint: disable=too-many-instance-attributes
 
     __logger = logging.getLogger(__name__)
-    default_member = "Member"
 
     def __init__(self, cloud, case_name, guid):
         self.cloud = None
@@ -48,6 +47,7 @@ class NewProject(object):
         self.domain = None
         self.role = None
         self.role_name = None
+        self.default_member = env.get('NEW_USER_ROLE')
 
     def create(self):
         """Create projects/users"""
index f3295d9..c657455 100644 (file)
@@ -130,6 +130,13 @@ class JujuEpc(vnf.VnfOnBoarding):
         self.res_dir = os.path.join(
             getattr(config.CONF, 'dir_results'), self.case_name)
 
+    def check_requirements(self):
+        if env.get('NEW_USER_ROLE').lower() == "admin":
+            self.__logger.warn(
+                "Defining NEW_USER_ROLE=admin will easily break the testcase "
+                "because Juju doesn't manage tenancy (e.g. subnet  "
+                "overlapping)")
+
     def _bypass_juju_netdiscovery_bug(self, name):
         user_creator = OpenStackUser(
             self.snaps_creds,
index 9786ff2..36862bd 100644 (file)
@@ -24,6 +24,7 @@ import six
 from functest.core import cloudify
 from functest.opnfv_tests.vnf.ims import clearwater_ims_base
 from functest.utils import config
+from functest.utils import env
 
 __author__ = "Valentin Boucher <valentin.boucher@orange.com>"
 
@@ -90,6 +91,13 @@ class CloudifyIms(cloudify.Cloudify):
         self.image_alt = None
         self.flavor_alt = None
 
+    def check_requirements(self):
+        if env.get('NEW_USER_ROLE').lower() == "admin":
+            self.__logger.warn(
+                "Defining NEW_USER_ROLE=admin will easily break the testcase "
+                "because Cloudify doesn't manage tenancy (e.g. subnet  "
+                "overlapping)")
+
     def execute(self):
         assert super(CloudifyIms, self).execute() == 0
         # pylint: disable=too-many-locals,too-many-statements
index b0b8501..b5ff965 100644 (file)
@@ -28,7 +28,8 @@ INPUTS = {
     'ENERGY_RECORDER_API_USER': env.INPUTS['ENERGY_RECORDER_API_USER'],
     'ENERGY_RECORDER_API_PASSWORD': env.INPUTS['ENERGY_RECORDER_API_PASSWORD'],
     'VOLUME_DEVICE_NAME': 'vdb',
-    'NAMESERVER': '8.8.8.8'
+    'NAMESERVER': '8.8.8.8',
+    'NEW_USER_ROLE': 'Member'
 }