Make Yardstick log level can be set by CLI 81/42981/3
authorxudan <xudan16@huawei.com>
Mon, 25 Sep 2017 08:44:38 +0000 (04:44 -0400)
committerxudan <xudan16@huawei.com>
Tue, 26 Sep 2017 07:11:58 +0000 (03:11 -0400)
1. Currently, the log level of yardstick is DEBUG and cannot be modified.
2. Make it can be changed from CLI.
3. When use dovetail run --debug, can see all Yardstick logs (including DEBUG)
   in dovetail.log.
4. When run without debug option, cannot see Yardstick debug logs in
   dovetail.logs.
5. yardstick.log always doesn't include debug logs.

JIRA: DOVETAIL-506

Change-Id: Iaafb61232a22e16fff2fa4605bf7e262b022085e
Signed-off-by: xudan <xudan16@huawei.com>
dovetail/conf/yardstick_config.yml
dovetail/container.py
dovetail/patch/0001-Adjust-Yardstick-HA-test-cases-SLA-and-log-level.patch [moved from dovetail/patch/0001-Adjust-Yardstick-HA-test-cases-SLA.patch with 82% similarity]
dovetail/report.py
dovetail/run.py

index f49d044..fea8cea 100644 (file)
@@ -20,7 +20,7 @@ yardstick:
   cmds:
     - 'mkdir -p /home/opnfv/yardstick/results/'
     - "cd /home/opnfv/repos/yardstick && source tests/ci/prepare_env.sh &&
-         yardstick -d task start tests/opnfv/test_cases/{{validate_testcase}}.yaml
+         yardstick task start tests/opnfv/test_cases/{{validate_testcase}}.yaml
          --output-file /home/opnfv/yardstick/results/{{testcase}}.out
          --task-args '{'file': '/home/opnfv/userconfig/pre_config/pod.yaml'}'"
   post_condition:
index 1404516..ff92fa4 100644 (file)
@@ -149,14 +149,19 @@ class Container(object):
 
         # CI_DEBUG is used for showing the debug logs of the upstream projects
         # BUILD_TAG is the unique id for this test
-        envs = ' -e CI_DEBUG=true -e NODE_NAME=master'
+        envs = ' -e NODE_NAME=master'
+        DEBUG = os.getenv('DEBUG')
+        if DEBUG is not None and DEBUG.lower() == "true":
+            envs = envs + ' -e CI_DEBUG=true'
+        else:
+            envs = envs + ' -e CI_DEBUG=false'
         envs = envs + ' -e BUILD_TAG=%s-%s' % (dovetail_config['build_tag'],
                                                testcase_name)
 
         hosts_config = ""
         hosts_config_file = os.path.join(dovetail_config['config_dir'],
                                          'hosts.yaml')
-        try:
+        if os.path.isfile(hosts_config_file):
             with open(hosts_config_file) as f:
                 hosts_info = yaml.safe_load(f)
             if hosts_info['hosts_info']:
@@ -165,10 +170,6 @@ class Container(object):
                     hosts_config += " --add-host "
                     hosts_config += str(host)
                 cls.logger.debug('Get hosts info {}.'.format(host))
-        except Exception:
-            cls.logger.warn('Failed to get hosts info in {}, '
-                            'maybe some issues with domain name resolution.'
-                            .format(hosts_config_file))
 
         config = ""
         if type.lower() == "functest":
@@ -1,7 +1,7 @@
-From 3beb6cdffa830f009d246e6352efa7ccf70463a0 Mon Sep 17 00:00:00 2001
-From: Jing Lu <hanazawarei@icloud.com>
-Date: Sat, 26 Aug 2017 10:07:52 +0800
-Subject: [PATCH] Adjust Yardstick HA test cases SLA
+From b7c13b5a7e07abdf4d3631049625461271fa5c5b Mon Sep 17 00:00:00 2001
+From: cvp <cvp@example.com>
+Date: Tue, 26 Sep 2017 03:59:54 +0000
+Subject: [PATCH] Adjust Yardstick HA test cases SLA and log level
 
 ---
  tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml | 4 ++--
@@ -10,7 +10,8 @@ Subject: [PATCH] Adjust Yardstick HA test cases SLA
  tests/opnfv/test_cases/opnfv_yardstick_tc047.yaml | 4 ++--
  tests/opnfv/test_cases/opnfv_yardstick_tc048.yaml | 4 ++--
  tests/opnfv/test_cases/opnfv_yardstick_tc053.yaml | 4 ++--
- 6 files changed, 12 insertions(+), 12 deletions(-)
+ yardstick/__init__.py                             | 2 +-
+ 7 files changed, 13 insertions(+), 13 deletions(-)
 
 diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc019.yaml
 index 5d3057d..c1d3645 100644
@@ -114,6 +115,19 @@ index 9e05cc8..e3f0934 100644
 
          -
            monitor_type: "openstack-cmd"
+diff --git a/yardstick/__init__.py b/yardstick/__init__.py
+index 2f5ae9f..973bfa2 100644
+--- a/yardstick/__init__.py
++++ b/yardstick/__init__.py
+@@ -44,7 +44,7 @@ def _init_logging():
+         _LOG_STREAM_HDLR.setLevel(logging.INFO)
+     # don't append to log file, clobber
+     _LOG_FILE_HDLR.setFormatter(_LOG_FORMATTER)
+-    _LOG_FILE_HDLR.setLevel(logging.DEBUG)
++    _LOG_FILE_HDLR.setLevel(logging.INFO)
+
+     del logging.root.handlers[:]
+     logging.root.addHandler(_LOG_STREAM_HDLR)
 --
-2.13.1 (Apple Git-89)
+1.9.1
 
index fa6a0ba..fa29d0c 100644 (file)
@@ -79,7 +79,7 @@ class Report(object):
                         'result': testcase.sub_testcase_passed(sub_test)
                     })
             report_obj['testcases_list'].append(testcase_inreport)
-        cls.logger.info(json.dumps(report_obj))
+        cls.logger.debug(json.dumps(report_obj))
         return report_obj
 
     @classmethod
index 1133b86..c749647 100755 (executable)
@@ -239,6 +239,14 @@ def env_init(logger):
     dt_utils.source_env(openrc)
 
 
+def check_hosts_file(logger):
+    hosts_file = os.path.join(dt_cfg.dovetail_config['config_dir'],
+                              'hosts.yaml')
+    if not os.path.isfile(hosts_file):
+        logger.warn("There is no hosts file {}, may be some issues with "
+                    "domain name resolution.".format(hosts_file))
+
+
 def main(*args, **kwargs):
     """Dovetail compliance test entry!"""
     build_tag = "daily-master-%s" % str(uuid.uuid1())
@@ -259,6 +267,7 @@ def main(*args, **kwargs):
     copy_patch_files(logger)
     dt_utils.check_docker_version(logger)
     validate_input(kwargs, dt_cfg.dovetail_config['validate_input'], logger)
+    check_hosts_file(logger)
     configs = filter_config(kwargs, logger)
 
     if configs is not None: