dovetail tool: set a unique build_tag for each DoveTail test 95/31995/3
authorxudan <xudan16@huawei.com>
Tue, 28 Mar 2017 06:50:05 +0000 (06:50 +0000)
committerxudan <xudan16@huawei.com>
Thu, 30 Mar 2017 02:42:17 +0000 (02:42 +0000)
JIRA: DOVETAIL-379

1. create a uuid for each test, and set build_tag=daily-master-<uuid>
2. the reason it starts with "daily_master" is that it's the requirement of
   functest when push data to DB.

Change-Id: I9a59d5695a9f0d83bf4330379f1949a2a04f876c
Signed-off-by: xudan <xudan16@huawei.com>
dovetail/container.py
dovetail/report.py
dovetail/run.py

index 878b21c..89b732b 100644 (file)
@@ -62,8 +62,7 @@ class Container(object):
         ins_type = " -e INSTALLER_TYPE=vendor-specific"
         scenario = " -e DEPLOY_SCENARIO=default"
         node = " -e NODE_NAME=master"
-        tag = " -e BUILD_TAG=daily-master-001"
-        envs = "%s %s %s %s" % (ins_type, scenario, node, tag)
+        envs = "%s %s %s" % (ins_type, scenario, node)
 
         dovetail_config = dt_cfg.dovetail_config
         if dovetail_config['report_dest'].startswith("http"):
@@ -107,8 +106,10 @@ class Container(object):
         if not openrc:
             return None
 
-        # This is used for showing the debug logs of the upstream projects
+        # 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'
+        envs = envs + ' -e BUILD_TAG=%s' % dovetail_config['build_tag']
 
         config = ""
         if type.lower() == "functest":
index f2210cb..deabbdd 100644 (file)
@@ -13,7 +13,6 @@ import urllib2
 import re
 import os
 import datetime
-import uuid
 
 from pbr import version
 
@@ -47,7 +46,7 @@ class Report(object):
         report_obj['testsuite'] = testsuite_yaml['name']
         # TO DO: once dashboard url settled, adjust accordingly
         report_obj['dashboard'] = None
-        report_obj['validation_ID'] = str(uuid.uuid4())
+        report_obj['build_tag'] = dt_cfg.dovetail_config['build_tag']
         report_obj['upload_date'] =\
             datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S UTC")
         report_obj['duration'] = duration
@@ -89,7 +88,7 @@ class Report(object):
         report_txt += 'Version: %s\n' % report_data['version']
         report_txt += 'TestSuite: %s\n' % report_data['testsuite']
         report_txt += 'Result Dashboard: %s\n' % report_data['dashboard']
-        report_txt += 'Validation ID: %s\n' % report_data['validation_ID']
+        report_txt += 'Build Tag: %s\n' % report_data['build_tag']
         report_txt += 'Upload Date: %s\n' % report_data['upload_date']
         if report_data['duration'] == 0:
             report_txt += 'Duration: %s\n\n' % 'N/A'
index 2a2c567..828a2b7 100755 (executable)
@@ -12,6 +12,7 @@ import click
 import os
 import copy
 import time
+import uuid
 
 import utils.dovetail_logger as dt_logger
 import utils.dovetail_utils as dt_utils
@@ -154,6 +155,8 @@ def clean_results_dir():
 
 def main(*args, **kwargs):
     """Dovetail compliance test entry!"""
+    build_tag = "daily-master-%s" % str(uuid.uuid4())
+    dt_cfg.dovetail_config['build_tag'] = build_tag
     clean_results_dir()
     if kwargs['debug']:
         os.environ['DEBUG'] = 'true'
@@ -162,6 +165,7 @@ def main(*args, **kwargs):
     logger.info('================================================')
     logger.info('Dovetail compliance: %s!', (kwargs['testsuite']))
     logger.info('================================================')
+    logger.info('Build tag: %s', dt_cfg.dovetail_config['build_tag'])
     validate_input(kwargs, dt_cfg.dovetail_config['validate_input'], logger)
     configs = filter_config(kwargs, logger)