X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=functest%2Fcore%2Fvnf_base.py;h=f5e86054feac7dbe5507f2be189970a5861bb616;hb=9ae14f931da5baf42a3b62eef49c644e762405fc;hp=44b4ae04ca97718b296ab90fe18437f275791f79;hpb=8b9cd64a7b26a8259fd39801ebe77089a10e33d5;p=functest.git diff --git a/functest/core/vnf_base.py b/functest/core/vnf_base.py index 44b4ae04c..f5e86054f 100644 --- a/functest/core/vnf_base.py +++ b/functest/core/vnf_base.py @@ -40,7 +40,8 @@ class VnfOnBoardingBase(base.TestcaseBase): self.tenant_description = CONST.__getattribute__( 'vnf_{}_tenant_description'.format(self.case_name)) except: - raise Exception("Unknown VNF case=" + self.case_name) + # raise Exception("Unknown VNF case=" + self.case_name) + self.logger.error("Unknown VNF case={}".format(self.case_name)) try: self.images = CONST.__getattribute__( @@ -51,8 +52,13 @@ class VnfOnBoardingBase(base.TestcaseBase): def execute(self): self.start_time = time.time() # Prepare the test (Create Tenant, User, ...) - self.logger.info("Create VNF Onboarding environment") - self.prepare() + try: + self.logger.info("Create VNF Onboarding environment") + self.prepare() + except Exception: + self.logger.error("Error during VNF Onboarding environment" + + "creation", exc_info=True) + return base.TestcaseBase.EX_TESTCASE_FAILED # Deploy orchestrator try: @@ -67,8 +73,8 @@ class VnfOnBoardingBase(base.TestcaseBase): res_orchestrator['result']) self.details['orchestrator']['duration'] = round( orchestrator_ready_time - self.start_time, 1) - except: - self.logger.warn("Problem with the Orchestrator") + except Exception: + self.logger.warn("Problem with the Orchestrator", exc_info=True) # Deploy VNF try: @@ -79,8 +85,9 @@ class VnfOnBoardingBase(base.TestcaseBase): self.details['vnf']['result'] = res_deploy_vnf['result'] self.details['vnf']['duration'] = round( vnf_ready_time - orchestrator_ready_time, 1) - except: - raise Exception("Error during VNF deployment") + except Exception: + self.logger.error("Error during VNF deployment", exc_info=True) + return base.TestcaseBase.EX_TESTCASE_FAILED # Test VNF try: @@ -91,8 +98,9 @@ class VnfOnBoardingBase(base.TestcaseBase): self.details['test_vnf']['result'] = res_test_vnf['result'] self.details['test_vnf']['duration'] = round( test_vnf_done_time - vnf_ready_time, 1) - except: - raise Exception("Error when running VNF tests") + except Exception: + self.logger.error("Error when running VNF tests", exc_info=True) + return base.TestcaseBase.EX_TESTCASE_FAILED # Clean the system self.clean() @@ -111,9 +119,9 @@ class VnfOnBoardingBase(base.TestcaseBase): self.keystone_client = os_utils.get_keystone_client() self.logger.info("Prepare OpenStack plateform(create tenant and user)") - user_id = os_utils.get_user_id(self.keystone_client, - self.creds['username']) - if user_id == '': + admin_user_id = os_utils.get_user_id(self.keystone_client, + self.creds['username']) + if admin_user_id == '': self.step_failure("Failed to get id of " + self.creds['username']) @@ -133,7 +141,7 @@ class VnfOnBoardingBase(base.TestcaseBase): self.logger.error("Failed to get id for %s role" % role_name) self.step_failure("Failed to get role id of " + role_name) - if not os_utils.add_role_user(self.keystone_client, user_id, + if not os_utils.add_role_user(self.keystone_client, admin_user_id, role_id, tenant_id): self.logger.error("Failed to add %s on tenant" % self.creds['username']) @@ -149,13 +157,22 @@ class VnfOnBoardingBase(base.TestcaseBase): self.logger.error("Failed to create %s user" % self.tenant_name) self.step_failure("Failed to create user ") + if not os_utils.add_role_user(self.keystone_client, user_id, + role_id, tenant_id): + self.logger.error("Failed to add %s on tenant" % + self.tenant_name) + self.step_failure("Failed to add %s on tenant" % + self.tenant_name) + self.logger.info("Update OpenStack creds informations") - self.creds.update({ - "tenant": self.tenant_name, + self.admin_creds = self.creds.copy() + self.admin_creds.update({ + "tenant": self.tenant_name }) - self.neutron_client = os_utils.get_neutron_client(self.creds) - self.nova_client = os_utils.get_nova_client(self.creds) + self.neutron_client = os_utils.get_neutron_client(self.admin_creds) + self.nova_client = os_utils.get_nova_client(self.admin_creds) self.creds.update({ + "tenant": self.tenant_name, "username": self.tenant_name, "password": self.tenant_name, }) @@ -219,4 +236,5 @@ class VnfOnBoardingBase(base.TestcaseBase): part = inspect.stack()[1][3] self.details[part]['status'] = 'FAIL' self.details[part]['result'] = error_msg + self.logger.error("Step failure:{}".format(error_msg)) raise Exception(error_msg)