From: Morgan Richomme Date: Tue, 20 Sep 2016 07:26:13 +0000 (+0000) Subject: Merge "only publish testcases appear in testcases.py to save time" X-Git-Tag: colorado.1.0~10 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=e0791c1b3865a025c5f29b17cf830888715ce0ae;hp=6f2bd06f607190d54a1268ad6813b4bf501eac1f;p=releng.git Merge "only publish testcases appear in testcases.py to save time" --- diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index 25987328d..f6b48656a 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -228,46 +228,46 @@ - trigger: name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-master-trigger' triggers: - - timed: '0 3,15 * * 1' + - timed: '0 0 * * 1' - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger' triggers: - - timed: '0 3,15 * * 2' + - timed: '0 0 * * 2' - trigger: name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger' triggers: - - timed: '0 3,15 * * 3' + - timed: '0 0 * * 3' - trigger: name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-master-trigger' triggers: - - timed: '0 3,15 * * 4' + - timed: '0 0 * * 4' - trigger: name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-master-trigger' triggers: - - timed: '0 3,15 * * 5' + - timed: '0 0 * * 5' #---------------------------------------------------------------------- # Enea Armband CI Baremetal Triggers running against colorado branch #---------------------------------------------------------------------- - trigger: name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-colorado-trigger' triggers: - - timed: '0 4,16 * * 1' + - timed: '0 4 * * *' - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-colorado-trigger' triggers: - - timed: '0 4,16 * * 2' + - timed: '0 8 * * *' - trigger: name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-colorado-trigger' triggers: - - timed: '0 4,16 * * 3' + - timed: '0 12 * * *' - trigger: name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-colorado-trigger' triggers: - - timed: '0 4,16 * * 4' + - timed: '0 16 * * *' - trigger: name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-colorado-trigger' triggers: - - timed: '0 4,16 * * 5' + - timed: '0 20 * * *' #--------------------------------------------------------------- # Enea Armband CI Virtual Triggers running against master branch #--------------------------------------------------------------- diff --git a/jjb/bottlenecks/bottlenecks-project-jobs.yml b/jjb/bottlenecks/bottlenecks-project-jobs.yml index fffc22def..523d363f7 100644 --- a/jjb/bottlenecks/bottlenecks-project-jobs.yml +++ b/jjb/bottlenecks/bottlenecks-project-jobs.yml @@ -71,9 +71,8 @@ - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' builders: - - shell: | - echo "bottlenecks: verify job" - #TO DO: this should be changed when the unittest ready + - bottlenecks-hello + #- bottlenecks-unit-tests - job-template: name: 'bottlenecks-merge-{stream}' @@ -107,8 +106,8 @@ branch-pattern: '**/{branch}' builders: - - shell: | - echo "bottlenecks: merge" + - bottlenecks-hello + #- bottlenecks-unit-tests - job-template: name: 'bottlenecks-{suite}-upload-artifacts-{stream}' @@ -195,3 +194,35 @@ echo "Bottlenecks: cleanup cache used for storage downloaded packages" /bin/rm -rf $CACHE_DIR + +- builder: + name: bottlenecks-unit-tests + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + + echo "Running unit tests..." + cd $WORKSPACE + virtualenv $WORKSPACE/bottlenecks_venv + source $WORKSPACE/bottlenecks_venv/bin/activate + + # install python packages + easy_install -U setuptools + easy_install -U pip + pip install -r requirements.txt + + # unit tests + /bin/bash $WORKSPACE/tests.sh + + deactivate + +- builder: + name: bottlenecks-hello + builders: + - shell: | + #!/bin/bash + set -o errexit + + echo "hello" diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml index fcbd1b0e7..5f32db780 100644 --- a/jjb/doctor/doctor.yml +++ b/jjb/doctor/doctor.yml @@ -18,6 +18,7 @@ installer: - apex: slave-label: 'ool-virtual1' + pod: 'ool-virtual1' inspector: - sample @@ -73,6 +74,8 @@ - job-template: name: 'doctor-verify-{installer}-{inspector}-{stream}' + node: '{slave-label}' + parameters: - project-parameter: project: '{project}' @@ -122,7 +125,7 @@ builders: - trigger-builds: - - project: 'functest-{installer}-virtual-suite-{stream}' + - project: 'functest-{installer}-{pod}-suite-{stream}' current-parameters: true predefined-parameters: | FUNCTEST_SUITE_NAME=doctor diff --git a/jjb/functest/functest-ci-jobs.yml b/jjb/functest/functest-ci-jobs.yml index d5b99b2a3..4747835b1 100644 --- a/jjb/functest/functest-ci-jobs.yml +++ b/jjb/functest/functest-ci-jobs.yml @@ -168,6 +168,11 @@ slave-label: '{pod}' installer: fuel <<: *colorado +# PODs for verify jobs triggered by each patch upload + - ool-virtual1: + slave-label: '{pod}' + installer: apex + <<: *master #-------------------------------- testsuite: diff --git a/jjb/opnfv/opnfv-docker.sh b/jjb/opnfv/opnfv-docker.sh index 07198c608..c5edf7cc3 100644 --- a/jjb/opnfv/opnfv-docker.sh +++ b/jjb/opnfv/opnfv-docker.sh @@ -71,6 +71,8 @@ if [[ "$DOCKER_REPO_NAME" == "opnfv/bottlenecks" ]]; then cd $WORKSPACE/ci/docker elif [[ "$DOCKER_REPO_NAME" == "opnfv/cperf" ]]; then cd $WORKSPACE/docker +elif [[ "$DOCKER_REPO_NAME" == "opnfv/dovetail" ]]; then + cd $WORKSPACE/docker elif [[ "$DOCKER_REPO_NAME" == "opnfv/functest" ]]; then cd $WORKSPACE/docker elif [[ "$DOCKER_REPO_NAME" == "opnfv/qtip" ]]; then diff --git a/jjb/opnfv/opnfv-docker.yml b/jjb/opnfv/opnfv-docker.yml index 4250eef64..f313b3b92 100644 --- a/jjb/opnfv/opnfv-docker.yml +++ b/jjb/opnfv/opnfv-docker.yml @@ -16,6 +16,9 @@ jobs: - '{project}-docker-build-push-{stream}' - 'yardstick-docker-build-push-{stream}' + #dovetail not sync with release, an independent job + #only master by now, will adjust accordingly in future + - 'dovetail-docker-build-push-{dovetailstream}' stream: - master: @@ -24,6 +27,10 @@ - colorado: branch: 'stable/{stream}' disabled: false + dovetailstream: + - master: + branch: '{dovetailstream}' + disabled: false ######################## # job templates @@ -113,3 +120,50 @@ triggers: - pollscm: cron: "*/30 * * * *" + +- job-template: + name: 'dovetail-docker-build-push-{dovetailstream}' + + disabled: '{obj:disabled}' + + parameters: + - project-parameter: + project: 'dovetail' + - 'opnfv-build-ubuntu-defaults' + - string: + name: PUSH_IMAGE + default: "true" + description: "To enable/disable pushing the image to Dockerhub." + #BASE_VERSION parameter is used for version control + #by now, only master branch is used, this parameter takes no effect + #once branch control settled, should be adjusted togather with + #opnfv-docker.sh and caculate_version.sh + - string: + name: BASE_VERSION + default: "1.0" + description: "Base version to be used." + - string: + name: DOCKER_REPO_NAME + default: "opnfv/dovetail" + description: "Dockerhub repo to be pushed to." + - string: + name: UPDATE_LATEST_STABLE + default: "false" + description: "This will update the latest_stable image only." + - string: + name: STABLE_TAG + description: "If above option is true, this is the tag to be pulled." + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - shell: + !include-raw-escape: ./opnfv-docker.sh + + triggers: + - pollscm: + cron: "*/30 * * * *" diff --git a/utils/calculate_version.sh b/utils/calculate_version.sh index 608a3bd73..cf929dd5e 100755 --- a/utils/calculate_version.sh +++ b/utils/calculate_version.sh @@ -35,11 +35,13 @@ function docker_version() { fi tag_json=$(curl $url_tag 2>/dev/null | python -mjson.tool | grep ${BASE_VERSION} | head -1) #e.g. tag_json= "name": "brahmaputra.0.2", + #special case, for dovetail, not sync with release, tag_json name not headed with arno, etc if [ "${tag_json}" == "" ]; then echo ${BASE_VERSION}.0 else tag=$(echo $tag_json | awk '{print $2}' | sed 's/\,//' | sed 's/\"//g') #e.g.: tag=brahmaputra.0.2 + #special case, for dovetail, not sync with release tag_current_version=$(echo $tag | sed 's/.*\.//') tag_new_version=$(($tag_current_version+1)) #e.g.: tag=brahmaputra.0.3 diff --git a/utils/test/reporting/yardstick/img/gauge_0.png b/utils/test/reporting/yardstick/img/gauge_0.png new file mode 100644 index 000000000..ecefc0e66 Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_0.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_100.png b/utils/test/reporting/yardstick/img/gauge_100.png new file mode 100644 index 000000000..e199e1561 Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_100.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_16.7.png b/utils/test/reporting/yardstick/img/gauge_16.7.png new file mode 100644 index 000000000..3e3993c3b Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_16.7.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_25.png b/utils/test/reporting/yardstick/img/gauge_25.png new file mode 100644 index 000000000..4923659b9 Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_25.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_33.3.png b/utils/test/reporting/yardstick/img/gauge_33.3.png new file mode 100644 index 000000000..364574b4a Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_33.3.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_41.7.png b/utils/test/reporting/yardstick/img/gauge_41.7.png new file mode 100644 index 000000000..8c3e910fa Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_41.7.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_50.png b/utils/test/reporting/yardstick/img/gauge_50.png new file mode 100644 index 000000000..2874b9fcf Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_50.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_58.3.png b/utils/test/reporting/yardstick/img/gauge_58.3.png new file mode 100644 index 000000000..beedc8aa9 Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_58.3.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_66.7.png b/utils/test/reporting/yardstick/img/gauge_66.7.png new file mode 100644 index 000000000..93f44d133 Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_66.7.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_75.png b/utils/test/reporting/yardstick/img/gauge_75.png new file mode 100644 index 000000000..9fc261ff8 Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_75.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_8.3.png b/utils/test/reporting/yardstick/img/gauge_8.3.png new file mode 100644 index 000000000..59f86571e Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_8.3.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_83.3.png b/utils/test/reporting/yardstick/img/gauge_83.3.png new file mode 100644 index 000000000..27ae4ec54 Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_83.3.png differ diff --git a/utils/test/reporting/yardstick/img/gauge_91.7.png b/utils/test/reporting/yardstick/img/gauge_91.7.png new file mode 100644 index 000000000..280865714 Binary files /dev/null and b/utils/test/reporting/yardstick/img/gauge_91.7.png differ diff --git a/utils/test/reporting/yardstick/reporting-status.py b/utils/test/reporting/yardstick/reporting-status.py index 57a95947b..345acef42 100644 --- a/utils/test/reporting/yardstick/reporting-status.py +++ b/utils/test/reporting/yardstick/reporting-status.py @@ -26,6 +26,7 @@ logger.info("* Data retention = %s days *" % conf.PERIOD) logger.info("* *") logger.info("*******************************************") + # For all the versions for version in conf.versions: # For all the installers @@ -38,8 +39,6 @@ for version in conf.versions: if not scenario_results.has_key(k): scenario_results[k] = [] scenario_results[k] += stable_result[k] - for k,v in scenario_results.items(): - scenario_results[k] = v[0:conf.LASTEST_TESTS] scenario_result_criteria = {} # From each scenarios get results list @@ -47,23 +46,26 @@ for version in conf.versions: logger.info("---------------------------------") logger.info("installer %s, version %s, scenario %s:" % (installer, version, s)) - s_status = 'KO' - scenario_criteria = len(s_result) - scenario_score = 0 - + ten_criteria = len(s_result) + ten_score = 0 for v in s_result: - if v['criteria'] == 'SUCCESS': - scenario_score += 1 + ten_score += v - if scenario_score == scenario_criteria and scenario_criteria == 4: - s_status = 'OK' - logger.info(">>>>> scenario OK, save the information") - else: - logger.info(">>>> scenario not OK, score = %s/%s" % (scenario_score, scenario_criteria)) + four_result = s_result[:conf.LASTEST_TESTS] + four_criteria = len(four_result) + four_score = 0 + for v in four_result: + four_score += v - s_score = str(scenario_score) + '/' + str(scenario_criteria) - scenario_result_criteria[s] = sr.ScenarioResult(s_status, s_score) + s_status = str(utils.get_status(four_result, s_result)) + s_four_score = str(four_score) + '/' + str(four_criteria) + s_ten_score = str(ten_score) + '/' + str(ten_criteria) + scenario_result_criteria[s] = sr.ScenarioResult(s_status, s_four_score, s_ten_score) + if '100' == s_status: + logger.info(">>>>> scenario OK, save the information") + else: + logger.info(">>>> scenario not OK, last 4 iterations = %s, last 10 days = %s" % (s_four_score, s_ten_score)) logger.info("--------------------------") templateLoader = jinja2.FileSystemLoader(conf.REPORTING_PATH) diff --git a/utils/test/reporting/yardstick/reportingConf.py b/utils/test/reporting/yardstick/reportingConf.py index 447b428a8..52d999740 100644 --- a/utils/test/reporting/yardstick/reportingConf.py +++ b/utils/test/reporting/yardstick/reportingConf.py @@ -13,8 +13,8 @@ installers = ["apex", "compass", "fuel", "joid"] versions = ["master", "colorado"] -# get data in the past 7 days -PERIOD = 7 +# get data in the past 10 days +PERIOD = 10 # get the lastest 4 test results to determinate the success criteria LASTEST_TESTS = 4 diff --git a/utils/test/reporting/yardstick/reportingUtils.py b/utils/test/reporting/yardstick/reportingUtils.py index 06bcd4926..71eb9196c 100644 --- a/utils/test/reporting/yardstick/reportingUtils.py +++ b/utils/test/reporting/yardstick/reportingUtils.py @@ -45,17 +45,59 @@ def getScenarioStatus(installer, version): print 'Got an error code:', e scenario_results = {} + result_dict = {} if test_results is not None: for r in test_results: - if r['stop_date'] != 'None': + if r['stop_date'] != 'None' and r['criteria'] is not None: if not r['scenario'] in scenario_results.keys(): scenario_results[r['scenario']] = [] scenario_results[r['scenario']].append(r) for k,v in scenario_results.items(): - scenario_results[k] = v[:conf.LASTEST_TESTS] + # scenario_results[k] = v[:conf.LASTEST_TESTS] + s_list = [] + for element in v: + if element['criteria'] == 'SUCCESS': + s_list.append(1) + else: + s_list.append(0) + result_dict[k] = s_list - return scenario_results + # return scenario_results + return result_dict + +def subfind(given_list, pattern_list): + for i in range(len(given_list)): + if given_list[i] == pattern_list[0] and given_list[i:i + conf.LASTEST_TESTS] == pattern_list: + return True + return False + +def get_percent(status): + + if status * 100 % 6: + return round(float(status) * 100 / 6, 1) + else: + return status * 100 / 6 + +def get_status(four_list, ten_list): + four_score = 0 + ten_score = 0 + + for v in four_list: + four_score += v + for v in ten_list: + ten_score += v + + if four_score == conf.LASTEST_TESTS: + status = 6 + elif subfind(ten_list, [1, 1, 1, 1]): + status = 5 + elif ten_score == 0: + status = 0 + else: + status = four_score + 1 + + return get_percent(status) def _test(): diff --git a/utils/test/reporting/yardstick/scenarioResult.py b/utils/test/reporting/yardstick/scenarioResult.py index 743346adc..61ffb2ce7 100644 --- a/utils/test/reporting/yardstick/scenarioResult.py +++ b/utils/test/reporting/yardstick/scenarioResult.py @@ -9,12 +9,16 @@ class ScenarioResult(object): - def __init__(self, status, score=0): + def __init__(self, status, four_days_score='', ten_days_score=''): self.status = status - self.score = score + self.four_days_score = four_days_score + self.ten_days_score = ten_days_score def getStatus(self): return self.status - def getScore(self): - return self.score + def getTenDaysScore(self): + return self.ten_days_score + + def getFourDaysScore(self): + return self.four_days_score diff --git a/utils/test/reporting/yardstick/template/index-status-tmpl.html b/utils/test/reporting/yardstick/template/index-status-tmpl.html index ff1a619f1..602ce8a74 100644 --- a/utils/test/reporting/yardstick/template/index-status-tmpl.html +++ b/utils/test/reporting/yardstick/template/index-status-tmpl.html @@ -40,21 +40,19 @@

List of last scenarios ({{version}}) run over the last {{period}} days

- + - + + {% for scenario,result in scenario_results.iteritems() -%} - + + {%- endfor %}
ScenarioScenario StatusScoreLast 4 IterationsLast 10 Days
{{scenario}} - {%if scenario_results[scenario].getStatus() is sameas "OK" -%} - - {%- else -%} - - {%- endif %} + {{scenario_results[scenario].getScore()}}{{scenario_results[scenario].getFourDaysScore()}}{{scenario_results[scenario].getTenDaysScore()}}