--- /dev/null
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2017 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+# Create a python script to parse a Jenkins build for sub-project status
+
+script=$(mktemp)
+
+cat > $script <<EOF
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2017 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+__author__ = 'Thanh Ha'
+
+
+import sys
+
+from bs4 import BeautifulSoup
+import requests
+
+
+build_url = sys.argv[1]
+urlparse = requests.utils.urlparse(build_url)
+jenkins_url = "{}://{}".format(urlparse.scheme, urlparse.netloc)
+
+page = requests.get(build_url)
+soup = BeautifulSoup(page.text, 'html.parser')
+links = soup.findAll("a", { "class" : "model-link" })
+
+_file = open('csit_failed_tests.txt', 'w+')
+
+for link in links:
+ if link.img and (link.img['alt'] == 'Unstable' or
+ link.img['alt'] == 'Failed' or
+ link.img['alt'] == 'Aborted'):
+
+ url = link['href']
+ project = url.split('/')[3].split('-')[0]
+ _file.write("{}\t{}{}\n".format(project, jenkins_url, url))
+
+_file.close()
+EOF
+
+virtualenv --quiet "/tmp/v/jenkins"
+# shellcheck source=/tmp/v/jenkins/bin/activate disable=SC1091
+source "/tmp/v/jenkins/bin/activate"
+pip install --quiet --upgrade pip
+pip install --quiet --upgrade tox beautifulsoup4 requests
+
+echo python "$script" "$BUILD_URL"
+python "$script" "$BUILD_URL"
+
+mkdir -p "$WORKSPACE/archives"
+mv csit_failed_tests.txt "$WORKSPACE/archives"
netvirt-csit-3node-openstack-ocata-upstream-stateful-boron,
netvirt-csit-3node-openstack-ocata-upstream-stateful-snat-conntrack-boron,
netvirt-csit-3node-openstack-ocata-upstream-transparent-boron,
+netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-learn-boron,
+netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-stateful-boron,
netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-transparent-boron,
+netvirt-csit-hwvtep-1node-openstack-newton-upstream-learn-boron,
+netvirt-csit-hwvtep-1node-openstack-newton-upstream-stateful-boron,
netvirt-csit-hwvtep-1node-openstack-newton-upstream-transparent-boron,
+netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-learn-boron,
+netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-stateful-boron,
netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-transparent-boron,
+netvirt-csit-hwvtep-3node-openstack-newton-upstream-learn-boron,
+netvirt-csit-hwvtep-3node-openstack-newton-upstream-stateful-boron,
netvirt-csit-hwvtep-3node-openstack-newton-upstream-transparent-boron,
netvirt-legacy-csit-1node-openstack-basic-all-boron,
netvirt-legacy-csit-1node-openstack-basic-only-boron,
netvirt-csit-3node-openstack-ocata-upstream-stateful-carbon,
netvirt-csit-3node-openstack-ocata-upstream-stateful-snat-conntrack-carbon,
netvirt-csit-3node-openstack-ocata-upstream-transparent-carbon,
+netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-learn-carbon,
+netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-stateful-carbon,
netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-transparent-carbon,
+netvirt-csit-hwvtep-1node-openstack-newton-upstream-learn-carbon,
+netvirt-csit-hwvtep-1node-openstack-newton-upstream-stateful-carbon,
netvirt-csit-hwvtep-1node-openstack-newton-upstream-transparent-carbon,
+netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-learn-carbon,
+netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-stateful-carbon,
netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-transparent-carbon,
+netvirt-csit-hwvtep-3node-openstack-newton-upstream-learn-carbon,
+netvirt-csit-hwvtep-3node-openstack-newton-upstream-stateful-carbon,
netvirt-csit-hwvtep-3node-openstack-newton-upstream-transparent-carbon,
nic-csit-1node-basic-all-carbon,
nic-csit-1node-basic-only-carbon,
netvirt-csit-3node-openstack-ocata-upstream-stateful-nitrogen,
netvirt-csit-3node-openstack-ocata-upstream-stateful-snat-conntrack-nitrogen,
netvirt-csit-3node-openstack-ocata-upstream-transparent-nitrogen,
+netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-learn-nitrogen,
+netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-stateful-nitrogen,
netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-transparent-nitrogen,
+netvirt-csit-hwvtep-1node-openstack-newton-upstream-learn-nitrogen,
+netvirt-csit-hwvtep-1node-openstack-newton-upstream-stateful-nitrogen,
netvirt-csit-hwvtep-1node-openstack-newton-upstream-transparent-nitrogen,
+netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-learn-nitrogen,
+netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-stateful-nitrogen,
netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-transparent-nitrogen,
+netvirt-csit-hwvtep-3node-openstack-newton-upstream-learn-nitrogen,
+netvirt-csit-hwvtep-3node-openstack-newton-upstream-stateful-nitrogen,
netvirt-csit-hwvtep-3node-openstack-newton-upstream-transparent-nitrogen,
nic-csit-1node-basic-all-nitrogen,
nic-csit-1node-basic-only-nitrogen,
netvirt-csit-3node-openstack-ocata-upstream-stateful-oxygen,
netvirt-csit-3node-openstack-ocata-upstream-stateful-snat-conntrack-oxygen,
netvirt-csit-3node-openstack-ocata-upstream-transparent-oxygen,
+netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-learn-oxygen,
+netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-stateful-oxygen,
netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-transparent-oxygen,
+netvirt-csit-hwvtep-1node-openstack-newton-upstream-learn-oxygen,
+netvirt-csit-hwvtep-1node-openstack-newton-upstream-stateful-oxygen,
netvirt-csit-hwvtep-1node-openstack-newton-upstream-transparent-oxygen,
+netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-learn-oxygen,
+netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-stateful-oxygen,
netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-transparent-oxygen,
+netvirt-csit-hwvtep-3node-openstack-newton-upstream-learn-oxygen,
+netvirt-csit-hwvtep-3node-openstack-newton-upstream-stateful-oxygen,
netvirt-csit-hwvtep-3node-openstack-newton-upstream-transparent-oxygen,
nic-csit-1node-basic-all-oxygen,
nic-csit-1node-basic-only-oxygen,
# FIXME: Make log size limit configurable from build parameter.
sed -ie 's/log4j.appender.out.maxFileSize=1MB/log4j.appender.out.maxFileSize=30GB/g' \${LOGCONF}
echo "log4j.logger.org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver = WARN" >> \${LOGCONF}
+# Add custom logging levels
+# CONTROLLERDEBUGMAP is expected to be a key:value map of space separated values like "module:level module2:level2"
+# where module is abbreviated and does not include org.opendaylight
+unset IFS
+if [ -n "${CONTROLLERDEBUGMAP}" ]; then
+ for kv in ${CONTROLLERDEBUGMAP}; do
+ module=\${kv%%:*}
+ level=\${kv#*:}
+ if [ -n \${module} ] && [ -n \${level} ]; then
+ echo "log4j.logger.org.opendaylight.\${module} = \${level}" >> \${LOGCONF}
+ fi
+ done
+fi
cat \${LOGCONF}
echo "Configure java home and max memory..."
default: '{controller-features}'
description: 'Features to install in the controller separated by comma'
+- parameter:
+ name: integration-controller-debug-map
+ parameters:
+ - string:
+ name: CONTROLLERDEBUGMAP
+ default: '{controller-debug-map}'
+ description: |
+ Key:Value map of debugs to enable on the controller separated by spaces.
+ The module should not include org.opendaylight.
+ The levels must be one of: ERROR, WARN, INFO, DEBUG, TRACE.
+ (ex. ovsdb.lib:ERROR netvirt.vpnservice:INFO)
+
- parameter:
name: integration-distribution-stream
parameters:
bundle-url: '{bundle-url}'
- integration-controller-features:
controller-features: '{install-features}'
+ - integration-controller-debug-map:
+ controller-debug-map: '{debug-map}'
- integration-test-options:
test-options: '{robot-options}'
- integration-test-plan:
bundle-url: '{bundle-url}'
- integration-controller-features:
controller-features: '{install-features}'
+ - integration-controller-debug-map:
+ controller-debug-map: '{debug-map}'
- integration-test-options:
test-options: '{robot-options}'
- integration-test-plan:
KARAF_VERSION=$KARAF_VERSION
publishers:
+ - opendaylight-infra-generate-csit-status-report
- email-notification:
email-recipients: '{email-recipients}'
email-prefix: '[integration]'
+ - lf-infra-publish
# Template: integration-sanity-test-{stream}
# Goal: Verify a distribution through sanity test
- upstream-transparent:
schedule: ''
sg-mode: 'transparent'
+ - upstream-stateful:
+ schedule: ''
+ sg-mode: 'stateful'
+ - upstream-learn:
+ schedule: ''
+ sg-mode: 'learn'
- gate-transparent:
schedule: ''
sg-mode: 'transparent'
tools_system_count: 2
- tools_system_image: 'Ubuntu 16.04 - mininet-ovs-25 - 20170808-0158'
+ tools_system_image: 'Ubuntu 16.04 - mininet-ovs-26 - 20170829-0548'
enable-networking-l2gw: 'yes'
# Default Robot framework options
robot-options: ''
trigger-jobs: ''
+ debug-map: ''
# Data for csit-verify jobs
# Branch for "last" version detection
{mvn-opts}
java-opts:
- '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
+
+- publisher:
+ name: opendaylight-infra-generate-csit-status-report
+ publishers:
+ - postbuildscript:
+ builders:
+ - shell: !include-raw: generate-csit-status-report.sh
+ script-only-if-succeeded: false
+ script-only-if-failed: false
+ mark-unstable-if-failed: false