Following are the list of published images available to be used with Jenkins jobs.
+* ZZCI - CentOS 7 - autorelease - 20180125-2240
+* ZZCI - CentOS 7 - builder - 20180201-2139
+* ZZCI - CentOS 7 - builder - 20180611-1830
+* ZZCI - CentOS 7 - builder - 20180723-235310.638
+* ZZCI - CentOS 7 - builder - 20180802-220823.782
+* ZZCI - CentOS 7 - builder - x86_64 - 20180823-152917.621
+* ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
+* ZZCI - CentOS 7 - devstack - 20171208-1648
+* ZZCI - CentOS 7 - devstack - 20180723-235345.727
+* ZZCI - CentOS 7 - devstack - 20180911-204116.460
+* ZZCI - CentOS 7 - devstack-ocata - 20171208-1649
+* ZZCI - CentOS 7 - devstack-pike - 20171208-1649
+* ZZCI - CentOS 7 - devstack-queens - 20181101-190143.891
+* ZZCI - CentOS 7 - docker - 20171209-0317
+* ZZCI - CentOS 7 - docker - 20180109-0346
+* ZZCI - CentOS 7 - docker - 20180110-1659
+* ZZCI - CentOS 7 - docker - 20180417-0311
+* ZZCI - CentOS 7 - docker - 20180723-235456.035
+* ZZCI - CentOS 7 - java-builder - 20171206-1842
+* ZZCI - CentOS 7 - java-builder - 20171209-0032
+* ZZCI - CentOS 7 - robot - 20180601-2050
+* ZZCI - OPNFV - apex - compute - 0
+* ZZCI - OPNFV - apex - compute - 1
+* ZZCI - OPNFV - apex - controller - 0
+* ZZCI - Ubuntu 14.04 - gbp - 20171208-2336
+* ZZCI - Ubuntu 14.04 - gbp - 20180723-235516.505
+* ZZCI - Ubuntu 16.04 - docker - 20180601-2047
+* ZZCI - Ubuntu 16.04 - gbp - 20171213-2018
+* ZZCI - Ubuntu 16.04 - gbp - 20180723-235534.431
+* ZZCI - Ubuntu 16.04 - kubernetes - 20180527-1344
+* ZZCI - Ubuntu 16.04 - kubernetes - 20180723-235526.580
+* ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20171208-1847
+* ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20180723-235543.682
+* ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20181029-223449.514
+* ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20171208-1847
+* ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20180723-235543.774
+* ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20181029-223513.438
+* ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180301-1041
+* ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507
+* ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326
- project:
name: aaa-sonar
jobs:
- - gerrit-maven-sonar
+ - gerrit-maven-sonar:
+ mvn-params: >
+ -Dodl.jacoco.aggregateFile=$WORKSPACE/target/jacoco.exec
+ -Dsonar.jacoco.reportPath=$WORKSPACE/target/jacoco.exec
project: 'aaa'
project-name: 'aaa'
--- /dev/null
+---
+- project:
+ name: ansible
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - gerrit-tox-verify
+ - odl-maven-jobs
+
+ stream:
+ - neon:
+ branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
+
+ project: ansible
+ project-name: ansible
+ mvn-settings: 'netvirt-settings'
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m'
+ build-node: centos7-builder-2c-2g
+ build-timeout: 60
+ staging-profile-id: 'da5a90345bd62'
+
+- project:
+ name: ansible-view
+ views:
+ - project-view
+ project-name: ansible
fi
lftools version bump "$RELEASE_TAG"
+# Ignore changes to Final distribution since that will be released separately
+pushd integration/distribution || exit 1
+ git checkout -f opendaylight/pom.xml
+popd || exit 1
+
git submodule foreach "git commit -asm 'Bump versions by x.y.(z+1)'"
# Only submodules need to be bumped, we can ignore autorelease's bump information
git checkout -f
- inttest-csit-1node
project: 'coe'
- functionality: 'container-networking'
-
install-features: 'odl-netvirt-coe'
+ testplan: '{project}-container-networking.txt'
+ tools_system_count: 5
+ tools_system_image: ZZCI - Ubuntu 16.04 - kubernetes - 20180723-235526.580
stream:
- neon:
branch: 'stable/oxygen'
install:
- - all:
- scope: 'all'
+ - only:
+ scope: 'only'
- tools_system_count: 5
- tools_system_image: ZZCI - Ubuntu 16.04 - kubernetes - 20180723-235526.580
+ functionality:
+ - 'gate-container-networking'
+ - 'container-networking'
feature:
- coe:
csit-list: >
- coe-csit-1node-container-networking-all-{stream}
+ coe-csit-1node-gate-container-networking-only-{stream}
export OPENSTACK_TOPO
}
+function get_test_suites() {
+
+ #let the caller pick the name of the variable we will assign the suites to
+ local __suite_list=$1
+
+ echo "Locating test plan to use..."
+ testplan_filepath="${WORKSPACE}/test/csit/testplans/${STREAMTESTPLAN}"
+ if [ ! -f "${testplan_filepath}" ]; then
+ testplan_filepath="${WORKSPACE}/test/csit/testplans/${TESTPLAN}"
+ fi
+
+ echo "Changing the testplan path..."
+ cat "${testplan_filepath}" | sed "s:integration:${WORKSPACE}:" > testplan.txt
+ cat testplan.txt
+
+ # Use the testplan if specific SUITES are not defined.
+ if [ -z "${SUITES}" ]; then
+ suite_list=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
+ else
+ suite_list=""
+ workpath="${WORKSPACE}/test/csit/suites"
+ for suite in ${SUITES}; do
+ fullsuite="${workpath}/${suite}"
+ if [ -z "${suite_list}" ]; then
+ suite_list+=${fullsuite}
+ else
+ suite_list+=" "${fullsuite}
+ fi
+ done
+ fi
+
+ eval $__suite_list="'$suite_list'"
+}
+
function run_plan() {
local -r type=$1
;;
esac
- printf "Locating ${type} plan to use...\n"
+ printf "Locating %s plan to use...\n" "${type}"
plan_filepath="${WORKSPACE}/test/csit/${type}plans/$plan"
if [ ! -f "${plan_filepath}" ]; then
plan_filepath="${WORKSPACE}/test/csit/${type}plans/${STREAMTESTPLAN}"
fi
if [ -f "${plan_filepath}" ]; then
- printf "${type} plan exists!!!\n"
- printf "Changing the ${type} plan path...\n"
+ printf "%s plan exists!!!\n" "${type}"
+ printf "Changing the %s plan path...\n" "${type}"
cat ${plan_filepath} | sed "s:integration:${WORKSPACE}:" > ${type}plan.txt
cat ${type}plan.txt
for line in $( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' ${type}plan.txt ); do
- printf "Executing ${line}...\n"
+ printf "Executing %s...\n" "${line}"
# shellcheck source=${line} disable=SC1091
source ${line}
done
fi
- printf "Finished running ${type} plans\n"
+ printf "Finished running %s plans\n" "${type}"
} # function run_plan()
# Return elapsed time. Usage:
{
if [ $# -eq 0 ]; then
# return the current time
- printf "$(date "+%s")"
+ printf "%s" "$(date "+%s")"
else
local start_time=$1
end_time=$(date "+%s")
local -r filter=$3
filter_=${filter// /_}
- printf "node ${ip}, ${prefix}_${ip}__${filter}: starting tcpdump\n"
+ printf "node %s, %s_%s__%s: starting tcpdump\n" "${ip}" "${prefix}" "${ip}" "${filter}"
ssh ${ip} "nohup sudo /usr/sbin/tcpdump -vvv -ni eth0 ${filter} -w /tmp/tcpdump_${prefix}_${ip}__${filter_}.pcap > /tmp/tcpdump_start.log 2>&1 &"
${SSH} ${ip} "ps -ef | grep tcpdump"
}
function tcpdump_stop() {
local -r ip=$1
- printf "node $ip: stopping tcpdump\n"
+ printf "node %s: stopping tcpdump\n" "$ip"
${SSH} ${ip} "ps -ef | grep tcpdump.sh"
${SSH} ${ip} "sudo pkill -f tcpdump"
${SSH} ${ip} "sudo xz -9ekvvf /tmp/*.pcap"
local -r node_type=${3}
local oslogs="${folder}/oslogs"
- printf "collect_openstack_logs for ${node_type} node: ${ip} into ${oslogs}\n"
+ printf "collect_openstack_logs for %s node: %s into %s\n" "${node_type}" "${ip}" "${oslogs}"
rm -rf ${oslogs}
mkdir -p ${oslogs}
# There are always some logs in /opt/stack/logs and this also covers the
ls -al /tmp/oslogs
EOF
# cat > ${WORKSPACE}/collect_openstack_logs.sh << EOF
- printf "collect_openstack_logs for ${node_type} node: ${ip} into ${oslogs}, executing script\n"
+ printf "collect_openstack_logs for %s node: %s into %s, executing script\n" "${node_type}" "${ip}" "${oslogs}"
cat ${WORKSPACE}/collect_openstack_logs.sh
scp ${WORKSPACE}/collect_openstack_logs.sh ${ip}:/tmp
${SSH} ${ip} "bash /tmp/collect_openstack_logs.sh > /tmp/collect_openstack_logs.log 2>&1"
# Self-Managed projects repos and features:
sm-repos: >
mvn:org.opendaylight.sxp/features-sxp//xml/features,
- mvn:org.opendaylight.tsdr/features-tsdr//xml/features,
- mvn:org.opendaylight.unimgr/features4-unimgr//xml/features
+ mvn:org.opendaylight.tsdr/features-tsdr//xml/features
sm-features: >
odl-sxp-routing,
odl-tsdr-core,
karaf-version: odl
# Self-Managed projects repos and features:
sm-repos: >
- mvn:org.opendaylight.snmp4sdn/features-snmp4sdn//xml/features,
mvn:org.opendaylight.sxp/features-sxp//xml/features,
mvn:org.opendaylight.transportpce/features-transportpce//xml/features,
- mvn:org.opendaylight.tsdr/features-tsdr//xml/features,
- mvn:org.opendaylight.unimgr/features4-unimgr//xml/features
sm-features: >
- odl-snmp4sdn-snmp4sdn
odl-sxp-routing,
odl-transportpce,
odl-transportpce-api,
odl-transportpce-ordmodels,
- odl-transportpce-stubmodels,
- odl-tsdr-core,
- odl-tsdr-openflow-statistics-collector,
- odl-tsdr-netflow-statistics-collector,
- odl-tsdr-restconf-collector,
- odl-tsdr-syslog-collector,
- odl-tsdr-controller-metrics-collector,
- odl-tsdr-cassandra,
- odl-tsdr-hbase,
- odl-tsdr-hsqldb,
- odl-tsdr-elasticsearch,
- odl-unimgr,
- odl-unimgr-template-driver,
- odl-unimgr-cisco-xr-driver,
- odl-unimgr-ovs-driver
+ odl-transportpce-stubmodels
+
- oxygen:
branch: 'stable/oxygen'
karaf-version: karaf4
# Ensure we fail the job if any steps fail.
set -ex -o pipefail
+print_job_parameters
+
get_os_deploy
# Swap out the ODL distribution
ssh ${OPENSTACK_COMPUTE_NODE_1_IP} "sudo ovs-vsctl show"
ssh ${OPENSTACK_COMPUTE_NODE_2_IP} "sudo ovs-vsctl show"
-# Use the testplan if specific SUITES are not defined.
-if [ -z "${SUITES}" ]; then
- SUITES=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
-else
- newsuites=""
- workpath="${WORKSPACE}/test/csit/suites"
- for suite in ${SUITES}; do
- fullsuite="${workpath}/${suite}"
- if [ -z "${newsuites}" ]; then
- newsuites+=${fullsuite}
- else
- newsuites+=" "${fullsuite}
- fi
- done
- SUITES=${newsuites}
-fi
+get_test_suites SUITES
echo "Starting Robot test suites ${SUITES} ..."
# please add pybot -v arguments on a single line and alphabetized
-v RESTCONFPORT:8081 \
-v SECURITY_GROUP_MODE:${SECURITY_GROUP_MODE} \
-v SSH_KEY:robot_id_rsa \
+ -v TOOLS_SYSTEM_IP: \
-v USER_HOME:${HOME} \
-v WORKSPACE:/tmp \
${TESTOPTIONS} ${suite} || true
tools_variables=${tools_variables}" -v ${MININETIP}:${!MININETIP}"
done
-echo "Locating test plan to use..."
-testplan_filepath="${WORKSPACE}/test/csit/testplans/${STREAMTESTPLAN}"
-if [ ! -f "${testplan_filepath}" ]; then
- testplan_filepath="${WORKSPACE}/test/csit/testplans/${TESTPLAN}"
-fi
-
-echo "Changing the testplan path..."
-cat "${testplan_filepath}" | sed "s:integration:${WORKSPACE}:" > testplan.txt
-cat testplan.txt
-
-# Use the testplan if specific SUITES are not defined.
-if [ -z "${SUITES}" ]; then
- SUITES=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
-else
- newsuites=""
- workpath="${WORKSPACE}/test/csit/suites"
- for suite in ${SUITES}; do
- fullsuite="${workpath}/${suite}"
- if [ -z "${newsuites}" ]; then
- newsuites+=${fullsuite}
- else
- newsuites+=" "${fullsuite}
- fi
- done
- SUITES=${newsuites}
-fi
+get_test_suites SUITES
echo "Starting Robot test suites ${SUITES} ..."
pybot -N ${TESTPLAN} \
-v BUNDLE_URL:${ACTUAL_BUNDLE_URL} \
-v CONTROLLER:${ODL_SYSTEM_IP} \
-v CONTROLLER_USER:${USER} \
+ -v GERRIT_BRANCH:${GERRIT_BRANCH} \
+ -v GERRIT_REFSPEC:${GERRIT_REFSPEC} \
-v JAVA_HOME:${JAVA_HOME} \
-v JDKVERSION:${JDKVERSION} \
-v JENKINS_WORKSPACE:${WORKSPACE} \
# Involves just setting up the shared directory
function setup_live_migration_control() {
local control_ip=$1
- printf "${control_ip}:Setup directory Share with NFS"
+ printf "%s:Setup directory Share with NFS" "${control_ip}"
cat > ${WORKSPACE}/setup_live_migration_control.sh << EOF
sudo mkdir --mode=777 /vm_instances
sudo chown -R jenkins:jenkins /vm_instances
function setup_live_migration_compute() {
local compute_ip=$1
local control_ip=$2
- printf "${compute_ip}:Mount Shared directory from ${control_ip}"
- printf "${compute_ip}:Configure libvirt in listen mode"
+ printf "%s:Mount Shared directory from ${control_ip}" "${compute_ip}"
+ printf "%s:Configure libvirt in listen mode" "${compute_ip}"
cat > ${WORKSPACE}/setup_live_migration_compute.sh << EOF
sudo yum install -y libvirt libvirt-devel nfs-utils
sudo crudini --verbose --set --inplace /etc/libvirt/libvirtd.conf '' listen_tls 0
HA_PROXY_3_IP=${ODL_SYSTEM_3_IP}
fi
-echo "Locating test plan to use..."
-testplan_filepath="${WORKSPACE}/test/csit/testplans/${STREAMTESTPLAN}"
-if [ ! -f "${testplan_filepath}" ]; then
- testplan_filepath="${WORKSPACE}/test/csit/testplans/${TESTPLAN}"
-fi
-
-echo "Changing the testplan path..."
-cat "${testplan_filepath}" | sed "s:integration:${WORKSPACE}:" > testplan.txt
-cat testplan.txt
-
-# Use the testplan if specific SUITES are not defined.
-if [ -z "${SUITES}" ]; then
- SUITES=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
-else
- newsuites=""
- workpath="${WORKSPACE}/test/csit/suites"
- for suite in ${SUITES}; do
- fullsuite="${workpath}/${suite}"
- if [ -z "${newsuites}" ]; then
- newsuites+=${fullsuite}
- else
- newsuites+=" "${fullsuite}
- fi
- done
- SUITES=${newsuites}
-fi
+get_test_suites SUITES
#install all client versions required for this job testing
install_openstack_clients_in_robot_vm
# script.
# shellcheck source=${ROBOT_VENV}/bin/activate disable=SC1091
source ${ROBOT_VENV}/bin/activate
+source /tmp/common-functions.sh ${BUNDLEFOLDER}
+# Ensure we fail the job if any steps fail.
+set -ex -o pipefail
echo "#################################################"
echo "## Verify Cluster is UP ##"
tools_variables=${tools_variables}" -v ${MININETIP}:${!MININETIP}"
done
-echo "Locating test plan to use..."
-testplan_filepath="${WORKSPACE}/test/csit/testplans/${STREAMTESTPLAN}"
-if [ ! -f "${testplan_filepath}" ]; then
- testplan_filepath="${WORKSPACE}/test/csit/testplans/${TESTPLAN}"
-fi
-
-echo "Changing the testplan path..."
-cat "${testplan_filepath}" | sed "s:integration:${WORKSPACE}:" > testplan.txt
-cat testplan.txt
-
-# Use the testplan if specific SUITES are not defined.
-if [ -z "${SUITES}" ]; then
- SUITES=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
-else
- newsuites=""
- workpath="${WORKSPACE}/test/csit/suites"
- for suite in ${SUITES}; do
- fullsuite="${workpath}/${suite}"
- if [ -z "${newsuites}" ]; then
- newsuites+=${fullsuite}
- else
- newsuites+=" "${fullsuite}
- fi
- done
- SUITES=${newsuites}
-fi
+get_test_suites SUITES
echo "Starting Robot test suites ${SUITES} ..."
pybot -N ${TESTPLAN} \
block: true
predefined-parameters: |
BUNDLE_URL=$BUNDLE_URL
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
KARAF_VERSION=$KARAF_VERSION
publishers:
job-name:
- aaa-csit-1node-authn-all-fluorine
- bgpcep-csit-1node-throughpcep-all-fluorine
- - coe-csit-1node-container-networking-all-fluorine
+ - coe-csit-1node-container-networking-only-fluorine
- controller-csit-1node-akka1-all-fluorine
- controller-csit-1node-benchmark-all-fluorine
- controller-csit-1node-notifications-longevity-only-fluorine
job-name:
- aaa-csit-1node-authn-all-neon
- bgpcep-csit-1node-throughpcep-all-neon
- - coe-csit-1node-container-networking-all-neon
+ - coe-csit-1node-container-networking-only-neon
- controller-csit-1node-akka1-all-neon
- controller-csit-1node-benchmark-all-neon
- controller-csit-1node-notifications-longevity-only-neon
- project:
name: netconf-sonar
jobs:
- - gerrit-maven-sonar
+ - gerrit-maven-sonar:
+ mvn-params: >
+ -Dodl.jacoco.aggregateFile=$WORKSPACE/target/jacoco.exec
+ -Dsonar.jacoco.reportPath=$WORKSPACE/target/jacoco.exec
+
project: 'netconf'
project-name: 'netconf'
branch: 'master'
mvn-settings: 'netconf-settings'
mvn-goals: 'clean deploy -Pintegrationtests'
mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
+ build-timeout: 90
- project:
name: netconf-view
netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-tdd-wip-{stream}
- coe:
csit-list: >
- coe-csit-1node-container-networking-all-{stream}
+ coe-csit-1node-gate-container-networking-only-{stream}
- itm-direct-tunnels:
csit-list: >
netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-stateful-itm-direct-tunnels-{stream}
---
- project:
- name: ansible
- project-name: ansible
+ name: packaging-ansible
+ project-name: packaging-ansible
jobs:
- '{project-name}-test-rpm-{stream}'
- lf-infra-publish
- project:
- name: ansible-view
+ name: packaging-ansible-view
views:
- project-view
- project-name: ansible
+ project-name: packaging-ansible
---
- project:
- name: puppet
- project-name: puppet
+ name: packaging-puppet
+ project-name: packaging-puppet
jobs:
- '{project-name}-test-sanity-{stream}'
- lf-infra-publish
- project:
- name: puppet-view
+ name: packaging-puppet-view
views:
- project-view
- project-name: puppet
+ project-name: packaging-puppet
project-name: 'transportpce'
stream: neon
branch: 'master'
- build-node: centos7-builder-8c-8g
- build-timeout: 90
mvn-settings: 'transportpce-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
project-name: 'transportpce'
stream: fluorine
branch: 'stable/fluorine'
- build-node: centos7-builder-8c-8g
- build-timeout: 90
mvn-settings: 'transportpce-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
project-name: 'transportpce'
stream: oxygen
branch: 'stable/oxygen'
- build-node: centos7-builder-8c-8g
- build-timeout: 90
mvn-settings: 'transportpce-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'