# <<: *master
# -------------------------------
- functest-tier:
- - 'healthcheck':
- job-timeout: 20
- - 'smoke':
- job-timeout: 180
- - 'components':
- job-timeout: 240
- - 'vnf':
- job-timeout: 240
-
- features-suite:
- - 'doctor-notification'
- - 'promise'
- - 'bgpvpn'
- - 'functest-odl-sfc'
- - 'domino-multinode'
- - 'fds'
- - 'barometercollectd'
-
- exclude:
- - features-suite: 'promise'
- stream: 'master'
- - features-suite: 'domino-multinode'
- stream: 'master'
- - features-suite: 'fds'
- stream: 'euphrates'
-
- build-job-settings: &build-job-settings
- current-parameter: false
- git-revision: true
- node-parameters: false
- kill-phase-on: FAILURE
- abort-all-jobs: false
- predefined-parameters: |
- FUNCTEST_MODE=$FUNCTEST_MODE
- FUNCTEST_TIER=$FUNCTEST_TIER
-
- features-job-settings: &features-job-settings
- current-parameter: false
- git-revision: true
- node-parameters: false
- kill-phase-on: FAILURE
- abort-all-jobs: false
- predefined-parameters: |
- FUNCTEST_MODE=$FUNCTEST_MODE
- FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
+ testsuite:
+ - 'suite':
+ job-timeout: 60
+ - 'daily':
+ job-timeout: 300
+ - 'arm-daily':
+ job-timeout: 300
jobs:
- - 'functest-{installer}-{pod}-suite-{stream}'
- - 'functest-{installer}-{pod}-daily-{stream}'
- - 'functest-{installer}-{pod}-daily-{functest-tier}-{stream}'
- - 'functest-{installer}-{pod}-daily-features-{features-suite}-{stream}'
+ - 'functest-{installer}-{pod}-{testsuite}-{stream}'
+
################################
# job template
################################
- job-template:
-
- name: 'functest-{installer}-{pod}-daily-{stream}'
-
- project-type: multijob
-
- disabled: '{obj:disabled}'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults'
- - '{slave-label}-defaults'
- - functest-parameter:
- gs-pathname: '{gs-pathname}'
-
- builders:
- - multijob:
- name: 'Run functest tests'
- execution-type: SEQUENTIAL
- projects:
- - name: 'functest-{installer}-{pod}-daily-healthcheck-{stream}'
- <<: *build-job-settings
- - name: 'functest-{installer}-{pod}-daily-smoke-{stream}'
- <<: *build-job-settings
- - name: 'functest-{installer}-{pod}-daily-vnf-{stream}'
- <<: *build-job-settings
- - name: 'functest-{installer}-{pod}-daily-features-doctor-notification-{stream}'
- <<: *features-job-settings
- - name: 'functest-{installer}-{pod}-daily-features-bgpvpn-{stream}'
- <<: *features-job-settings
- - name: 'functest-{installer}-{pod}-daily-features-functest-odl-sfc-{stream}'
- <<: *features-job-settings
- - name: 'functest-{installer}-{pod}-daily-features-barometercollectd-{stream}'
- <<: *features-job-settings
- - name: 'functest-{installer}-{pod}-daily-features-fds-{stream}'
- <<: *features-job-settings
- - name: 'functest-{installer}-{pod}-daily-features-promise-{stream}'
- <<: *features-job-settings
- - name: 'functest-{installer}-{pod}-daily-features-domino-multinode-{stream}'
- <<: *features-job-settings
-
-- job-template: &functest-installer-tier-job
-
- name: 'functest-{installer}-{pod}-daily-{functest-tier}-{stream}'
+ name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
concurrent: true
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults'
- - string:
- name: FUNCTEST_MODE
- default: 'tier'
- - string:
- name: FUNCTEST_TIER
- default: '{functest-tier}'
+ - 'functest-{testsuite}-parameter'
- string:
name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-noha'
+ default: 'os-odl_l2-nofeature-ha'
- string:
name: CLEAN_DOCKER_IMAGES
default: 'false'
builders:
- description-setter:
description: "Built on $NODE_NAME"
- - 'functest-daily-builder'
-
- publishers:
- - 'functest-recipients'
- - 'fuel-recipients'
-
-- job-template:
-
- name: 'functest-{installer}-{pod}-suite-{stream}'
- <<: *functest-installer-tier-job
-
- wrappers:
- - build-name:
- name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO'
- - timeout:
- timeout: '60'
- abort: true
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults'
- - '{slave-label}-defaults'
- - 'functest-suite-parameter'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-noha'
- - string:
- name: CLEAN_DOCKER_IMAGES
- default: 'false'
- description: 'Remove downloaded docker images (opnfv/functest*:*)'
- - functest-parameter:
- gs-pathname: '{gs-pathname}'
-
- builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - 'functest-suite-builder'
-
-- job-template:
-
- name: 'functest-{installer}-{pod}-daily-features-{features-suite}-{stream}'
- concurrent: true
- properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-per-node: 1
- option: 'project'
- wrappers:
- - build-name:
- name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults'
- - '{slave-label}-defaults'
- - string:
- name: FUNCTEST_MODE
- default: 'testcase'
- - string:
- name: FUNCTEST_SUITE_NAME
- default: '{features-suite}'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-noha'
- - string:
- name: CLEAN_DOCKER_IMAGES
- default: 'false'
- description: 'Remove downloaded docker images (opnfv/functest*:*)'
- - functest-parameter:
- gs-pathname: '{gs-pathname}'
-
- scm:
- - git-scm
-
- builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - 'functest-daily-builder'
-
- publishers:
- - 'functest-features-recipients'
- - 'functest-recipients'
- - 'fuel-recipients'
+ - 'functest-{testsuite}-builder'
########################
default: 'daily'
description: "Daily suite name to run"
+- parameter:
+ name: functest-arm-daily-parameter
+ parameters:
+ - string:
+ name: FUNCTEST_MODE
+ default: 'arm-daily'
+ description: "Daily suite name (Aarch64) to run"
+
- parameter:
name: functest-suite-parameter
parameters:
- 'functest-store-results'
- 'functest-exit'
+- builder:
+ name: functest-arm-daily-builder
+ builders:
+ - 'functest-cleanup'
+ - 'functest-arm-daily'
+ - 'functest-store-results'
+ - 'functest-exit'
+
- builder:
name: functest-suite-builder
builders:
- ../../utils/fetch_k8_conf.sh
- ./functest-k8.sh
+# yamllint enable rule:indentation
+- builder:
+ name: functest-arm-daily
+ builders:
+ # yamllint disable rule:indentation
+ - shell:
+ !include-raw:
+ - ./functest-env-presetup.sh
+ - ../../utils/fetch_os_creds.sh
+ - ./functest-alpine.sh
+
# yamllint enable rule:indentation
- builder:
name: functest-store-results
builders:
- shell:
!include-raw: ./functest-exit.sh
-
-
-- publisher:
- name: 'functest-features-recipients'
- publishers:
- - email:
- recipients:
-
-- publisher:
- name: 'functest-recipients'
- publishers:
- - email:
- recipients: >
- jalausuch@suse.com morgan.richomme@orange.com
- cedric.ollivier@orange.com feng.xiaowei@zte.com.cn
- juha.kosonen@nokia.com wangwulin@huawei.com
- delia.popescu@enea.com cristina.pauna@enea.com
- valentin.boucher@kontron.com
- - email-jenkins-admins-on-failure
-
-- publisher:
- name: 'fuel-recipients'
- publishers:
- - email:
- recipients: >
- peter.barabas@ericsson.com mpolenchuck@mirantis.com
- alexandru.avadanii@enea.com guillermo.herrero@enea.com
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-#This will put a bunch of files in the pwd. you have been warned.
#Counts how long slaves have been online or offline
-
+#exec 2>/dev/null
#Yes I know about jq
curlcommand() {
| sed s,\",,g
}
-if [ -f podoutput-current ]; then
- cp podoutput-current podoutput-lastiteration
-fi
-
-curlcommand > podoutput-current
+curlcommand > /tmp/podoutput-current
-declare -A slavescurrent slaveslastiteration
+declare -A slavescurrent
while read -r name status ; do
slavescurrent["$name"]="$status"
-done < <(cat podoutput-current)
-
-while read -r name status ; do
- slaveslastiteration["$name"]=$status
-done < <(cat podoutput-lastiteration)
-
+done < <(cat /tmp/podoutput-current)
+
+#haste bin stopped allowing post :(
+#files=(*online)
+#for ((i=0; i<${#files[@]}; i+=9)); do
+#./eplot -d -r [-1:74][-1:30] -m ${files[i]} ${files[i+1]} ${files[i+2]} ${files[i+3]} ${files[i+4]} ${files[i+5]} ${files[i+6]} ${files[i+7]} ${files[i+8]} ${files[i+9]}
+#done | ./haste.bash
+##
main () {
+
for slavename in "${!slavescurrent[@]}"; do
- #Slave is online. Mark it down.
+
+ #Slave is online. Mark it down.
if [ "${slavescurrent[$slavename]}" == "false" ]; then
- if [ -f "$slavename"-offline ]; then
- echo "removing offline status from $slavename slave was offline for $(cat "$slavename"-offline ) iterations"
- rm "$slavename"-offline
- fi
-
- if ! [ -f "$slavename"-online ]; then
- echo "1" > "$slavename"-online
- elif [ -f "$slavename"-online ]; then
- #read and increment slavename
- read -r -d $'\x04' var < "$slavename"-online
- ((var++))
- echo -n "ONLINE $slavename "
- echo "for $var iterations"
- echo "$var" > "$slavename"-online
- fi
- fi
+ if ! [ -f /tmp/"$slavename"-online ]; then
+ echo "1" > /tmp/"$slavename"-online
+ echo "new online slave file created $slavename ${slavescurrent[$slavename]} up for 1 iterations"
+ fi
- #went offline since last iteration.
- if [ "${slavescurrent[$slavename]}" == "false" ] && [ "${slaveslastiteration[$slavename]}" == "true" ]; then
- echo "JUST WENT OFFLINE $slavename "
- if [ -f "$slavename"-online ]; then
- echo "removing online status from $slavename. slave was online for $(cat "$slavename"-online ) iterations"
- rm "$slavename"-online
- fi
+ #read and increment slavename
+ var="$(cat /tmp/"$slavename"-online |tail -n 1)"
+ if [[ "$var" == "0" ]]; then
+ echo "slave $slavename ${slavescurrent[$slavename]} back up for $var iterations"
+ fi
+ ((var++))
+ echo "$var" >> /tmp/"$slavename"-online
+ unset var
+ echo "$slavename up $(cat /tmp/$slavename-online | tail -n 10 | xargs)"
fi
- #slave is offline
+ #slave is offline remove all points
if [ "${slavescurrent[$slavename]}" == "true" ]; then
- if ! [ -f "$slavename"-offline ]; then
- echo "1" > "$slavename"-offline
- fi
-
- if [ -f "$slavename"-offline ]; then
- #read and increment slavename
- read -r -d $'\x04' var < "$slavename"-offline
- ((var++))
- echo "$var" > "$slavename"-offline
- if [ "$var" -gt "30" ]; then
- echo "OFFLINE FOR $var ITERATIONS REMOVE $slavename "
- else
- echo "OFFLINE $slavename FOR $var ITERATIONS "
- fi
- fi
+ if ! [ -f /tmp/"$slavename"-online ]; then
+ echo "0" > /tmp/"$slavename"-online
+ echo "new offline slave file created $slavename ${slavescurrent[$slavename]} up for 0 iterations"
+
+ fi
+ var="$(cat /tmp/"$slavename"-online |tail -n 1)"
+
+ if [[ "$var" != "0" ]]; then
+ echo "slave $slavename ${slavescurrent[$slavename]} was up for $var iterations"
+ echo "slave $slavename ${slavescurrent[$slavename]} has gone offline, was $var iterations now reset to 0"
+ fi
+
+ echo "0" >> /tmp/"$slavename"-online
+ echo "$slavename down $(cat /tmp/$slavename-online | tail -n 10 | xargs)"
+ unset var
+
fi
+
done
}
-main
+main | sort | column -t