Use Exception instead of return code 15/28015/3
authorhelenyao <yaohelan@huawei.com>
Sat, 4 Feb 2017 01:58:01 +0000 (20:58 -0500)
committerhelenyao <yaohelan@huawei.com>
Mon, 13 Feb 2017 09:28:39 +0000 (04:28 -0500)
Checking Return status code after each step can be wrapped by Exception
catching
Also, the return code is not as informative as exception

Change-Id: Ic15791d1b8ee47e10cbae8bad46a2cb90ac2b46e
Signed-off-by: helenyao <yaohelan@huawei.com>
functest/opnfv_tests/openstack/rally/rally.py
functest/opnfv_tests/openstack/tempest/conf_utils.py
functest/opnfv_tests/openstack/tempest/tempest.py

index 16a872f..46d6a57 100644 (file)
@@ -526,14 +526,13 @@ class RallyBase(testcase_base.TestcaseBase):
             self._run_tests()
             self._generate_report()
             self._clean_up()
+            res = testcase_base.TestcaseBase.EX_OK
         except Exception as e:
             logger.error('Error with run: %s' % e)
-            return testcase_base.TestcaseBase.EX_RUN_ERROR
-        self.stop_time = time.time()
+            res = testcase_base.TestcaseBase.EX_RUN_ERROR
 
-        # If we are here, it means that the test case was successfully executed
-        # criteria is managed by the criteria Field
-        return testcase_base.TestcaseBase.EX_OK
+        self.stop_time = time.time()
+        return res
 
 
 class RallySanity(RallyBase):
index f013b44..03735ba 100644 (file)
@@ -13,8 +13,6 @@ import re
 import shutil
 import subprocess
 
-import opnfv.utils.constants as releng_constants
-
 from functest.utils.constants import CONST
 import functest.utils.functest_logger as ft_logger
 import functest.utils.functest_utils as ft_utils
