<<: *master
- 'os-odl-sfc-ha':
<<: *master
- - 'os-odl-fdio-dvr-noha':
+ - 'os-odl-fdio_dvr-noha':
<<: *master
- - 'os-odl-fdio-dvr-ha':
+ - 'os-odl-fdio_dvr-ha':
<<: *master
- 'os-nosdn-nofeature-noha':
<<: *euphrates
<<: *euphrates
- 'os-odl-sfc-ha':
<<: *euphrates
- - 'os-odl-fdio-dvr-noha':
+ - 'os-odl-fdio_dvr-noha':
<<: *euphrates
- - 'os-odl-fdio-dvr-ha':
+ - 'os-odl-fdio_dvr-ha':
+ <<: *euphrates
+ - 'os-nosdn-calipso-noha':
<<: *euphrates
platform:
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl-fdio-dvr-noha-baremetal-master'
+ - name: 'apex-os-odl-fdio_dvr-noha-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl-fdio-dvr-ha-baremetal-master'
+ - name: 'apex-os-odl-fdio_dvr-ha-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl-fdio-dvr-noha-baremetal-euphrates'
+ - name: 'apex-os-odl-fdio_dvr-noha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-odl-fdio_dvr-ha-baremetal-euphrates'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl-fdio-dvr-ha-baremetal-euphrates'
+ - name: 'apex-os-nosdn-calipso-noha-baremetal-euphrates'
node-parameters: false
current-parameters: false
predefined-parameters: |
- 'os-nosdn-kvm_ovs_dpdk-ha'
- 'os-odl-sfc-noha'
- 'os-odl-sfc-ha'
- - 'os-odl-fdio-dvr-noha'
- - 'os-odl-fdio-dvr-ha'
+ - 'os-odl-fdio_dvr-noha'
+ - 'os-odl-fdio_dvr-ha'
euphrates:
- 'os-nosdn-nofeature-noha'
- 'os-nosdn-nofeature-ha'
- 'os-nosdn-kvm_ovs_dpdk-ha'
- 'os-odl-sfc-noha'
- 'os-odl-sfc-ha'
- - 'os-odl-fdio-dvr-noha'
- - 'os-odl-fdio-dvr-ha'
+ - 'os-odl-fdio_dvr-noha'
+ - 'os-odl-fdio_dvr-ha'
+ - 'os-nosdn-calipso-noha'
danube:
- 'os-nosdn-nofeature-noha'
- 'os-nosdn-nofeature-ha'
label: '{scenario}'
steps:
- trigger-builds:
- - project: 'dovetail-{installer}-{pod}-proposed_tests-{stream}'
+ - project: 'dovetail-{installer}-{pod}-proposed_tests-master'
current-parameters: false
predefined-parameters:
DEPLOY_SCENARIO={scenario}
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'opnfv-build-defaults'
+ - 'opnfv-build-centos-defaults'
scm:
EXITSTATUS=1
fi
- awk -F"ERROR - " '{print $2}' securityaudit.log | sed -e "s/\"/\\\\\"/g;s/\'/\\\\/g"> shortlog
+ grep 'ERROR' securityaudit.log | awk -F"ERROR - " '{ print $2 }' | tr -d "\'\"" > shortlog
ssh -p 29418 gerrit.opnfv.org \
"gerrit review -p $GERRIT_PROJECT \
- 'os-odl-sfc-ha':
disabled: false
auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
- - 'os-nosdn-dpdk-ha':
+ - 'os-nosdn-ovs_dpdk-ha':
disabled: false
auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
- 'k8-nosdn-nofeature-ha':
- 'os-odl-sfc-noha':
disabled: false
auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
- - 'os-nosdn-dpdk-noha':
+ - 'os-nosdn-ovs_dpdk-noha':
disabled: false
auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
build-step-failure-threshold: 'never'
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
+ - conditional-step:
+ condition-kind: and
+ condition-operands:
+ - condition-kind: regex-match
+ regex: os-nosdn-nofeature-ha
+ label: '{scenario}'
+ steps:
+ - trigger-builds:
+ - project: 'bottlenecks-compass-posca_stress_ping-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
- job-template:
name: 'compass-deploy-{pod}-daily-{stream}'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-ha-baremetal-centos-master-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-ha-baremetal-centos-master-trigger'
triggers:
- timed: ''
- trigger:
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-noha-baremetal-centos-master-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-noha-baremetal-centos-master-trigger'
triggers:
- timed: ''
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-ha-huawei-pod7-danube-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-ha-huawei-pod7-danube-trigger'
triggers:
- timed: ''
- trigger:
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-noha-huawei-pod7-danube-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-noha-huawei-pod7-danube-trigger'
triggers:
- timed: ''
#--------------------
triggers:
- timed: '0 14 * * *'
- trigger:
- name: 'compass-os-nosdn-dpdk-ha-baremetal-master-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-ha-baremetal-master-trigger'
triggers:
- timed: '0 16 * * *'
- trigger:
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-noha-baremetal-master-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-noha-baremetal-master-trigger'
triggers:
- timed: ''
triggers:
- timed: '0 13 * * *'
- trigger:
- name: 'compass-os-nosdn-dpdk-ha-baremetal-euphrates-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-ha-baremetal-euphrates-trigger'
triggers:
- timed: '0 9 * * *'
- trigger:
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-noha-baremetal-euphrates-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-noha-baremetal-euphrates-trigger'
triggers:
- timed: ''
triggers:
- timed: '0 13 * * *'
- trigger:
- name: 'compass-os-nosdn-dpdk-ha-virtual-master-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-ha-virtual-master-trigger'
triggers:
- timed: '0 17 * * *'
- trigger:
triggers:
- timed: '0 20 * * *'
- trigger:
- name: 'compass-os-nosdn-dpdk-noha-virtual-master-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-noha-virtual-master-trigger'
triggers:
- timed: '0 11 * * *'
triggers:
- timed: '0 16 * * *'
- trigger:
- name: 'compass-os-nosdn-dpdk-ha-virtual-euphrates-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-ha-virtual-euphrates-trigger'
triggers:
- timed: '0 14 * * *'
- trigger:
triggers:
- timed: '0 19 * * *'
- trigger:
- name: 'compass-os-nosdn-dpdk-noha-virtual-euphrates-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-noha-virtual-euphrates-trigger'
triggers:
- timed: '0 12 * * *'
export NETWORK_CONF_FILE=network_onos.yml
elif [[ "${DEPLOY_SCENARIO}" =~ "-openo" ]]; then
export NETWORK_CONF_FILE=network_openo.yml
-elif [[ "${DEPLOY_SCENARIO}" =~ "-dpdk" ]]; then
+elif [[ "${DEPLOY_SCENARIO}" =~ "-ovs_dpdk" ]]; then
export NETWORK_CONF_FILE=network_dpdk.yml
else
export NETWORK_CONF_FILE=network.yml
# CI PODs
#--------------------------------
pod:
- - baremetal:
- slave-label: daisy-baremetal
- <<: *master
+# - baremetal:
+# slave-label: daisy-baremetal
+# <<: *master
- virtual:
slave-label: daisy-virtual
<<: *master
#--------------------------------
# None-CI PODs
#--------------------------------
+ - baremetal:
+ slave-label: zte-pod3
+ <<: *master
#--------------------------------
# scenarios
- euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
#####################################
# patch merge phases
#####################################
branch: 'stable/{stream}'
dovetail-branch: master
gs-pathname: '/{stream}'
- docker-tag: 'cvp.0.6.0'
+ docker-tag: 'cvp.0.7.0'
#-----------------------------------
# POD, PLATFORM, AND BRANCH MAPPING
echo "Dovetail: Pulling image opnfv/dovetail:${DOCKER_TAG}"
docker pull opnfv/dovetail:$DOCKER_TAG >$redirect
+env4bgpvpn="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}"
+
cmd="docker run ${opts} -e DOVETAIL_HOME=${DOVETAIL_HOME} ${docker_volume} ${dovetail_home_volume} \
- ${sshkey} opnfv/dovetail:${DOCKER_TAG} /bin/bash"
+ ${sshkey} ${env4bgpvpn} opnfv/dovetail:${DOCKER_TAG} /bin/bash"
echo "Dovetail: running docker run command: ${cmd}"
${cmd} >${redirect}
sleep 5
label: '{scenario}'
steps:
- trigger-builds:
- - project: 'dovetail-fuel-{pod}-proposed_tests-{stream}'
+ - project: 'dovetail-fuel-{pod}-proposed_tests-master'
current-parameters: false
predefined-parameters:
DEPLOY_SCENARIO={scenario}
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-zte-pod1-daily-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 10 * * *'
- trigger:
name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-master-trigger'
triggers:
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-zte-pod1-daily-danube-trigger'
triggers:
- - timed: '0 2 * * 6'
+ - timed: ''
- trigger:
name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-danube-trigger'
triggers:
- - timed: '0 2 * * 1,3,5'
+ - timed: ''
- trigger:
name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-danube-trigger'
triggers:
set +o pipefail
run_tiers() {
- cmd_opt='prepare_env start && run_tests -r -t all'
- [[ $BUILD_TAG =~ "suite" ]] && cmd_opt='prepare_env start && run_tests -t all'
+ tiers=$1
+ cmd_opt="prepare_env start && run_tests -r -t all"
+ [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="prepare_env start && run_tests -t all"
ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
echo 0 > ${ret_val_file}
for tier in ${tiers[@]}; do
- FUNCTEST_IMAGE=opnfv/functest-${tier}
+ FUNCTEST_IMAGE=opnfv/functest-${tier}:${DOCKER_TAG}
echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..."
docker pull ${FUNCTEST_IMAGE}>/dev/null
cmd="docker run --privileged=true ${envs} ${volumes} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
eval ${cmd}
ret_value=$?
if [ ${ret_value} != 0 ]; then
- echo ${ret_value} > ${ret_val_file}
+ echo ${ret_value} > ${ret_val_file}
+ if [ ${tier} == 'healthcheck' ]; then
+ echo "Healthcheck tier failed. Exiting Functest..."
+ break
+ fi
fi
done
}
run_test() {
test_name=$1
- cmd_opt='prepare_env start && run_tests -r -t $test_name'
- [[ $BUILD_TAG =~ "suite" ]] && cmd_opt='prepare_env start && run_tests -t $test_name'
+ cmd_opt="prepare_env start && run_tests -r -t ${test_name}"
+ [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="prepare_env start && run_tests -t ${test_name}"
ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
echo 0 > ${ret_val_file}
# Determine which Functest image should be used for the test case
case ${test_name} in
connection_check|api_check|snaps_health_check)
- FUNCTEST_IMAGE=opnfv/functest-healthcheck ;;
+ FUNCTEST_IMAGE=opnfv/functest-healthcheck:${DOCKER_TAG} ;;
vping_ssh|vping_userdata|tempest_smoke_serial|rally_sanity|refstack_defcore|odl|odl_netvirt|fds|snaps_smoke)
- FUNCTEST_IMAGE=opnfv/functest-smoke ;;
+ FUNCTEST_IMAGE=opnfv/functest-smoke:${DOCKER_TAG} ;;
tempest_full_parallel|tempest_custom|rally_full)
- FUNCTEST_IMAGE=opnfv/functest-components ;;
+ FUNCTEST_IMAGE=opnfv/functest-components:${DOCKER_TAG} ;;
cloudify_ims|orchestra_openims|orchestra_clearwaterims|vyos_vrouter)
- FUNCTEST_IMAGE=opnfv/functest-vnf ;;
+ FUNCTEST_IMAGE=opnfv/functest-vnf:${DOCKER_TAG} ;;
promise|doctor-notification|bgpvpn|functest-odl-sfc|domino-multinode|barometercollectd)
- FUNCTEST_IMAGE=opnfv/functest-features ;;
- parser)
- FUNCTEST_IMAGE=opnfv/functest-parser ;;
+ FUNCTEST_IMAGE=opnfv/functest-features:${DOCKER_TAG} ;;
+ parser-basics)
+ FUNCTEST_IMAGE=opnfv/functest-parser:${DOCKER_TAG} ;;
*)
echo "Unkown test case $test_name"
exit 1
DEPLOY_TYPE=baremetal
[[ $BUILD_TAG =~ "virtual" ]] && DEPLOY_TYPE=virt
HOST_ARCH=$(uname -m)
+DOCKER_TAG=${DOCKER_TAG:-latest}
# Prepare OpenStack credentials volume
rc_file=${HOME}/opnfv-openrc.sh
set +e
[[ "$PUSH_RESULTS_TO_DB" == "true" ]] && flags+="-r"
-if [ "$BRANCH" == 'master' ]; then
- cmd="run_tests -t all ${flags}"
-else
- cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/run_tests.py -t all ${flags}"
-fi
+cmd="run_tests -t all ${flags}"
container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
tests=($(echo $FUNCTEST_SUITE_NAME | tr "," "\n"))
for test in ${tests[@]}; do
- if [ "$BRANCH" == 'master' ]; then
- cmd="run_tests -t $test"
- else
- cmd="python /home/opnfv/repos/functest/functest/ci/run_tests.py -t $test"
- fi
+ cmd="run_tests -t $test"
docker exec $container_id $cmd
let global_ret_val+=$?
done
exit 1
fi
-if [ "$BRANCH" == 'master' ]; then
- cmd="prepare_env start"
-else
- cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/prepare_env.py start"
-fi
-
-
+cmd="prepare_env start"
echo "Executing command inside the docker: ${cmd}"
docker exec ${container_id} ${cmd}
- string:
name: BRIDGE
default: 'br7'
- description: 'pxe bridge for booting of Fuel master'
+ description: 'pxe bridge for booting of Daisy master'
- parameter:
name: 'zte-pod3-defaults'
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: INSTALLER_IP
+ default: '10.20.0.2'
+ description: 'IP of the installer'
- string:
name: BRIDGE
default: 'br0'
- description: 'pxe bridge for booting of Fuel master'
+ description: 'pxe bridge for booting of Daisy master'
- parameter:
name: zte-pod4-defaults
disabled: false
- 'test':
slave-label: 'intel-pod10'
- disabled: true
+ disabled: false
#####################################
# patch verification phases
#####################################
- job-template:
name: 'qtip-{qpi}-{installer}-{stream}'
disabled: false
+
parameters:
- project-parameter:
project: '{project}'
- string:
name: TEST_SUITE
default: '{qpi}'
+ - string:
+ name: TESTAPI_URL
+ default: 'http://testresults.opnfv.org/test/api/v1'
+ - string:
+ name: OPNFV_RELEASE
+ default: '{stream}'
scm:
- git-scm
+ wrappers:
+ - timeout:
+ elastic-percentage: 150
+ elastic-default-timeout: 30
+ abort: true
+ type: elastic
+ - timestamps
+
triggers:
- 'qtip-daily'
echo "--------------------------------------------------------"
echo
+count=30 # docker build jobs might take up to ~30 min
+while [[ -n `ps -ef| grep 'docker build' | grep $DOCKER_REPO_NAME | grep -v grep` ]]; do
+ echo "Build or cleanup of $DOCKER_REPO_NAME in progress. Waiting..."
+ sleep 60
+ count=$(( $count - 1 ))
+ if [ $count -eq 0 ]; then
+ echo "Timeout. Aborting..."
+ exit 1
+ fi
+done
+
# Remove previous running containers if exist
if [[ -n "$(docker ps -a | grep $DOCKER_REPO_NAME)" ]]; then
echo "Removing existing $DOCKER_REPO_NAME containers..."
<<: *master
<<: *other-receivers
# projects with jobs for Danube
- - 'bottlenecks':
- project: 'bottlenecks'
- <<: *danube
- <<: *other-receivers
- 'qtip':
project: 'qtip'
<<: *euphrates
<<: *euphrates
<<: *other-receivers
# projects with jobs for euphrates
- - 'functest':
- project: 'functest'
- <<: *euphrates
- <<: *functest-receivers
- - 'functest-core':
- project: 'functest'
- dockerdir: 'docker/core'
- <<: *euphrates
- <<: *functest-receivers
- - 'functest-healthcheck':
- project: 'functest'
- dockerdir: 'docker/healthcheck'
- <<: *euphrates
- <<: *functest-receivers
- - 'functest-smoke':
- project: 'functest'
- dockerdir: 'docker/smoke'
- <<: *euphrates
- <<: *functest-receivers
- - 'functest-features':
- project: 'functest'
- dockerdir: 'docker/features'
- <<: *euphrates
- <<: *functest-receivers
- - 'functest-components':
- project: 'functest'
- dockerdir: 'docker/components'
- <<: *euphrates
- <<: *functest-receivers
- - 'functest-vnf':
- project: 'functest'
- dockerdir: 'docker/vnf'
- <<: *euphrates
- <<: *functest-receivers
- - 'functest-parser':
- project: 'functest'
- dockerdir: 'docker/parser'
+ - 'bottlenecks':
+ project: 'bottlenecks'
<<: *euphrates
- <<: *functest-receivers
- - 'functest-restapi':
+ <<: *other-receivers
+ - 'functest':
project: 'functest'
- dockerdir: 'docker/restapi'
<<: *euphrates
<<: *functest-receivers
- 'storperf-master':
name: sfc-unit-tests
builders:
- shell: |
- cd $WORKSPACE && yamllint $(git ls-tree -r HEAD --name-only | egrep 'yml$|yaml$')
+ cd $WORKSPACE && yamllint $(git ls-tree -r HEAD --name-only | egrep 'yml$|yaml$' | egrep -v 'scenarios')
# distros
#--------------------------------
distro:
- - 'ubuntu':
+ - ubuntu:
disabled: false
- voting: true
- - 'centos':
+ successful: false
+ failed: false
+ unstable: false
+ notbuilt: false
+ - centos:
disabled: false
- voting: false
- - 'opensuse':
+ successful: true
+ failed: true
+ unstable: true
+ notbuilt: true
+ - opensuse:
disabled: false
- voting: false
+ successful: false
+ failed: false
+ unstable: false
+ notbuilt: false
#--------------------------------
# type
#--------------------------------
#--------------------------------
jobs:
- 'xci-verify-{distro}-{type}-{stream}'
- - 'xci-verify-{phase}-{type}-{stream}'
+ - 'xci-verify-{distro}-{phase}-{type}-{stream}'
#--------------------------------
# job templates
#--------------------------------
- job-template:
name: 'xci-verify-{distro}-{type}-{stream}'
- project-type: freestyle
+ project-type: multijob
disabled: '{obj:disabled}'
- compare-type: ANT
pattern: 'docs/**'
readable-message: true
- skip-vote:
- successful: '{obj:voting}'
- failed: '{obj:voting}'
- unstable: '{obj:voting}'
- notbuilt: '{obj:voting}'
+ skip-vote:
+ successful: '{obj:successful}'
+ failed: '{obj:failed}'
+ unstable: '{obj:unstable}'
+ notbuilt: '{obj:notbuilt}'
parameters:
- project-parameter:
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
-
builders:
- description-setter:
description: "Built on $NODE_NAME"
- - trigger-builds:
- - project: 'xci-verify-deploy-{type}-{stream}'
- current-parameters: false
- predefined-parameters: |
- PROJECT=$PROJECT
- DISTRO={distro}
- DEPLOY_SCENARIO=os-nosdn-nofeature-noha
- CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- same-node: true
- block: true
- - trigger-builds:
- - project: 'xci-verify-healthcheck-{type}-{stream}'
- current-parameters: false
- predefined-parameters: |
- PROJECT=$PROJECT
- DISTRO={distro}
- DEPLOY_SCENARIO=os-nosdn-nofeature-noha
- CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
- FUNCTEST_MODE=tier
- FUNCTEST_TIER=healthcheck
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- same-node: true
- block: true
-
+ - multijob:
+ name: deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'xci-verify-{distro}-deploy-{type}-{stream}'
+ current-parameters: true
+ predefined-parameters: |
+ DISTRO={distro}
+ DEPLOY_SCENARIO=os-nosdn-nofeature-noha
+ CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: healthcheck
+ condition: SUCCESSFUL
+ projects:
+ - name: 'xci-verify-{distro}-healthcheck-{type}-{stream}'
+ current-parameters: true
+ predefined-parameters: |
+ DISTRO={distro}
+ DEPLOY_SCENARIO=os-nosdn-nofeature-noha
+ CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+ FUNCTEST_MODE=tier
+ FUNCTEST_TIER=healthcheck
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: true
+ kill-phase-on: NEVER
+ abort-all-job: true
- job-template:
- name: 'xci-verify-{phase}-{type}-{stream}'
+ name: 'xci-verify-{distro}-{phase}-{type}-{stream}'
disabled: false
builders:
- description-setter:
- description: "Built on $NODE_NAME for $DISTRO"
+ description: "Built on $NODE_NAME"
- 'xci-verify-{phase}-macro'
#--------------------------------
# If dev lab, credentials may not be the default ones, just provide a path to put them into docker
# replace the default one by the customized one provided by jenkins config
fi
-elif [[ ${INSTALLER_TYPE} == 'compass' && ${BRANCH} == 'master' ]]; then
+elif [[ ${INSTALLER_TYPE} == 'compass' ]]; then
cacert_file_vol="-v ${HOME}/os_cacert:/etc/yardstick/os_cacert"
echo "export OS_CACERT=/etc/yardstick/os_cacert" >> ${HOME}/opnfv-openrc.sh
rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/etc/yardstick/openstack.creds"
+elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then
+ cacert_file_vol="-v ${HOME}/os_cacert:/etc/ssl/certs/mcp_os_cacert"
+ sshkey="-v ${SSH_KEY}:/root/.ssh/mcp.rsa"
else
rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/etc/yardstick/openstack.creds"
fi
-e YARDSTICK_BRANCH=${BRANCH} -e BRANCH=${BRANCH} \
-e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}"
+if [[ "${INSTALLER_TYPE}" == 'fuel' ]]; then
+ envs+=" -e SSH_KEY=/root/.ssh/mcp.rsa"
+fi
+
# Pull the image with correct tag
DOCKER_REPO='opnfv/yardstick'
if [ "$(uname -m)" = 'aarch64' ]; then
if not os.path.exists(dirpath):
os.makedirs(dirpath)
- def __ssh_host(self, ssh_conn, host_prefix='10.20.0'):
+ def __ssh_host(self, ssh_conn):
try:
- _, stdout, _ = ssh_conn.exec_command('hostname -I')
- hosts = stdout.readline().strip().split(' ')
- found_host = [h for h in hosts if h.startswith(host_prefix)][0]
+ _, stdout, _ = ssh_conn.exec_command('hostname')
+ found_host = stdout.readline()
return found_host
except Exception as e:
logger.error(e)
def dump_ovs_logs(self, controller_clients, compute_clients,
related_error=None, timestamp=None):
+ """
+ delete controller_clients argument because
+ that was producing an error in XCI installer.
+
+ For more information see:
+ TODO: https://jira.opnfv.org/browse/RELENG-314
+ """
+ del controller_clients
if timestamp is None:
timestamp = time.strftime("%Y%m%d-%H%M%S")
-
- clients = controller_clients + compute_clients
+ # clients = controller_clients + compute_clients
+ clients = compute_clients
for client in clients:
self.ofctl_dump_flows(client, timestamp=timestamp)
self.vsctl_show(client, timestamp=timestamp)
sudo scp $ssh_options root@$installer_ip:/home/stack/overcloudrc.v3 $dest_path
elif [ "$installer_type" == "compass" ]; then
- if [ "${BRANCH}" == "master" ]; then
- sudo docker cp compass-tasks:/opt/openrc $dest_path &> /dev/null
- sudo chown $(whoami):$(whoami) $dest_path
- sudo docker cp compass-tasks:/opt/os_cacert $os_cacert
- else
+ if [ "${BRANCH}" == "stable/danube" ]; then
verify_connectivity $installer_ip
controller_ip=$(sshpass -p'root' ssh 2>/dev/null $ssh_options root@${installer_ip} \
'mysql -ucompass -pcompass -Dcompass -e"select * from cluster;"' \
fi
info "public_ip: $public_ip"
swap_to_public $public_ip
+ else
+ sudo docker cp compass-tasks:/opt/openrc $dest_path &> /dev/null
+ sudo chown $(whoami):$(whoami) $dest_path
+ sudo docker cp compass-tasks:/opt/os_cacert $os_cacert
fi
elif [ "$installer_type" == "joid" ]; then
ENV HOME /home/opnfv
ENV working_dir ${HOME}/releng/utils/test/reporting
-ENV CONFIG_REPORTING_YAML ${working_dir}/reporting.yaml
+ENV CONFIG_REPORTING_YAML ${working_dir}/reporting/reporting.yaml
WORKDIR ${HOME}
# Packaged dependencies
export PYTHONPATH="${PYTHONPATH}:./reporting"
export CONFIG_REPORTING_YAML=./reporting/reporting.yaml
-declare -a versions=(danube master)
+declare -a versions=(euphrates danube master)
declare -a projects=(functest storperf yardstick qtip vsperf bottlenecks)
project=$1
report_project $i $i "status"
sleep 5
done
- report_project "QTIP" "qtip" "status"
-
echo "Functest reporting vIMS..."
report_project "functest" "functest" "vims"
<div id="main">
<div class="inner">
<header>
- <h1>Danube reporting</h1>
+ <h1>Euphrates reporting</h1>
</header>
<section class="tiles">
<article class="style3">
# For all the installers
for installer in INSTALLERS:
# get scenarios results data
+ if version != 'master':
+ new_version = "stable/{}".format(version)
+ else:
+ new_version = version
scenario_results = rp_utils.getScenarios("bottlenecks",
"posca_factor_ping",
installer,
- version)
+ new_version)
LOGGER.info("scenario_results: %s", scenario_results)
scenario_stats = rp_utils.getScenarioStats(scenario_results)
import jinja2
-import testCase as tc
-import scenarioResult as sr
+import reporting.functest.testCase as tc
+import reporting.functest.scenarioResult as sr
import reporting.utils.reporting_utils as rp_utils
"""
LOGGER.debug("No results found")
items[s] = testCases2BeDisplayed
- except Exception:
+ except Exception: # pylint: disable=broad-except
LOGGER.error("Error installer %s, version %s, scenario %s",
installer, version, s)
LOGGER.error("No data available: %s", sys.exc_info()[0])
def profile_results(results, installer, profile_fd):
result_criterias = {}
for s_p, s_p_result in results.iteritems():
- ten_criteria = len(s_p_result)
- ten_score = sum(s_p_result)
+ avg_last_ten = sum([int(s) for s in s_p_result]) / len(s_p_result)
LASTEST_TESTS = rp_utils.get_config(
'general.nb_iteration_tests_success_criteria')
- four_result = s_p_result[:LASTEST_TESTS]
- four_criteria = len(four_result)
- four_score = sum(four_result)
-
- s_four_score = str(four_score / four_criteria)
- s_ten_score = str(ten_score / ten_criteria)
+ last_four = s_p_result[-LASTEST_TESTS:]
+ avg_last_four = sum([int(s) for s in last_four]) / len(last_four)
info = '{},{},{},{},{}\n'.format(reportingDate,
s_p,
installer,
- s_ten_score,
- s_four_score)
+ '',
+ avg_last_four)
profile_fd.write(info)
result_criterias[s_p] = sr.ScenarioResult('OK',
- s_four_score,
- s_ten_score,
+ avg_last_four,
+ avg_last_ten,
'100')
logger.info("--------------------------")
<ul class="nav nav-justified">
<li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
<li><a href="status-apex.html">Apex</a></li>
- <li><a href="status-compass.html">Compass</a></li>
- <li><a href="status-daisy.html">Daisy</a></li>
- <li><a href="status-fuel.html">Fuel</a></li>
- <li><a href="status-joid.html">Joid</a></li>
+ <!--<li><a href="status-compass.html">Compass</a></li>-->
+ <!--<li><a href="status-daisy.html">Daisy</a></li>-->
+ <!--<li><a href="status-fuel.html">Fuel</a></li>-->
+ <!--<li><a href="status-joid.html">Joid</a></li>-->
</ul>
</nav>
</div>
qtip:
log_level: ERROR
- period: 1
+ period: 10
bottlenecks:
test_list:
import requests
import yaml
-import utils.reporting_utils as rp_utils
+import reporting.utils.reporting_utils as rp_utils
yardstick_conf = rp_utils.get_config('yardstick.test_conf')
response = requests.get(yardstick_conf)