@@ -114,12 +112,8 @@ def configure_tempest(deployment_dir, IMAGE_ID=None, FLAVOR_ID=None):
     given parameters
     """
     conf_verifier_result = configure_verifier(deployment_dir)
-    if conf_verifier_result == releng_constants.EXIT_RUN_ERROR:
-        return releng_constants.EXIT_RUN_ERROR
-    else:
-        configure_tempest_update_params(conf_verifier_result,
-                                        IMAGE_ID, FLAVOR_ID)
-        return releng_constants.EXIT_OK
+    configure_tempest_update_params(conf_verifier_result,
+                                    IMAGE_ID, FLAVOR_ID)
 
 
 def configure_tempest_update_params(tempest_conf_file,
@@ -191,15 +185,13 @@ def configure_verifier(deployment_dir):
         logger.info("Configuring the verifier...")
         cmd = "rally verify configure-verifier"
     ft_utils.execute_command(cmd)
-    logger.debug("Looking for tempest.conf file...")
 
+    logger.debug("Looking for tempest.conf file...")
     if not os.path.isfile(tempest_conf_file):
         logger.error("Tempest configuration file %s NOT found."
                      % tempest_conf_file)
-        return releng_constants.EXIT_RUN_ERROR
-
-    else:
-        return tempest_conf_file
+        raise Exception("Tempest configuration file %s NOT found."
+                        % tempest_conf_file)
 
 
 def configure_tempest_multisite(deployment_dir):
@@ -212,9 +204,8 @@ def configure_tempest_multisite(deployment_dir):
     logger.debug("Finding tempest.conf file...")
     tempest_conf_old = os.path.join(deployment_dir, 'tempest.conf')
     if not os.path.isfile(tempest_conf_old):
-        logger.error("Tempest configuration file %s NOT found."
-                     % tempest_conf_old)
-        return releng_constants.EXIT_RUN_ERROR
+        raise Exception("Tempest configuration file %s NOT found."
+                        % tempest_conf_old)
 
     # Copy tempest.conf to /home/opnfv/functest/results/tempest/
     cur_path = os.path.split(os.path.realpath(__file__))[0]
@@ -286,5 +277,3 @@ def configure_tempest_multisite(deployment_dir):
     config.set('kingbird', 'api_version', kingbird_api_version)
     with open(tempest_conf_file, 'wb') as config_file:
         config.write(config_file)
-
-    return releng_constants.EXIT_OK
index e1a223a..13d9e4e 100644 (file)
@@ -57,7 +57,7 @@ class TempestCommon(testcase_base.TestcaseBase):
             CONST.tempest_identity_tenant_name,
             CONST.tempest_identity_tenant_description)
         if not tenant_id:
-            logger.error("Error : Failed to create %s tenant"
+            logger.error("Failed to create %s tenant"
                          % CONST.tempest_identity_tenant_name)
 
         user_id = os_utils.create_user(keystone_client,
@@ -65,7 +65,7 @@ class TempestCommon(testcase_base.TestcaseBase):
                                        CONST.tempest_identity_user_password,
                                        None, tenant_id)
         if not user_id:
-            logger.error("Error : Failed to create %s user" %
+            logger.error("Failed to create %s user" %
                          CONST.tempest_identity_user_name)
 
         logger.debug("Creating private network for Tempest suite")
@@ -74,8 +74,8 @@ class TempestCommon(testcase_base.TestcaseBase):
             CONST.tempest_private_subnet_name,
             CONST.tempest_router_name,
             CONST.tempest_private_subnet_cidr)
-        if not network_dic:
-            return testcase_base.TestcaseBase.EX_RUN_ERROR
+        if network_dic is None:
+            raise Exception('Failed to create private network')
 
         if CONST.tempest_use_custom_images:
             # adding alternative image should be trivial should we need it
@@ -83,8 +83,8 @@ class TempestCommon(testcase_base.TestcaseBase):
             _, self.IMAGE_ID = os_utils.get_or_create_image(
                 CONST.openstack_image_name, conf_utils.GLANCE_IMAGE_PATH,
                 CONST.openstack_image_disk_format)
-            if not self.IMAGE_ID:
-                return testcase_base.TestcaseBase.EX_RUN_ERROR
+            if self.IMAGE_ID is None:
+                raise Exception('Failed to create image')
 
         if CONST.tempest_use_custom_flavors:
             # adding alternative flavor should be trivial should we need it
@@ -94,10 +94,8 @@ class TempestCommon(testcase_base.TestcaseBase):
                 CONST.openstack_flavor_ram,
                 CONST.openstack_flavor_disk,
                 CONST.openstack_flavor_vcpus)
-            if not self.FLAVOR_ID:
-                return testcase_base.TestcaseBase.EX_RUN_ERROR
-
-        return testcase_base.TestcaseBase.EX_OK
+            if self.FLAVOR_ID is None:
+                raise Exception('Failed to create flavor')
 
     def generate_test_list(self, verifier_repo_dir):
         logger.debug("Generating test case list...")
@@ -109,9 +107,8 @@ class TempestCommon(testcase_base.TestcaseBase):
                 shutil.copyfile(
                     conf_utils.TEMPEST_CUSTOM, conf_utils.TEMPEST_RAW_LIST)
             else:
-                logger.error("Tempest test list file %s NOT found."
-                             % conf_utils.TEMPEST_CUSTOM)
-                return testcase_base.TestcaseBase.EX_RUN_ERROR
+                raise Exception("Tempest test list file %s NOT found."
+                                % conf_utils.TEMPEST_CUSTOM)
         else:
             if self.MODE == 'smoke':
                 testr_mode = "smoke"
@@ -128,8 +125,6 @@ class TempestCommon(testcase_base.TestcaseBase):
                                   conf_utils.TEMPEST_RAW_LIST))
             ft_utils.execute_command(cmd)
 
-        return testcase_base.TestcaseBase.EX_OK
-
     def apply_tempest_blacklist(self):
         logger.debug("Applying tempest blacklist...")
         cases_file = self.read_file(conf_utils.TEMPEST_RAW_LIST)
@@ -164,7 +159,6 @@ class TempestCommon(testcase_base.TestcaseBase):
             else:
                 result_file.write(str(cases_line) + '\n')
         result_file.close()
-        return testcase_base.TestcaseBase.EX_OK
 
     def _parse_verification_id(line):
         first_pos = line.index("UUID=") + len("UUID=")
@@ -217,7 +211,7 @@ class TempestCommon(testcase_base.TestcaseBase):
         f_env.close()
 
     def parse_verifier_result(self):
-        if not self.VERIFICATION_ID:
+        if self.VERIFICATION_ID is None:
             raise Exception('Verification UUID not found')
 
         cmd_line = "rally verify show --uuid {}".format(self.VERIFICATION_ID)
@@ -274,33 +268,22 @@ class TempestCommon(testcase_base.TestcaseBase):
         if not os.path.exists(conf_utils.TEMPEST_RESULTS_DIR):
             os.makedirs(conf_utils.TEMPEST_RESULTS_DIR)
 
-        # Pre-configuration
-        res = self.create_tempest_resources()
-        if res != testcase_base.TestcaseBase.EX_OK:
-            return res
-
-        res = conf_utils.configure_tempest(self.DEPLOYMENT_DIR,
-                                           self.IMAGE_ID,
-                                           self.FLAVOR_ID)
-        if res != testcase_base.TestcaseBase.EX_OK:
-            return res
-
-        res = self.generate_test_list(self.VERIFIER_REPO_DIR)
-        if res != testcase_base.TestcaseBase.EX_OK:
-            return res
-
-        res = self.apply_tempest_blacklist()
-        if res != testcase_base.TestcaseBase.EX_OK:
-            return res
-
-        self.run_verifier_tests()
-        self.parse_verifier_result()
+        try:
+            self.create_tempest_resources()
+            conf_utils.configure_tempest(self.DEPLOYMENT_DIR,
+                                         self.IMAGE_ID,
+                                         self.FLAVOR_ID)
+            self.generate_test_list(self.VERIFIER_REPO_DIR)
+            self.apply_tempest_blacklist()
+            self.run_verifier_tests()
+            self.parse_verifier_result()
+            res = testcase_base.TestcaseBase.EX_OK
+        except Exception as e:
+            logger.error('Error with run: %s' % e)
+            res = testcase_base.TestcaseBase.EX_RUN_ERROR
 
         self.stop_time = time.time()
-
-        # If we are here, it means that the test case was successfully executed
-        # criteria is managed by the criteria Field
-        return testcase_base.TestcaseBase.EX_OK
+        return res
 
 
 class TempestSmokeSerial(TempestCommon):