-[submodule "jjb/global-jjb"]
- path = jjb/global-jjb
+[submodule "global-jjb"]
+ path = global-jjb
url = https://github.com/lfit/releng-global-jjb
[submodule "packer/common-packer"]
path = packer/common-packer
- url = https://gerrit.linuxfoundation.org/infra/releng/common-packer.git
+ url = https://github.com/lfit/releng-common-packer.git
* 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 - docker - 20171209-0317
--- /dev/null
+Subproject commit 5d1ddb578a5253fc360a73be6ceea89d65af043e
--- /dev/null
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
+VOLUME_SIZE=100
+HARDWARE_ID=odl-highcpu-2
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
VOLUME_SIZE=150
HARDWARE_ID=odl-standard-4
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
VOLUME_SIZE=150
HARDWARE_ID=odl-standard-8
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
VOLUME_SIZE=150
HARDWARE_ID=odl-highcpu-8
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
HARDWARE_ID=v1-standard-1
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
HARDWARE_ID=odl-highcpu-2
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
HARDWARE_ID=odl-standard-2
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
HARDWARE_ID=odl-standard-4
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
HARDWARE_ID=odl-highcpu-4
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
HARDWARE_ID=odl-highcpu-8
CLOUD_ZONE=ca-ymq-1
# Default Template Configuration
-IMAGE_NAME=ZZCI - CentOS 7 - builder - 20180802-220823.782
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
HARDWARE_ID=v1-standard-1
NETWORK_ID=b5fcd86e-efac-4997-b8bc-dbe0d35bc229
USER_DATA_ID=jenkins-init-script
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20180723-235543.682
+IMAGE_NAME=ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20181029-223449.514
HARDWARE_ID=odl-standard-1
LOGS_SERVER=https://logs.opendaylight.org
NEXUS_URL=https://nexus.opendaylight.org
ODLNEXUSPROXY=https://nexus.opendaylight.org
+SIGUL_BRIDGE_IP=10.30.168.3
+SIGUL_KEY=odl-release-2018
SILO=releng
SONAR_URL=https://sonar.opendaylight.org
LOGS_SERVER=https://logs.opendaylight.org
NEXUS_URL=https://nexus.opendaylight.org
ODLNEXUSPROXY=https://nexus.opendaylight.org
+SIGUL_BRIDGE_IP=10.30.168.3
+SIGUL_KEY=odl-sandbox
SILO=sandbox
SONAR_URL=https://sonar.opendaylight.org
+++ /dev/null
-The scripts in this directory are used by the Jenkins spin-up component
-for dynamic slaves.
-
-The spinup script will be as follows (${system_type} will be replaced
-with the appropriate system_type script)
-
-git clone https://git.opendaylight.org/gerrit/p/releng/builder.git
-cd builder/jenkins-scripts
-./basic_settings.sh
-./${system_type}.sh
+++ /dev/null
-#!/bin/bash
-
-#Increase limits
-cat <<EOF > /etc/security/limits.d/jenkins.conf
-jenkins soft nofile 16000
-jenkins hard nofile 16000
-EOF
-
-cat <<EOSSH >> /etc/ssh/ssh_config
-Host *
- ServerAliveInterval 60
-
-# we don't want to do SSH host key checking on Rackspace spin-up systems
-# Dallas (ODL)
-Host 10.29.12.* 10.29.13.* 10.29.14.* 10.29.15.*
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
-
-# Private Cloud (ODL)
-Host 10.29.8.* 10.29.9.* 10.29.10.* 10.29.11.*
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
-
-# Vexxhost (ODL)
-Host 10.30.170.* 10.30.171.*
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
-EOSSH
-
-cat <<EOKNOWN > /etc/ssh/ssh_known_hosts
-[140.211.169.26]:29418,[git.opendaylight.org]:29418 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyRXyHEw/P1iZr/fFFzbodT5orVV/ftnNRW59Zh9rnSY5Rmbc9aygsZHdtiWBERVVv8atrJSdZool75AglPDDYtPICUGWLR91YBSDcZwReh5S9es1dlQ6fyWTnv9QggSZ98KTQEuE3t/b5SfH0T6tXWmrNydv4J2/mejKRRLU2+oumbeVN1yB+8Uau/3w9/K5F5LgsDDzLkW35djLhPV8r0OfmxV/cAnLl7AaZlaqcJMA+2rGKqM3m3Yu+pQw4pxOfCSpejlAwL6c8tA9naOvBkuJk+hYpg5tDEq2QFGRX5y1F9xQpwpdzZROc5hdGYntM79VMMXTj+95dwVv/8yTsw==
-EOKNOWN
-
-# To handle the prompt style that is expected all over the environment
-# with how use use robotframework we need to make sure that it is
-# consistent for any of the users that are created during dynamic spin
-# ups
-echo 'PS1="[\u@\h \W]> "' >> /etc/skel/.bashrc
-
-# vim: sw=2 ts=2 sts=2 et :
+++ /dev/null
-#!/bin/bash
-# vim: sw=2 ts=2 sts=2 et :
-
-yum clean all
-
-# disable the firewall
-/bin/bash ./disable_firewall.sh
-
-cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
-Defaults:jenkins !requiretty
-jenkins ALL = NOPASSWD: ALL
-EOF
+++ /dev/null
-#!/bin/bash
-
-#######################
-# Create Jenkins User #
-#######################
-
-OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
-
-useradd -m -s /bin/bash jenkins
-
-# Check if docker group exists
-if grep -q docker /etc/group
-then
- # Add jenkins user to docker group
- usermod -a -G docker jenkins
-fi
-
-# Check if mock group exists
-if grep -q mock /etc/group
-then
- # Add jenkins user to mock group so they can build Int/Pack's RPMs
- usermod -a -G mock jenkins
-fi
-
-mkdir /home/jenkins/.ssh
-mkdir /w
-cp -r "/home/${OS}/.ssh/authorized_keys" /home/jenkins/.ssh/authorized_keys
-# Generate ssh key for use by Robot jobs
-echo -e 'y\n' | ssh-keygen -N "" -f /home/jenkins/.ssh/id_rsa -t rsa
-chown -R jenkins:jenkins /home/jenkins/.ssh /w
-chmod 700 /home/jenkins/.ssh
+++ /dev/null
-#!/bin/bash
-
-# It looks like the devstack gate is stomping on our dnsmasq setup which
-# therefore kills our ability to do proper lookups of some resources.
-# Let's capture the 3 nexus IPs into /etc/hosts
-cat <<EOHOSTS >> /etc/hosts
-# the internal address for nexus
-$(dig +short nexus.opendaylight.org) nexus.opendaylight.org
-# all the nexus proxies
-$(dig +short nexus01.dfw.opendaylight.org) nexus01.dfw.opendaylight.org
-$(dig +short nexus02.dfw.opendaylight.org) nexus02.dfw.opendaylight.org
-$(dig +short nexus03.ord.opendaylight.org) nexus03.ord.opendaylight.org
-EOHOSTS
-
-# make sure we don't require tty for sudo operations
-cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
-Defaults:jenkins !requiretty
-jenkins ALL = NOPASSWD: ALL
-EOF
-
-# vim: sw=2 ts=2 sts=2 et :
+++ /dev/null
-#!/bin/bash
-
-OS=$(facter operatingsystem)
-
-case "$OS" in
- Fedora)
- systemctl stop firewalld
- ;;
- CentOS|RedHat)
- if [ "$(facter operatingsystemrelease | cut -d '.' -f1)" -lt "7" ]; then
- service iptables stop
- else
- systemctl stop firewalld
- fi
- ;;
- *)
- # nothing to do
- ;;
-esac
-
-# vim: ts=4 ts=4 sts=4 et :
+++ /dev/null
-#!/bin/bash
-
-# make sure we don't require tty for sudo operations
-cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
-Defaults:jenkins !requiretty
-jenkins ALL = NOPASSWD: ALL
-EOF
-
-# make sure jenkins is part of the docker only if jenkins has already been
-# created
-
-if grep -q jenkins /etc/passwd
-then
- /usr/sbin/usermod -a -G docker jenkins
-fi
-
-# vim: sw=2 ts=2 sts=2 et :
+++ /dev/null
-#!/bin/bash
-
-## will be added in local environment
+++ /dev/null
-#!/bin/bash
-# SPDX-License-Identifier: EPL-1.0
-##############################################################################
-# Copyright (c) 2016 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
-##############################################################################
-
-cd /builder/jenkins-scripts || exit 1
-chmod +x -- *.sh
-./system_type.sh
-
-# shellcheck disable=SC1091
-source /tmp/system_type.sh
-./basic_settings.sh
-"./${SYSTEM_TYPE}.sh"
-
-# Create the jenkins user last so that hopefully we don't have to deal with
-# guard files
-./create_jenkins_user.sh
-
-## add local environment changes post scripts
-./jenkins-init-script-local-env.sh
-
-# Create a swap file
-dd if=/dev/zero of=/swap count=1024 bs=1MiB
-chmod 600 /swap
-mkswap /swap
-swapon /swap
+++ /dev/null
-#!/bin/bash
-
-# make sure we don't require tty for sudo operations
-cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
-Defaults:jenkins !requiretty
-jenkins ALL = NOPASSWD: ALL
-EOF
-
-# disable the firewall
-/bin/bash ./disable_firewall.sh
-
-# Add 'hostname' into /etc/hosts during node spinup time to avoid sudo returning
-# an 'unable to resolve host' message or some Java API's returning an unknown
-# host exception. The workaround on adding "myhostname" into /etc/nss-switch.conf
-# does not work on Ubuntu flavours.
-sed -i "/127.0.0.1/s/$/\t$(hostname)/" /etc/hosts
+++ /dev/null
-#!/bin/bash
-
-# make sure we don't require tty for sudo operations
-cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
-Defaults:jenkins !requiretty
-jenkins ALL = NOPASSWD: ALL
-EOF
-
-# make sure the firewall is stopped
-service iptables stop
-
-# vim: sw=2 ts=2 sts=2 et :
+++ /dev/null
-#!/bin/bash
-# SPDX-License-Identifier: EPL-1.0
-##############################################################################
-# Copyright (c) 2016 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
-##############################################################################
-
-HOST=$(/bin/hostname)
-SYSTEM_TYPE=''
-
-IFS=','
-for i in "java-builder,builder" \
- "builder,builder" \
- "devstack,devstack" \
- "docker,docker" \
- "gbp,ubuntu-docker-ovs" \
- "kubernetes,mininet-ubuntu" \
- "robot,robot" \
- "mininet,mininet-ubuntu"
-do set -- $i
- if [[ $HOST == *"$1"* ]]; then
- SYSTEM_TYPE="$2"
- break
- fi
-done
-
-# Write out the system type to an environment file to then be sourced
-echo "SYSTEM_TYPE=${SYSTEM_TYPE}" > /tmp/system_type.sh
-
-# vim: sw=4 ts=4 sts=4 et :
+++ /dev/null
-#!/bin/bash
-
-# make sure we don't require tty for sudo operations
-cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
-Defaults:jenkins !requiretty
-jenkins ALL = NOPASSWD: ALL
-EOF
-
-# Add 'hostname' into /etc/hosts during node spinup time to avoid sudo returning
-# an 'unable to resolve host' message or some Java API's returning an unknown
-# host exception. The workaround on adding "myhostname" into /etc/nss-switch.conf
-# does not work on Ubuntu flavours.
-sed -i "/127.0.0.1/s/$/\t$(hostname)/" /etc/hosts
-
-# Do the final install of OVS that the has to be done at boot time for
-# some reason due to how the snapshots keep behaving.
-dpkg --install /root/openvswitch-datapath-dkms* && \
-dpkg --install /root/openvswitch-{common,switch}*
-
-# add user jenkins to docker group
-/usr/sbin/usermod -a -G docker jenkins
-
-# pull docker images
-docker pull alagalah/odlpoc_ovs230
-
-# vim: sw=2 ts=2 sts=2 et :
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
robot-options: ''
# mininet image
- tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20180723-235543.682
+ tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20181029-223449.514
project: 'aaa'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
---
+- project:
+ name: aaa-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: aaa
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-aaa/47615/
+ rtd-token: 621132230e1307d38f4aaf27e669d7dfdf98532f
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'aaa'
+ project-name: 'aaa'
+ branch: 'master'
+ mvn-settings: 'aaa-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[aaa] [odlparent] [yangtools] [controller]'
+
+ # Used by the release job
+ staging-profile-id: 9318cf3c82c33
+
- project:
name: aaa-fluorine
jobs:
- '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: aaa
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-aaa/47615/
+ rtd-token: 621132230e1307d38f4aaf27e669d7dfdf98532f
- odl-maven-jobs
stream: fluorine
project: 'aaa'
project-name: 'aaa'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'aaa-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: alto-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'alto'
+ project-name: 'alto'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'alto-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'l2switch-merge-{stream}'
+ email-upstream: '[alto] [l2switch]'
+
+ # Used by the release job
+ staging-profile-id: 931eabae9693c
+
- project:
name: alto-fluorine
jobs:
stream: fluorine
project: 'alto'
project-name: 'alto'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'alto-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
---
+- project:
+ name: archetypes-neon
+ jobs:
+ - gerrit-maven-clm
+ - '{project-name}-merge-{stream}':
+ build-timeout: 180
+ cron: '@daily'
+ mvn-goals: clean install -V -Dmaven.compile.fork=true
+ - gerrit-maven-stage
+ - gerrit-maven-verify
+ - gerrit-maven-verify-dependencies:
+ build-timeout: 180
+
+ stream: neon
+ project: 'archetypes'
+ project-name: 'archetypes'
+ branch: 'master'
+ mvn-settings: 'archetypes-settings'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream},mdsal-merge-{stream}'
+ email-upstream: '[archetypes] [odlparent] [yangtools] [controller] [mdsal]'
+
+ # Used by the release job
+ staging-profile-id: d88dcfe6ce48d
+
- project:
name: archetypes-fluorine
jobs:
build-timeout: 180
cron: '@daily'
mvn-goals: clean install -V -Dmaven.compile.fork=true
- - gerrit-maven-release
+ - gerrit-maven-stage
- gerrit-maven-verify
- gerrit-maven-verify-dependencies:
build-timeout: 180
stream: fluorine
project: 'archetypes'
project-name: 'archetypes'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'archetypes-settings'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream},mdsal-merge-{stream}'
email-upstream: '[archetypes] [odlparent] [yangtools] [controller] [mdsal]'
+++ /dev/null
----
-- project:
- name: atrium-fluorine
- jobs:
- - odl-maven-jobs
-
- stream: fluorine
- project: 'atrium'
- project-name: 'atrium'
- branch: 'master'
- mvn-settings: 'atrium-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[atrium]'
-
- # Used by the release job
- staging-profile-id: 9324f12310e6a
-
-- project:
- name: atrium-oxygen
- jobs:
- - '{project-name}-distribution-check-{stream}'
- - odl-maven-jobs
-
- stream: oxygen
- project: 'atrium'
- project-name: 'atrium'
- branch: 'stable/oxygen'
- mvn-settings: 'atrium-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[atrium]'
-
- # Used by the release job
- staging-profile-id: 9324f12310e6a
-
-- project:
- name: atrium-sonar
- jobs:
- - gerrit-maven-sonar
- project: 'atrium'
- project-name: 'atrium'
- branch: 'master'
- mvn-settings: 'atrium-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
-- view:
- name: atrium
- description: 'List of atrium jobs'
- regex: '^atrium-.*'
- <<: *releng_view_common
name: autorelease-checkout-gerrit-patch
builders:
- shell: |
- #!/bin/bash
+ #!/bin/bash -l
set -eu -o pipefail
# If the project is autorelease then we do not need to cd
name: autorelease-determine-merge-order
builders:
- shell: |
+ #!/bin/bash -l
virtualenv --system-site-packages $WORKSPACE/venv
source $WORKSPACE/venv/bin/activate
PYTHON="$WORKSPACE/venv/bin/python"
- $PYTHON -m pip install --upgrade "pip<10.0.0" setuptools
$PYTHON -m pip install --upgrade networkx
$PYTHON -m pip freeze
./scripts/determine-merge-order.py
builders:
- integration-set-variables
- shell: |
- #!/bin/bash
+ #!/bin/bash -l
set +e # DO NOT fail build if copying fails.
cp -vf "$WORKSPACE/archives/patches/taglist.log" \
# Generate versions.csv containing version of all mvn artifacts in this build.
builders:
- shell: |
- #!/bin/bash
+ #!/bin/bash -l
set -eu -o pipefail
./scripts/generate-artifact-versions.sh
mkdir -p "$WORKSPACE/archives"
name: autorelease-generate-release-patches
builders:
- shell: !include-raw:
- - ../global-jjb/shell/lftools-install.sh
- prepare-release.sh
- builder:
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2015 The Linux Foundation and others.
- 'autorelease-generate-release-notes-{stream}'
- 'autorelease-release-{stream}':
build-node: centos7-autorelease-8c-32g
+ - 'autorelease-update-submodules-{stream}'
- 'autorelease-update-validate-jobs-{stream}'
- 'autorelease-version-bump-{stream}':
build-node: centos7-autorelease-8c-32g
- gerrit-tox-verify
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ integration-test: neon
+ extra-mvn-opts: -P!karaf -Pignore-lispflowmapping-integrationtest -Dsft.heap.max=4g
+ -Dskip.karaf.featureTest=true
+ - fluorine:
+ branch: 'stable/fluorine'
integration-test: fluorine
extra-mvn-opts: -P!karaf -Pignore-lispflowmapping-integrationtest -Dsft.heap.max=4g
-Dskip.karaf.featureTest=true
- timed: '{cron}'
builders:
+ - lf-infra-pre-build
# force jenkins install of maven version before any shell scripts use it
- lf-maven-install:
mvn-version: '{mvn-version}'
mark-unstable-if-failed: false
- lf-infra-publish
+- job-template:
+ name: 'autorelease-update-submodules-{stream}'
+
+ ######################
+ # Default parameters #
+ ######################
+
+ cron: 'H 0 * * *'
+
+ #####################
+ # Job configuration #
+ #####################
+
+ project-type: freestyle
+ node: centos7-builder-2c-2g
+
+ properties:
+ - lf-infra-properties:
+ build-days-to-keep: 7
+
+ parameters:
+ - lf-infra-parameters:
+ project: releng/autorelease
+ branch: '{branch}'
+ stream: '{stream}'
+ refspec: 'refs/heads/{branch}'
+ lftools-version: '{lftools-version}'
+
+ scm:
+ - lf-infra-gerrit-scm:
+ git-url: '$GIT_URL/$GERRIT_PROJECT'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ jenkins-ssh-credential: opendaylight-jenkins-ssh
+ submodule-recursive: true
+ choosing-strategy: default
+
+ wrappers:
+ - lf-infra-wrappers:
+ build-timeout: 10
+ jenkins-ssh-credential: opendaylight-jenkins-ssh
+
+ triggers:
+ - timed: '{obj:cron}'
+
+ builders:
+ - lf-infra-pre-build
+ # Fetch latest head of branch
+ - shell: |
+ git checkout $GERRIT_BRANCH
+ git submodule update --remote
+ git add .
+ - lf-infra-push-gerrit-patch:
+ project: '{project}'
+ gerrit-user: 'jenkins-$SILO'
+ gerrit-host: 'git.opendaylight.org'
+ gerrit-topic: 'autorelease-update-submodules'
+ gerrit-commit-message: 'Update submodules to latest HEAD of branch'
+ reviewers-email: ''
+
+ publishers:
+ - lf-infra-publish
+
- job-template:
name: autorelease-update-validate-jobs-{stream}
jenkins-ssh-credential: opendaylight-jenkins-ssh
builders:
+ - lf-infra-pre-build
- autorelease-update-project-views
- autorelease-update-validate-projects
- lf-infra-push-gerrit-patch:
jenkins-ssh-credential: opendaylight-jenkins-ssh
builders:
+ - lf-infra-pre-build
# force jenkins install of maven version before any shell scripts use it
- maven-target:
maven-version: mvn35
global-settings-type: cfp
- autorelease-cfp
- shell: !include-raw-escape:
- - ../global-jjb/shell/lftools-install.sh
- version-bump.sh
publishers:
branch-pattern: '**/{branch}'
builders:
+ - lf-infra-pre-build
- autorelease-generate-release-notes
publishers:
forbidden-files: ''
builders:
+ - lf-infra-pre-build
- autorelease-checkout-gerrit-patch
- autorelease-compare-projects
- jacoco-nojava-workaround
settings-type: cfp
global-settings: global-settings
global-settings-type: cfp
- # Hack to workaround the duplicate-finder plugin in odlparent breaking validate-autorelease
- - shell: sed -i 's/validate/none/' /tmp/r/org/opendaylight/odlparent/odlparent/3.0.2/odlparent-3.0.2.pom || true
- maven-target:
maven-version: mvn35
pom: pom.xml
build-node: centos7-builder-2c-8g
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
-#!/bin/bash
+#!/bin/bash -l
# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0>
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
exit 1
fi
+git config gitreview.username jenkins-releng
+git submodule foreach git review -s
+git review -s
+
# --- Start create new maintenance branch
echo "---> Creating new mainenance branch"
git submodule foreach git fetch origin
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2018 The Linux Foundation and others.
fi
done
-project_int_dist+=("mdsal")
project_int_dist+=("integration/distribution")
# Get a list of all the projects from releng/autorelease repo
-#!/bin/bash -x
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
# This script generates Service Release notes and appends them to the release
# notes in the docs project and submits a patch.
+set -x
+
RELEASE=${RELEASE:-$(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep generate-release-notes | awk '{print $2}')}
if [ -z "$RELEASE" ]; then
echo "ERROR: The RELEASE variable is not set."
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2015, 2017 The Linux Foundation and others.
echo "$RELEASE_TAG"
find . -name "*.xml" -print0 | xargs -0 sed -i 's/-SNAPSHOT//'
+# 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 -am \"Release $RELEASE_TAG\" || true"
git commit -am "Release $RELEASE_TAG"
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2018 The Linux Foundation and others.
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 - 2018 The Linux Foundation and others.
jobs:
- '{project-name}-validate-autorelease-{stream}'
stream: fluorine
- branch: master
+ branch: stable/fluorine
project-name:
- aaa:
project: aaa
--- /dev/null
+---
+# Autogenerated by autorelease autorelease-update-validate-autorelease-jobs-{stream} Jenkins job
+- project:
+ name: autorelease-validate-neon
+ jobs:
+ - '{project-name}-validate-autorelease-{stream}'
+ stream: neon
+ branch: master
+ project-name:
+ - aaa:
+ project: aaa
+ - bgpcep:
+ project: bgpcep
+ - controller:
+ project: controller
+ - coe:
+ project: coe
+ - daexim:
+ project: daexim
+ - genius:
+ project: genius
+ - infrautils:
+ project: infrautils
+ - integration-distribution:
+ project: integration/distribution
+ - lispflowmapping:
+ project: lispflowmapping
+ - netconf:
+ project: netconf
+ - netvirt:
+ project: netvirt
+ - neutron:
+ project: neutron
+ - openflowplugin:
+ project: openflowplugin
+ - ovsdb:
+ project: ovsdb
+ - serviceutils:
+ project: serviceutils
+ - sfc:
+ project: sfc
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
--- /dev/null
+---
+# Autogenerated view by autorelease autorelease-update-validate-jobs-{stream} Jenkins job
+- releng_view: &releng_autorelease_view_common_neon
+ name: releng-view-autorelease-neon
+ view-type: list
+ filter-executors: false
+ filter-queue: false
+ columns:
+ - status
+ - weather
+ - job
+ - last-success
+ - last-failure
+ - last-duration
+ - build-button
+ - jacoco
+ - find-bugs
+ - robot-list
+ recurse: false
+
+- view:
+ name: Merge-Neon
+ description: 'List of Neon Merge jobs for Autorelease'
+ job-name:
+ - 'aaa-maven-merge-neon'
+ - 'bgpcep-maven-merge-neon'
+ - 'controller-maven-merge-neon'
+ - 'coe-maven-merge-neon'
+ - 'daexim-maven-merge-neon'
+ - 'genius-maven-merge-neon'
+ - 'infrautils-maven-merge-neon'
+ - 'integration/distribution-maven-merge-neon'
+ - 'lispflowmapping-maven-merge-neon'
+ - 'netconf-maven-merge-neon'
+ - 'netvirt-maven-merge-neon'
+ - 'neutron-maven-merge-neon'
+ - 'openflowplugin-maven-merge-neon'
+ - 'ovsdb-maven-merge-neon'
+ - 'serviceutils-maven-merge-neon'
+ - 'sfc-maven-merge-neon'
+ <<: *releng_autorelease_view_common_neon
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: bgpcep-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: bgpcep
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-bgpcep/47576/
+ rtd-token: dbe9d1aabbe8812a26b428908f6613c28e3191fc
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'bgpcep'
+ project-name: 'bgpcep'
+ build-node: centos7-builder-8c-8g
+ build-timeout: 120
+ branch: 'master'
+ mvn-settings: 'bgpcep-settings'
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m'
+ dependencies: >
+ odlparent-merge-{stream},
+ yangtools-merge-{stream},
+ controller-merge-{stream},
+ mdsal-merge-{stream},
+ tcpmd5-merge-{stream}
+ email-upstream: '[bgpcep] [odlparent] [yangtools] [controller] [mdsal] [tcpmd5]'
+
+ # Used by the release job
+ staging-profile-id: 9427a05049030
+
- project:
name: bgpcep-fluorine
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: bgpcep
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-bgpcep/47576/
+ rtd-token: dbe9d1aabbe8812a26b428908f6613c28e3191fc
- odl-maven-jobs
stream: fluorine
project-name: 'bgpcep'
build-node: centos7-builder-8c-8g
build-timeout: 120
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'bgpcep-settings'
mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m'
dependencies: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: bier-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'bier'
+ project-name: 'bier'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ build-timeout: 90
+ mvn-settings: 'bier-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[bier]'
+
+ # Used by the release job
+ staging-profile-id: 942a8075b1f2a
+
- project:
name: bier-fluorine
jobs:
stream: fluorine
project: 'bier'
project-name: 'bier'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
build-timeout: 90
mvn-settings: 'bier-settings'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: capwap-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'capwap'
+ project-name: 'capwap'
+ branch: 'master'
+ mvn-settings: 'capwap-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[capwap]'
+
+ # Used by the release job
+ staging-profile-id: 96bd6b5bf86e3
+
- project:
name: capwap-fluorine
jobs:
stream: fluorine
project: 'capwap'
project-name: 'capwap'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'capwap-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
---
+- project:
+ name: cardinal-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'cardinal'
+ project-name: 'cardinal'
+ branch: 'master'
+ mvn-settings: 'cardinal-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'openflowplugin-merge-{stream},iotdm-merge-{stream},sfc-merge-{stream}'
+ email-upstream: '[cardinal] [openflowplugin] [iotdm] [sfc]'
+
+ # Used by the release job
+ staging-profile-id: 96be20348f0f2
+
- project:
name: cardinal-fluorine
jobs:
stream: fluorine
project: 'cardinal'
project-name: 'cardinal'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'cardinal-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'openflowplugin-merge-{stream},iotdm-merge-{stream},sfc-merge-{stream}'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: centinel-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'centinel'
+ project-name: 'centinel'
+ branch: 'master'
+ mvn-settings: 'centinel-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[centinel]'
+
+ # Used by the release job
+ staging-profile-id: 96bf9b3fefd8a
+
- project:
name: centinel-fluorine
jobs:
stream: fluorine
project: 'centinel'
project-name: 'centinel'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'centinel-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
install-features: 'odl-netvirt-coe'
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
project: 'coe'
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: coe-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: coe
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-coe/34924/
+ rtd-token: 95a5a8fed43b75c6be8432a2643f20a344ba5155
+ - odl-maven-jobs
+
+ project: 'coe'
+ project-name: 'coe'
+ stream: neon
+ branch: 'master'
+ mvn-settings: 'coe-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[coe] [odlparent] [yangtools] [controller]'
+ build-node: centos7-docker-2c-8g
+
+ # Used by the release job
+ staging-profile-id: 96c0be46aac33
+
- project:
name: coe-fluorine
jobs:
project: 'coe'
project-name: 'coe'
stream: fluorine
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'coe-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
functionality: 'akka1'
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
- inttest-csit-verify-3node
project: 'controller'
- functionality: 'clustering'
+ functionality:
+ - 'clustering-ask'
+ - 'clustering-tell'
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
project: 'controller'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
---
+- project:
+ name: controller-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: controller
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-controller/48288/
+ rtd-token: b8440116c823a80c0fb0479eb7448a9196e6932f
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'controller'
+ project-name: 'controller'
+ branch: 'master'
+ mvn-settings: 'controller-settings'
+ mvn-goals: 'clean deploy -Pintegrationtests,docs'
+ mvn-opts: '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
+ build-node: centos7-builder-8c-8g
+ build-timeout: 90
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},aaa-merge-{stream}'
+ email-upstream: '[controller] [odlparent] [yangtools] [aaa]'
+
+ # Used by the release job
+ staging-profile-id: 96c1c9177efdd
+
- project:
name: controller-fluorine
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: controller
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-controller/48288/
+ rtd-token: b8440116c823a80c0fb0479eb7448a9196e6932f
- odl-maven-jobs
stream: fluorine
project: 'controller'
project-name: 'controller'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'controller-settings'
mvn-goals: 'clean deploy -Pintegrationtests,docs'
mvn-opts: '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
---
+- project:
+ name: coretutorials-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'coretutorials'
+ project-name: 'coretutorials'
+ branch: 'master'
+ mvn-settings: 'coretutorials-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[coretutorials]'
+ build-timeout: 120
+
+ # Used by the release job
+ staging-profile-id: 96cd299563ec6
+
- project:
name: coretutorials-fluorine
jobs:
stream: fluorine
project: 'coretutorials'
project-name: 'coretutorials'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'coretutorials-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: daexim-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: daexim
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-daexim/47611/
+ rtd-token: 76284f12638574f131cdccdf257d852d07c195fc
+ - odl-maven-jobs
+
+ project: 'daexim'
+ project-name: 'daexim'
+ stream: neon
+ branch: 'master'
+ mvn-settings: 'daexim-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[daexim] [odlparent] [yangtools] [controller]'
+
+ # Used by the release job
+ staging-profile-id: 96e4dade34bd7
+
- project:
name: daexim-fluorine
jobs:
- '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: daexim
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-daexim/47611/
+ rtd-token: 76284f12638574f131cdccdf257d852d07c195fc
- odl-maven-jobs
project: 'daexim'
project-name: 'daexim'
stream: fluorine
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'daexim-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
nexus-snapshot-repo: opendaylight.snapshot
git-url: 'ssh://jenkins-$SILO@git.opendaylight.org:29418'
lftools-version: <1.0.0
- packer-version: 1.2.4
# defaults for parameters installing openstack for csit jobs
devstack-hash: ''
enable-openstack-services: ''
enable-openstack-compute-services: ''
enable-openstack-network-services: 'neutron,neutron-api,neutron-dhcp,neutron-metadata-agent'
+ enable-gre-type-driver: 'no'
ipsec-vxlan-tunnels-enabled: 'no'
lbaas-service-provider: ''
num-openstack-sites: 1
os-ctl-cnt: 0
os-cmp-cnt: 0
os-std-topo: '0cmb-1ctl-2cmp'
+ ovs-install: ''
# openstack-infra-parameters defaults
archive-artifacts: ''
sm-features: ''
# CSIT images configuration
- openstack_system_image_queens: ZZCI - CentOS 7 - devstack-pike - 20171208-1649
+ openstack_system_image_queens: ZZCI - CentOS 7 - devstack-queens - 20180911-204058.666
openstack_system_image_pike: ZZCI - CentOS 7 - devstack-pike - 20171208-1649
stack-template: csit-2-instance-type.yaml
docker_system_count: 1
docker_system_image: ZZCI - CentOS 7 - docker - 20180723-235456.035
odl_system_count: 1
odl_system_flavor: odl-highcpu-4
- odl_system_image: ZZCI - CentOS 7 - builder - 20180802-220823.782
+ odl_system_image: ZZCI - CentOS 7 - builder - x86_64 - 20181010-215635.956
openstack_system_count: 1
openstack_system_flavor: odl-standard-4
- openstack_system_image: ZZCI - CentOS 7 - devstack - 20180723-235345.727
+ openstack_system_image: ZZCI - CentOS 7 - devstack - 20180911-204116.460
openstack_system2_count: 0
openstack_system2_flavor: odl-standard-1
- openstack_system2_image: ZZCI - CentOS 7 - devstack - 20180723-235345.727
+ openstack_system2_image: ZZCI - CentOS 7 - devstack - 20180911-204116.460
tools_system_count: 1
tools_system_flavor: odl-highcpu-2
- tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20180723-235543.682
+ tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20181029-223449.514
# Default Robot framework options
robot-options: ''
trigger-jobs: ''
debug-map: ''
test-suites: ''
+ gate-job: 'False'
# Data for csit-verify jobs
# Branch for "last" version detection
10-exclude-value: ''
# Manual CSIT job lists used by sanity or periodic in nature.
+ csit-high-frequency-list-neon: >
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-neon
csit-high-frequency-list-fluorine: >
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine
csit-high-frequency-list-oxygen: >
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen
+ csit-sanity-list-neon: >
+ openflowplugin-csit-1node-sanity-only-neon,
+ distribution-sanity-neon
csit-sanity-list-fluorine: >
openflowplugin-csit-1node-sanity-only-fluorine,
distribution-sanity-fluorine
csit-sanity-list-oxygen: >
openflowplugin-csit-1node-sanity-only-oxygen,
distribution-sanity-oxygen
+ csit-weekly-list-neon: >
+ controller-csit-1node-notifications-longevity-only-neon,
+ controller-csit-3node-drb-partnheal-longevity-only-neon,
+ controller-csit-3node-drb-precedence-longevity-only-neon,
+ controller-csit-3node-ddb-expl-lead-movement-longevity-only-neon,
+ bgpcep-csit-3node-bgpclustering-longevity-only-neon,
+ distribution-deploy-neon,
+ distribution-offline-neon,
+ openflowplugin-csit-1node-longevity-only-neon
csit-weekly-list-fluorine: >
controller-csit-1node-notifications-longevity-only-fluorine,
controller-csit-3node-drb-partnheal-longevity-only-fluorine,
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: didm-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'didm'
+ project-name: 'didm'
+ branch: 'master'
+ mvn-settings: 'didm-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[didm]'
+
+ # Used by the release job
+ staging-profile-id: 96e6338c870f5
+
- project:
name: didm-fluorine
jobs:
stream: fluorine
project: 'didm'
project-name: 'didm'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'didm-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
---
+- project:
+ name: dlux-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'dlux'
+ project-name: 'dlux'
+ branch: 'master'
+ mvn-settings: 'dlux-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream}'
+ email-upstream: '[dlux] [odlparent]'
+
+ # Used by the release job
+ staging-profile-id: 96e6a0327484f
+
- project:
name: dlux-fluorine
jobs:
stream: fluorine
project: 'dlux'
project-name: 'dlux'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'dlux-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream}'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: dluxapps-neon
+ jobs:
+ - odl-maven-jobs
+
+ project: 'dluxapps'
+ project-name: 'dluxapps'
+ stream: neon
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'dluxapps-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[dluxapps] [odlparent] [yangtools] [controller]'
+
+ # Used by the release job
+ staging-profile-id: 96e6fb1e65bf9
+
- project:
name: dluxapps-fluorine
jobs:
project: 'dluxapps'
project-name: 'dluxapps'
stream: fluorine
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'dluxapps-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- gerrit-tox-verify
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: eman-neon
+ jobs:
+ - '{project-name}-maven-javadoc-jobs'
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'eman'
+ project-name: 'eman'
+ branch: 'master'
+ mvn-settings: 'eman-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[eman]'
+ build-node: centos7-builder-4c-16g
+
+ # Used by the release job
+ staging-profile-id: 96e9352979521
+
- project:
name: eman-fluorine
jobs:
stream: fluorine
project: 'eman'
project-name: 'eman'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'eman-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
---
+- project:
+ name: faas-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'faas'
+ project-name: 'faas'
+ branch: 'master'
+ mvn-settings: 'faas-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[faas]'
+
+ # Used by the release job
+ staging-profile-id: 96f5ac591d858
+
- project:
name: faas-fluorine
jobs:
stream: fluorine
project: 'faas'
project-name: 'faas'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'faas-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
---
+- project:
+ name: federation-neon
+ jobs:
+ - '{project-name}-maven-javadoc-jobs'
+ - odl-maven-jobs
+
+ project: 'federation'
+ project-name: 'federation'
+ stream: neon
+ branch: 'master'
+ mvn-settings: 'federation-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[federation] [odlparent] [yangtools] [controller]'
+
+ # Used by the release job
+ staging-profile-id: 96f78c7a40a24
+
- project:
name: federation-fluorine
jobs:
project: 'federation'
project-name: 'federation'
stream: fluorine
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'federation-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
testplan: '{project}-tdd-wip.txt'
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
install:
- - all:
- scope: 'all'
+ - only:
+ scope: 'only'
tools_system_count: 3
install-features: 'odl-genius-rest'
+ robot-options: '-v FAIL_ON_EXCEPTIONS:False'
- project:
name: genius-csit-genius-verify
verify-karaf-version: 'karaf4'
install:
- - all:
- scope: 'all'
+ - only:
+ scope: 'only'
tools_system_count: 3
project: 'genius'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
- cluster:
csit-list: >
- genius-csit-3node-gate-all-{stream}
+ genius-csit-3node-gate-only-{stream}
- tdd-wip:
csit-list: >
- genius-csit-1node-tdd-wip-all-{stream}
+ genius-csit-1node-tdd-wip-only-{stream}
---
+- project:
+ name: genius-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: genius
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-genius/34944/
+ rtd-token: 7ba691afb89bd53d19fd7d8585fdd8bd6620de7f
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'genius'
+ project-name: 'genius'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'genius-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ build-timeout: 90
+ dependencies: >
+ controller-merge-{stream},
+ yangtools-merge-{stream},
+ odlparent-merge-{stream},
+ openflowplugin-merge-{stream},
+ neutron-merge-{stream}
+ email-upstream: '[genius] [controller] [yangtools] [odlparent] [openflowplugin] [neutron]'
+
+ # Used by the release job
+ staging-profile-id: 96fb4b6d9d1ee
+
- project:
name: genius-fluorine
jobs:
stream: fluorine
project: 'genius'
project-name: 'genius'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'genius-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+++ /dev/null
-Subproject commit 356637f0d3d4091aecde9889c1bc9ec758a33336
--- /dev/null
+../../global-jjb/jenkins-admin
\ No newline at end of file
--- /dev/null
+../../global-jjb/jenkins-init-scripts
\ No newline at end of file
--- /dev/null
+../../global-jjb/jjb
\ No newline at end of file
--- /dev/null
+../../global-jjb/shell
\ No newline at end of file
functionality: 'openstack'
stream:
- - fluorine:
+ - neon:
branch: 'master'
install-features: 'odl-groupbasedpolicy-neutron-and-ofoverlay,odl-restconf'
+ - fluorine:
+ branch: 'stable/fluorine'
+ install-features: 'odl-groupbasedpolicy-neutron-and-ofoverlay,odl-restconf'
- oxygen:
branch: 'stable/oxygen'
install-features: 'odl-groupbasedpolicy-neutron-and-ofoverlay,odl-restconf'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: groupbasedpolicy-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'groupbasedpolicy'
+ project-name: 'groupbasedpolicy'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'groupbasedpolicy-settings'
+ mvn-goals: '-U clean deploy findbugs:findbugs'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ build-timeout: 90
+ dependencies: >
+ openflowjava-merge-{stream},
+ openflowplugin-merge-{stream},
+ neutron-merge-{stream},
+ sfc-merge-{stream},
+ ovsdb-merge-{stream}
+ email-upstream: '[groupbasedpolicy] [openflowjava] [openflowplugin] [neutron] [sfc] [ovsdb]'
+
+ # Used by the release job
+ staging-profile-id: 96fbb93f95a76
+
- project:
name: groupbasedpolicy-fluorine
jobs:
stream: fluorine
project: 'groupbasedpolicy'
project-name: 'groupbasedpolicy'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'groupbasedpolicy-settings'
mvn-goals: '-U clean deploy findbugs:findbugs'
---
+- project:
+ name: vbd-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'honeycomb/vbd'
+ project-name: 'vbd'
+ branch: 'master'
+ mvn-settings: 'honeycomb-vbd-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[vbd]'
+
+ # Used by the release job
+ staging-profile-id: 96fc362c36862
+
- project:
name: vbd-fluorine
jobs:
stream: fluorine
project: 'honeycomb/vbd'
project-name: 'vbd'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'honeycomb-vbd-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
project: 'infrautils'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
---
+- project:
+ name: infrautils-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ doc-dir: .tox/docs/tmp/html
+ project-pattern: infrautils
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-infrautils/38993/
+ rtd-token: 294c76173237e3a088365c31012cf4ddaa767dc9
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'infrautils'
+ project-name: 'infrautils'
+ branch: 'master'
+ mvn-settings: 'infrautils-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream}'
+ email-upstream: '[infrautils] [odlparent]'
+
+ # Used by the release job
+ staging-profile-id: 96fca0367756c
+
- project:
name: infrautils-fluorine
jobs:
stream: fluorine
project: 'infrautils'
project-name: 'infrautils'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'infrautils-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream}'
ENABLE_NETWORKING_L2GW: ${ENABLE_NETWORKING_L2GW}
CREATE_INITIAL_NETWORKS: ${CREATE_INITIAL_NETWORKS}
LBAAS_SERVICE_PROVIDER: ${LBAAS_SERVICE_PROVIDER}
-NUM_OPENSTACK_SITES: ${NUM_OPENSTACK_SITES}
ODL_SFC_DRIVER: ${ODL_SFC_DRIVER}
ODL_SNAT_MODE: ${ODL_SNAT_MODE}
mkdir -p ${WORKSPACE}/archives
mv /tmp/changes.txt ${WORKSPACE}/archives
+ mv /tmp/validations.txt ${WORKSPACE}/archives
mv ${WORKSPACE}/rabbit.txt ${WORKSPACE}/archives
+ mv ${WORKSPACE}/haproxy.cfg ${WORKSPACE}/archives
+ ssh ${OPENSTACK_HAPROXY_1_IP} "sudo journalctl -u haproxy > /tmp/haproxy.log"
+ scp ${OPENSTACK_HAPROXY_1_IP}:/tmp/haproxy.log ${WORKSPACE}/archives/
sleep 5
# FIXME: Do not create .tar and gzip before copying.
scp ${!OSIP}:/tmp/dmesg.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/extra_debug.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/get_devstack.sh.txt ${NODE_FOLDER}
+ scp ${!OSIP}:/tmp/install_ovs.txt ${NODE_FOLDER}
scp ${!OSIP}:/tmp/journalctl.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/ovsdb-tool.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/tcpdump_start.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/dmesg.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/extra_debug.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/get_devstack.sh.txt ${NODE_FOLDER}
+ scp ${!OSIP}:/tmp/install_ovs.txt ${NODE_FOLDER}
scp ${!OSIP}:/tmp/journalctl.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/ovsdb-tool.log ${NODE_FOLDER}
scp ${!OSIP}:/tmp/tcpdump_start.log ${NODE_FOLDER}
echo "tempest results not found in ${DEVSTACK_TEMPEST_DIR}/${TESTREPO}/0"
fi
} # collect_netvirt_logs()
+
+# Utility function for joining strings.
+function join() {
+ delim=' '
+ final=$1; shift
+
+ for str in "$@" ; do
+ final=${final}${delim}${str}
+ done
+
+ echo ${final}
+}
+
+function get_nodes_list() {
+ # Create the string for nodes
+ for i in `seq 1 ${NUM_ODL_SYSTEM}` ; do
+ CONTROLLERIP=ODL_SYSTEM_${i}_IP
+ nodes[$i]=${!CONTROLLERIP}
+ done
+
+ nodes_list=$(join "${nodes[@]}")
+ echo ${nodes_list}
+}
+
+function get_features() {
+ if [ ${CONTROLLERSCOPE} == 'all' ]; then
+ ACTUALFEATURES="odl-integration-compatible-with-all,${CONTROLLERFEATURES}"
+ export CONTROLLERMEM="3072m"
+ else
+ ACTUALFEATURES="odl-infrautils-ready,${CONTROLLERFEATURES}"
+ fi
+
+ # Some versions of jenkins job builder result in feature list containing spaces
+ # and ending in newline. Remove all that.
+ ACTUALFEATURES=`echo "${ACTUALFEATURES}" | tr -d '\n \r'`
+ echo "ACTUALFEATURES: ${ACTUALFEATURES}"
+
+ # In the case that we want to install features via karaf shell, a space separated list of
+ # ACTUALFEATURES IS NEEDED
+ SPACE_SEPARATED_FEATURES=$(echo "${ACTUALFEATURES}" | tr ',' ' ')
+ echo "SPACE_SEPARATED_FEATURES: ${SPACE_SEPARATED_FEATURES}"
+
+ export ACTUALFEATURES
+ export SPACE_SEPARATED_FEATURES
+}
+
+# Create the configuration script to be run on controllers.
+function create_configuration_script() {
+ cat > ${WORKSPACE}/configuration-script.sh <<EOF
+set -x
+source /tmp/common-functions.sh ${BUNDLEFOLDER}
+
+echo "Changing to /tmp"
+cd /tmp
+
+echo "Downloading the distribution from ${ACTUAL_BUNDLE_URL}"
+wget --progress=dot:mega '${ACTUAL_BUNDLE_URL}'
+
+echo "Extracting the new controller..."
+unzip -q ${BUNDLE}
+
+echo "Adding external repositories..."
+sed -ie "s%org.ops4j.pax.url.mvn.repositories=%org.ops4j.pax.url.mvn.repositories=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot@id=opendaylight-snapshot@snapshots, https://nexus.opendaylight.org/content/repositories/public@id=opendaylight-mirror, http://repo1.maven.org/maven2@id=central, http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release, http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external, http://zodiac.springsource.com/maven/bundles/release@id=gemini, http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases, https://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@noreleases, https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases%g" ${MAVENCONF}
+cat ${MAVENCONF}
+
+if [[ "$USEFEATURESBOOT" == "True" ]]; then
+ echo "Configuring the startup features..."
+ sed -ie "s/\(featuresBoot=\|featuresBoot =\)/featuresBoot = ${ACTUALFEATURES},/g" ${FEATURESCONF}
+fi
+
+FEATURE_TEST_STRING="features-integration-test"
+KARAF_VERSION=${KARAF_VERSION:-karaf4}
+if [[ "$KARAF_VERSION" == "karaf4" ]]; then
+ FEATURE_TEST_STRING="features-test"
+fi
+
+sed -ie "s%\(featuresRepositories=\|featuresRepositories =\)%featuresRepositories = mvn:org.opendaylight.integration/\${FEATURE_TEST_STRING}/${BUNDLE_VERSION}/xml/features,mvn:org.apache.karaf.decanter/apache-karaf-decanter/1.0.0/xml/features,%g" ${FEATURESCONF}
+if [[ ! -z "${REPO_URL}" ]]; then
+ sed -ie "s%featuresRepositories =%featuresRepositories = ${REPO_URL},%g" ${FEATURESCONF}
+fi
+cat ${FEATURESCONF}
+
+configure_karaf_log "${KARAF_VERSION}" "${CONTROLLERDEBUGMAP}"
+
+set_java_vars "${JAVA_HOME}" "${CONTROLLERMEM}" "${MEMCONF}"
+
+echo "Listing all open ports on controller system..."
+netstat -pnatu
+
+# Copy shard file if exists
+if [ -f /tmp/custom_shard_config.txt ]; then
+ echo "Custom shard config exists!!!"
+ echo "Copying the shard config..."
+ cp /tmp/custom_shard_config.txt /tmp/${BUNDLEFOLDER}/bin/
+fi
+
+echo "Configuring cluster"
+/tmp/${BUNDLEFOLDER}/bin/configure_cluster.sh \$1 ${nodes_list}
+
+echo "Dump akka.conf"
+cat ${AKKACONF}
+
+echo "Dump modules.conf"
+cat ${MODULESCONF}
+
+echo "Dump module-shards.conf"
+cat ${MODULESHARDSCONF}
+EOF
+# cat > ${WORKSPACE}/configuration-script.sh <<EOF
+}
+
+# Create the startup script to be run on controllers.
+function create_startup_script() {
+ cat > ${WORKSPACE}/startup-script.sh <<EOF
+echo "Redirecting karaf console output to karaf_console.log"
+export KARAF_REDIRECT="/tmp/${BUNDLEFOLDER}/data/log/karaf_console.log"
+mkdir -p /tmp/${BUNDLEFOLDER}/data/log
+
+echo "Starting controller..."
+/tmp/${BUNDLEFOLDER}/bin/start
+EOF
+# cat > ${WORKSPACE}/startup-script.sh <<EOF
+}
+
+function create_post_startup_script() {
+ cat > ${WORKSPACE}/post-startup-script.sh <<EOF
+if [[ "$USEFEATURESBOOT" != "True" ]]; then
+
+ # wait up to 60s for karaf port 8101 to be opened, polling every 5s
+ loop_count=0;
+ until [[ \$loop_count -ge 12 ]]; do
+ netstat -na | grep 8101 && break;
+ loop_count=\$[\$loop_count+1];
+ sleep 5;
+ done
+
+ echo "going to feature:install --no-auto-refresh ${SPACE_SEPARATED_FEATURES} one at a time"
+ for feature in ${SPACE_SEPARATED_FEATURES}; do
+ sshpass -p karaf ssh -o StrictHostKeyChecking=no \
+ -o UserKnownHostsFile=/dev/null \
+ -o LogLevel=error \
+ -p 8101 karaf@localhost \
+ feature:install --no-auto-refresh \$feature;
+ done
+
+ echo "ssh to karaf console to list -i installed features"
+ sshpass -p karaf ssh -o StrictHostKeyChecking=no \
+ -o UserKnownHostsFile=/dev/null \
+ -o LogLevel=error \
+ -p 8101 karaf@localhost \
+ feature:list -i
+fi
+
+echo "Waiting up to 3 minutes for controller to come up, checking every 5 seconds..."
+for i in {1..36}; do
+ sleep 5;
+ grep 'org.opendaylight.infrautils.*System ready' /tmp/${BUNDLEFOLDER}/data/log/karaf.log
+ if [ \$? -eq 0 ]; then
+ echo "Controller is UP"
+ break
+ fi
+done;
+
+# if we ended up not finding ready status in the above loop, we can output some debugs
+grep 'org.opendaylight.infrautils.*System ready' /tmp/${BUNDLEFOLDER}/data/log/karaf.log
+if [ $? -ne 0 ]; then
+ echo "Timeout Controller DOWN"
+ echo "Dumping first 500K bytes of karaf log..."
+ head --bytes=500K "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"
+ echo "Dumping last 500K bytes of karaf log..."
+ tail --bytes=500K "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"
+ echo "Listing all open ports on controller system"
+ netstat -pnatu
+ exit 1
+fi
+
+echo "Listing all open ports on controller system..."
+netstat -pnatu
+
+function exit_on_log_file_message {
+ echo "looking for \"\$1\" in log file"
+ if grep --quiet "\$1" "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"; then
+ echo ABORTING: found "\$1"
+ echo "Dumping first 500K bytes of karaf log..."
+ head --bytes=500K "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"
+ echo "Dumping last 500K bytes of karaf log..."
+ tail --bytes=500K "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"
+ exit 1
+ fi
+}
+
+exit_on_log_file_message 'BindException: Address already in use'
+exit_on_log_file_message 'server is unhealthy'
+EOF
+# cat > ${WORKSPACE}/post-startup-script.sh <<EOF
+}
+
+# Copy over the configuration script and configuration files to each controller
+# Execute the configuration script on each controller.
+function copy_and_run_configuration_script() {
+ for i in `seq 1 ${NUM_ODL_SYSTEM}`; do
+ CONTROLLERIP=ODL_SYSTEM_${i}_IP
+ echo "Configuring member-${i} with IP address ${!CONTROLLERIP}"
+ scp ${WORKSPACE}/configuration-script.sh ${!CONTROLLERIP}:/tmp/
+ ssh ${!CONTROLLERIP} "bash /tmp/configuration-script.sh ${i}"
+ done
+}
+
+# Copy over the startup script to each controller and execute it.
+function copy_and_run_startup_script() {
+ for i in `seq 1 ${NUM_ODL_SYSTEM}`; do
+ CONTROLLERIP=ODL_SYSTEM_${i}_IP
+ echo "Starting member-${i} with IP address ${!CONTROLLERIP}"
+ scp ${WORKSPACE}/startup-script.sh ${!CONTROLLERIP}:/tmp/
+ ssh ${!CONTROLLERIP} "bash /tmp/startup-script.sh"
+ done
+}
+
+function copy_and_run_post_startup_script() {
+ seed_index=1
+ for i in `seq 1 ${NUM_ODL_SYSTEM}`; do
+ CONTROLLERIP=ODL_SYSTEM_${i}_IP
+ echo "Execute the post startup script on controller ${!CONTROLLERIP}"
+ scp ${WORKSPACE}/post-startup-script.sh ${!CONTROLLERIP}:/tmp
+ ssh ${!CONTROLLERIP} "bash /tmp/post-startup-script.sh $(( seed_index++ ))"
+ if [ $(( $i % ${NUM_ODL_SYSTEM} )) == 0 ]; then
+ seed_index=1
+ fi
+ done
+}
+
+function create_controller_variables() {
+ echo "Generating controller variables..."
+ for i in `seq 1 ${NUM_ODL_SYSTEM}`; do
+ CONTROLLERIP=ODL_SYSTEM_${i}_IP
+ odl_variables=${odl_variables}" -v ${CONTROLLERIP}:${!CONTROLLERIP}"
+ echo "Lets's take the karaf thread dump"
+ ssh ${!CONTROLLERIP} "sudo ps aux" > ${WORKSPACE}/ps_before.log
+ pid=$(grep org.apache.karaf.main.Main ${WORKSPACE}/ps_before.log | grep -v grep | tr -s ' ' | cut -f2 -d' ')
+ echo "karaf main: org.apache.karaf.main.Main, pid:${pid}"
+ ssh ${!CONTROLLERIP} "${JAVA_HOME}/bin/jstack -l ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_before.log || true
+ done
+}
+
+# Function to build OVS from git repo
+function build_ovs() {
+ local -r ip=$1
+ local -r version=$2
+ local -r rpm_path="$3"
+
+ echo "Building OVS ${version} on ${ip} ..."
+ cat > ${WORKSPACE}/build_ovs.sh << EOF
+set -ex -o pipefail
+
+echo '---> Building openvswitch version ${version}'
+
+# Install running kernel devel packages
+K_VERSION=\$(uname -r)
+YUM_OPTS="-y --disablerepo=* --enablerepo=base,updates,extra,C*-base,C*-updates,C*-extras"
+# Install centos-release to update vault repos from which to fetch
+# kernel devel packages
+sudo yum \${YUM_OPTS} install centos-release yum-utils @'Development Tools' rpm-build
+sudo yum \${YUM_OPTS} install kernel-{devel,headers}-\${K_VERSION}
+
+TMP=\$(mktemp -d)
+pushd \${TMP}
+
+git clone https://github.com/openvswitch/ovs.git
+cd ovs
+
+if [ "${version}" = "v2.6.1-nsh" ]; then
+ git checkout v2.6.1
+ echo "Will apply nsh patches for OVS version 2.6.1"
+ git clone https://github.com/yyang13/ovs_nsh_patches.git ../ovs_nsh_patches
+ git apply ../ovs_nsh_patches/v2.6.1_centos7/*.patch
+else
+ git checkout ${version}
+fi
+
+# On early versions of OVS, flake warnings would fail the build.
+# Remove it.
+sudo pip uninstall -y flake8
+
+# Get rid of sphinx dep as it conflicts with the already
+# installed one (via pip). Docs wont be built.
+sed -i "/BuildRequires:.*sphinx.*/d" rhel/openvswitch-fedora.spec.in
+
+sed -e 's/@VERSION@/0.0.1/' rhel/openvswitch-fedora.spec.in > /tmp/ovs.spec
+sed -e 's/@VERSION@/0.0.1/' rhel/openvswitch-kmod-fedora.spec.in > /tmp/ovs-kmod.spec
+sed -e 's/@VERSION@/0.0.1/' rhel/openvswitch-dkms.spec.in > /tmp/ovs-dkms.spec
+sudo yum-builddep \${YUM_OPTS} /tmp/ovs.spec /tmp/ovs-kmod.spec /tmp/ovs-dkms.spec
+rm /tmp/ovs.spec /tmp/ovs-kmod.spec /tmp/ovs-dkms.spec
+./boot.sh
+./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --with-linux=/lib/modules/\${K_VERSION}/build --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-libcapng --enable-ssl --with-pkidir=/var/lib/openvswitch/pki PYTHON=/usr/bin/python2
+make rpm-fedora RPMBUILD_OPT="--without check"
+# Build dkms only for now
+# make rpm-fedora-kmod RPMBUILD_OPT='-D "kversion \${K_VERSION}"'
+rpmbuild -D "_topdir \$(pwd)/rpm/rpmbuild" -bb --without check rhel/openvswitch-dkms.spec
+
+mkdir -p /tmp/ovs_rpms
+cp -r rpm/rpmbuild/RPMS/* /tmp/ovs_rpms/
+
+popd
+rm -rf \${TMP}
+EOF
+
+ scp ${WORKSPACE}/build_ovs.sh ${ip}:/tmp
+ ${SSH} ${ip} " bash /tmp/build_ovs.sh >> /tmp/install_ovs.txt 2>&1"
+ scp -r ${ip}:/tmp/ovs_rpms/* "${rpm_path}/"
+ ${SSH} ${ip} "rm -rf /tmp/ovs_rpms"
+}
+
+# Install OVS RPMs from yum repo
+function install_ovs_from_repo() {
+ local -r ip=$1
+ local -r rpm_repo="$2"
+
+ echo "Installing OVS from repo ${rpm_repo} on ${ip} ..."
+ cat > ${WORKSPACE}/install_ovs.sh << EOF
+set -ex -o pipefail
+
+echo '---> Installing openvswitch from ${rpm_repo}'
+
+# We need repoquery from yum-utils.
+sudo yum -y install yum-utils
+
+# Get openvswitch packages offered by custom repo.
+# dkms package will have priority over kmod.
+OVS_REPO_OPTS="--repofrompath=ovs-repo,${rpm_repo} --disablerepo=* --enablerepo=ovs-repo"
+OVS_PKGS=\$(repoquery \${OVS_REPO_OPTS} openvswitch)
+OVS_SEL_PKG=\$(repoquery \${OVS_REPO_OPTS} openvswitch-selinux-policy)
+OVS_DKMS_PKG=\$(repoquery \${OVS_REPO_OPTS} openvswitch-dkms)
+OVS_KMOD_PKG=\$(repoquery \${OVS_REPO_OPTS} openvswitch-kmod)
+[ -n "\${OVS_SEL_PKG}" ] && OVS_PKGS="\${OVS_PKGS} \${OVS_SEL_PKG}"
+[ -n "\${OVS_DKMS_PKG}" ] && OVS_PKGS="\${OVS_PKGS} \${OVS_DKMS_PKG}"
+[ -z "\${OVS_DKMS_PKG}" ] && [ -n "\${OVS_KMOD_PKG}" ] && OVS_PKGS="\${OVS_PKGS} \${OVS_KMOD_PKG}"
+
+# Bail with error if custom repo was provided but we could not
+# find suitable packages there.
+[ -z "\${OVS_PKGS}" ] && echo "No OVS packages found in custom repo." && exit 1
+
+# Install kernel & devel packages for the openvswitch dkms package.
+if [ -n "\${OVS_DKMS_PKG}" ]; then
+ # install centos-release to update vault repos from which to fetch
+ # kernel devel packages
+ sudo yum -y install centos-release
+ K_VERSION=\$(uname -r)
+ YUM_OPTS="-y --disablerepo=* --enablerepo=base,updates,extra,C*-base,C*-updates,C*-extras"
+ sudo yum \${YUM_OPTS} install kernel-{headers,devel}-\${K_VERSION} @'Development Tools' python-six
+fi
+
+PREV_MOD=\$(sudo modinfo -n openvswitch || echo '')
+
+# Install OVS offered by custom repo.
+sudo yum-config-manager --add-repo "${rpm_repo}"
+sudo yum -y versionlock delete openvswitch-*
+sudo yum -y remove openvswitch-*
+sudo yum -y --nogpgcheck install \${OVS_PKGS}
+sudo yum -y versionlock add \${OVS_PKGS}
+
+# Most recent OVS versions have some incompatibility with certain versions of iptables
+# This below line will overcome that problem.
+sudo modprobe openvswitch
+
+# Start OVS and print details
+sudo systemctl start openvswitch
+sudo systemctl enable openvswitch
+sudo ovs-vsctl --retry -t 5 show
+sudo modinfo openvswitch
+
+# dkms rpm install can fail silently (probably because the OVS version is
+# incompatible with the running kernel), verify module was updated.
+NEW_MOD=\$(sudo modinfo -n openvswitch || echo '')
+[ "\${PREV_MOD}" != "\${NEW_MOD}" ] || (echo "Kernel module was not updated" && exit 1)
+EOF
+
+ scp ${WORKSPACE}/install_ovs.sh ${ip}:/tmp
+ ${SSH} ${ip} "bash /tmp/install_ovs.sh >> /tmp/install_ovs.txt 2>&1"
+}
+
+# Install OVS RPMS from path
+function install_ovs_from_path() {
+ local -r ip=$1
+ local -r rpm_path="$2"
+
+ echo "Creating OVS RPM repo on ${ip} ..."
+ ${SSH} ${ip} "mkdir -p /tmp/ovs_rpms"
+ scp -r "${rpm_path}"/* ${ip}:/tmp/ovs_rpms
+ ${SSH} ${ip} "sudo yum -y install createrepo && createrepo --database /tmp/ovs_rpms"
+ install_ovs_from_repo ${ip} file:/tmp/ovs_rpms
+}
+
+
-#!/bin/bash
+#!/bin/bash -l
# Copy the whole script to /tmp/common-functions.sh and to remote nodes but
# only if this script itself is executing and not sourced. jenkins prepends this
echo "Copying common-functions.sh to /tmp"
cp "${0}" /tmp/common-functions.sh
- source /tmp/v/openstack/bin/activate
mapfile -t ips <<< "$(openstack stack show -f json -c outputs "$STACK_NAME" | jq -r '.outputs[] | select(.output_key | match("^vm_[0-9]+_ips$")) | .output_value | .[]')"
for ip in "${ips[@]}"; do
echo "Copying common-functions.sh to ${ip}:/tmp"
aaa-csit-1node-authn-all-fluorine,
-aaa-csit-1node-keystone-all-fluorine,
aaa-csit-1node-tls-only-fluorine,
bgpcep-csit-1node-bgp-ingest-all-fluorine,
bgpcep-csit-1node-bgp-ingest-mixed-all-fluorine,
controller-csit-1node-benchmark-all-fluorine,
controller-csit-1node-rest-cars-perf-all-fluorine,
controller-csit-3node-benchmark-all-fluorine,
-controller-csit-3node-clustering-all-fluorine,
+controller-csit-3node-clustering-ask-all-fluorine,
+controller-csit-3node-clustering-tell-all-fluorine,
controller-csit-3node-rest-clust-cars-perf-ask-only-fluorine,
controller-csit-3node-rest-clust-cars-perf-tell-only-fluorine,
daexim-csit-1node-basic-only-fluorine,
daexim-csit-3node-clustering-basic-only-fluorine,
distribution-csit-1node-userfeatures-all-fluorine,
distribution-csit-managed-fluorine,
-genius-csit-1node-upstream-all-fluorine,
-genius-csit-3node-upstream-all-fluorine,
+genius-csit-1node-upstream-only-fluorine,
+genius-csit-3node-upstream-only-fluorine,
lispflowmapping-csit-1node-msmr-all-fluorine,
lispflowmapping-csit-1node-performance-only-fluorine,
lispflowmapping-csit-3node-msmr-all-fluorine,
mdsal-csit-1node-bindingv1-only-fluorine,
netconf-csit-1node-callhome-only-fluorine,
-netconf-csit-1node-scale-all-fluorine,
+netconf-csit-1node-scale-only-fluorine,
netconf-csit-1node-userfeatures-all-fluorine,
netconf-csit-3node-cluster-stress-all-fluorine,
netconf-csit-3node-clustering-all-fluorine,
netconf-csit-3node-clustering-scale-all-fluorine,
-netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-fluorine,
-netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-fluorine,
-netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-snat-conntrack-fluorine,
+netvirt-csit-1node-0cmb-1ctl-2cmp-apex-queens-upstream-snat-conntrack-fluorine,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-sfc-fluorine,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upgrade-fluorine,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upgrade-snat-conntrack-fluorine,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-fluorine,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-fluorine,
-netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike-upstream-stateful-fluorine,
-netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-fluorine,
-netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike-upstream-stateful-snat-conntrack-fluorine,
netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-fluorine,
-netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-fluorine,
netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-snat-conntrack-fluorine,
-netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-fluorine,
-netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-fluorine,
-netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-snat-conntrack-fluorine,
netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine,
netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-fluorine,
netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-fluorine,
-netvirt-csit-3node-1cmb-0ctl-0cmp-openstack-pike-upstream-stateful-fluorine,
-netvirt-csit-3node-1cmb-0ctl-0cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-fluorine,
-netvirt-csit-3node-1cmb-0ctl-0cmp-openstack-pike-upstream-stateful-snat-conntrack-fluorine,
-netvirt-csit-3node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-fluorine,
-netvirt-csit-3node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-fluorine,
-netvirt-csit-3node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-snat-conntrack-fluorine,
-netvirt-csit-hwvtep-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-fluorine,
netvirt-csit-hwvtep-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine,
-netvirt-csit-hwvtep-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-fluorine,
netvirt-csit-hwvtep-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine,
+odltools-csit-1node-upstream-all-fluorine,
openflowplugin-csit-1node-bundle-based-reconciliation-all-fluorine,
openflowplugin-csit-1node-cbench-only-fluorine,
openflowplugin-csit-1node-flow-services-all-fluorine,
--- /dev/null
+aaa-csit-1node-authn-all-neon,
+aaa-csit-1node-tls-only-neon,
+bgpcep-csit-1node-bgp-ingest-all-neon,
+bgpcep-csit-1node-bgp-ingest-mixed-all-neon,
+bgpcep-csit-1node-throughpcep-all-neon,
+bgpcep-csit-1node-userfeatures-all-neon,
+bgpcep-csit-3node-bgpclustering-all-neon,
+bgpcep-csit-3node-bgpclustering-ha-only-neon,
+coe-csit-1node-container-networking-all-neon,
+controller-csit-1node-akka1-all-neon,
+controller-csit-1node-benchmark-all-neon,
+controller-csit-1node-rest-cars-perf-all-neon,
+controller-csit-3node-benchmark-all-neon,
+controller-csit-3node-clustering-ask-all-neon,
+controller-csit-3node-clustering-tell-all-neon,
+controller-csit-3node-rest-clust-cars-perf-ask-only-neon,
+controller-csit-3node-rest-clust-cars-perf-tell-only-neon,
+daexim-csit-1node-basic-only-neon,
+daexim-csit-3node-clustering-basic-only-neon,
+distribution-csit-1node-userfeatures-all-neon,
+distribution-csit-managed-neon,
+genius-csit-1node-upstream-only-neon,
+genius-csit-3node-upstream-only-neon,
+lispflowmapping-csit-1node-msmr-all-neon,
+lispflowmapping-csit-1node-performance-only-neon,
+lispflowmapping-csit-3node-msmr-all-neon,
+mdsal-csit-1node-bindingv1-only-neon,
+netconf-csit-1node-callhome-only-neon,
+netconf-csit-1node-scale-only-neon,
+netconf-csit-1node-userfeatures-all-neon,
+netconf-csit-3node-cluster-stress-all-neon,
+netconf-csit-3node-clustering-all-neon,
+netconf-csit-3node-clustering-scale-all-neon,
+netvirt-csit-1node-0cmb-1ctl-2cmp-apex-queens-upstream-snat-conntrack-neon,
+netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-sfc-neon,
+netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upgrade-neon,
+netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upgrade-snat-conntrack-neon,
+netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-neon,
+netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-neon,
+netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-neon,
+netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-neon,
+netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-snat-conntrack-neon,
+netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-neon,
+netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-neon,
+netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-neon,
+netvirt-csit-hwvtep-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-neon,
+netvirt-csit-hwvtep-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-neon,
+odltools-csit-1node-upstream-all-neon,
+openflowplugin-csit-1node-bundle-based-reconciliation-all-neon,
+openflowplugin-csit-1node-cbench-only-neon,
+openflowplugin-csit-1node-flow-services-all-neon,
+openflowplugin-csit-1node-perf-bulkomatic-only-neon,
+openflowplugin-csit-1node-perf-stats-collection-only-neon,
+openflowplugin-csit-1node-scale-link-only-neon,
+openflowplugin-csit-1node-scale-only-neon,
+openflowplugin-csit-1node-scale-switch-only-neon,
+openflowplugin-csit-3node-clustering-bulkomatic-only-neon,
+openflowplugin-csit-3node-clustering-only-neon,
+openflowplugin-csit-3node-clustering-perf-bulkomatic-only-neon,
+ovsdb-csit-1node-upstream-southbound-all-neon,
+ovsdb-csit-3node-upstream-clustering-only-neon,
+sfc-csit-3node-docker-full-deploy-all-neon,
+sfc-csit-3node-rest-basic-all-neon,
+yangtools-csit-1node-system-only-neon,
aaa-csit-1node-authn-all-oxygen,
-aaa-csit-1node-keystone-all-oxygen,
aaa-csit-1node-tls-only-oxygen,
alto-csit-1node-setup-all-oxygen,
bgpcep-csit-1node-bgp-ingest-all-oxygen,
controller-csit-1node-benchmark-all-oxygen,
controller-csit-1node-rest-cars-perf-all-oxygen,
controller-csit-3node-benchmark-all-oxygen,
-controller-csit-3node-clustering-all-oxygen,
+controller-csit-3node-clustering-ask-all-oxygen,
+controller-csit-3node-clustering-tell-all-oxygen,
controller-csit-3node-rest-clust-cars-perf-ask-only-oxygen,
controller-csit-3node-rest-clust-cars-perf-tell-only-oxygen,
daexim-csit-1node-basic-only-oxygen,
distribution-csit-1node-userfeatures-all-oxygen,
distribution-csit-managed-oxygen,
dluxapps-csit-1node-yangman-all-oxygen,
-genius-csit-1node-upstream-all-oxygen,
-genius-csit-3node-upstream-all-oxygen,
-groupbasedpolicy-csit-1node-1cmb-0ctl-0cmp-openstack-pike-openstack-oxygen,
+genius-csit-1node-upstream-only-oxygen,
+genius-csit-3node-upstream-only-oxygen,
groupbasedpolicy-csit-1node-3-node-all-oxygen,
groupbasedpolicy-csit-1node-6node-all-oxygen,
groupbasedpolicy-csit-1node-sxp-only-oxygen,
mdsal-csit-1node-bindingv1-only-oxygen,
nemo-csit-1node-engine-all-oxygen,
netconf-csit-1node-callhome-only-oxygen,
-netconf-csit-1node-scale-all-oxygen,
+netconf-csit-1node-scale-only-oxygen,
netconf-csit-1node-userfeatures-all-oxygen,
netconf-csit-3node-cluster-stress-all-oxygen,
netconf-csit-3node-clustering-all-oxygen,
netconf-csit-3node-clustering-scale-all-oxygen,
-netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-oxygen,
-netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-oxygen,
-netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-sfc-oxygen,
+netvirt-csit-1node-0cmb-1ctl-1cmp-openstack-queens-sfc-oxygen,
+netvirt-csit-1node-0cmb-1ctl-2cmp-apex-queens-upstream-snat-conntrack-oxygen,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-oxygen,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen,
netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-itm-direct-tunnels-oxygen,
-netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-oxygen,
-netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-snat-conntrack-oxygen,
+netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-oxygen,
+netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-snat-conntrack-oxygen,
netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-itm-direct-tunnels-oxygen,
netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen,
netvirt-csit-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-hwvtep-1node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-oxygen,
netvirt-csit-hwvtep-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen,
-netvirt-csit-hwvtep-3node-0cmb-1ctl-2cmp-openstack-pike-upstream-stateful-oxygen,
netvirt-csit-hwvtep-3node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen,
-of-config-csit-1node-basic-all-oxygen,
openflowplugin-csit-1node-bundle-based-reconciliation-all-oxygen,
openflowplugin-csit-1node-cbench-only-oxygen,
openflowplugin-csit-1node-flow-services-all-oxygen,
openflowplugin-csit-3node-clustering-perf-bulkomatic-only-oxygen,
ovsdb-csit-1node-upstream-southbound-all-oxygen,
ovsdb-csit-3node-upstream-clustering-only-oxygen,
-p4plugin-csit-1node-basic-all-oxygen,
packetcable-csit-1node-pcmm-all-oxygen,
sfc-csit-3node-docker-full-deploy-all-oxygen,
sfc-csit-3node-rest-basic-all-oxygen,
tsdr-csit-1node-elasticsearch-datastore-only-oxygen,
tsdr-csit-1node-hbase-datastore-all-oxygen,
tsdr-csit-1node-hsqldb-datastore-all-oxygen,
-usc-csit-1node-channel-all-oxygen,
usc-csit-1node-tcp-all-oxygen,
yangtools-csit-1node-system-only-oxygen,
COUNT=$(( ${COUNT} + 5 ))
sleep 5
echo "already waited ${COUNT} seconds..."
- if grep --quiet 'org.opendaylight.infrautils.ready-impl.*System ready' "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log"; then
+ if grep --quiet 'org.opendaylight.infrautils.*System ready' "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log"; then
echo "Controller is UP"
break
- elif (( "${COUNT}" > "360" )); then
+ elif (( "${COUNT}" >= "360" )); then
echo "Timeout Controller DOWN"
dump_log_and_exit
fi
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
email-upstream: '[int/dist]'
stream:
- - fluorine:
+ - neon:
branch: 'master'
karaf-version: odl
# 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.unimgr/features4-unimgr//xml/features,
sm-features: >
odl-sxp-routing,
odl-tsdr-core,
odl-tsdr-hbase,
odl-tsdr-hsqldb,
odl-tsdr-elasticsearch,
- odl-unimgr-rest
+ odl-unimgr,
+ odl-unimgr-template-driver,
+ odl-unimgr-cisco-xr-driver,
+ odl-unimgr-ovs-driver,
+ - fluorine:
+ branch: 'stable/fluorine'
+ 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,
- oxygen:
branch: 'stable/oxygen'
karaf-version: karaf4
profile: '-Pmanaged'
forbidden-files: 'opendaylight/**'
karaf-version: karaf4
+ dist-pom: 'distribution/pom.xml'
stream:
- - fluorine:
+ - neon:
branch: 'master'
dependencies: >
aaa-merge-{stream},
ovsdb-merge-{stream},
serviceutils-merge-{stream},
sfc-merge-{stream}
+ - fluorine:
+ branch: 'stable/fluorine'
+ dependencies: >
+ aaa-merge-{stream},
+ bgpcep-merge-{stream},
+ coe-merge-{stream},
+ controller-merge-{stream},
+ daexim-merge-{stream},
+ genius-merge-{stream},
+ infrautils-merge-{stream},
+ lispflowmapping-merge-{stream},
+ mdsal-merge-{stream},
+ netconf-merge-{stream},
+ netvirt-merge-{stream}
+ neutron-merge-{stream},
+ openflowplugin-merge-{stream},
+ ovsdb-merge-{stream},
+ serviceutils-merge-{stream},
+ sfc-merge-{stream}
- oxygen:
branch: 'stable/oxygen'
profile: '-Punmanaged'
files: 'opendaylight/**'
karaf-version: odl
+ dist-pom: 'distribution/opendaylight/pom.xml'
stream:
- - fluorine:
+ - neon:
branch: 'master'
karaf-version: odl
dependencies: >
distribution-merge-managed-{stream},
sxp-merge-{stream},
tsdr-merge-{stream},
- unimgr-merge-{stream}
+ unimgr-merge-{stream},
+ - fluorine:
+ branch: 'stable/fluorine'
+ karaf-version: odl
+ dependencies: >
+ distribution-merge-managed-{stream},
+ snmp4sdn-merge-{stream},
+ sxp-merge-{stream},
+ transportpce-merge-{stream},
+ tsdr-merge-{stream},
+ unimgr-merge-{stream},
+
+- project:
+ name: distribution-release
+ jobs:
+ - gerrit-maven-stage
+
+ project: 'integration/distribution'
+ project-name: 'distribution'
+ mvn-goals: 'clean deploy -f opendaylight/pom.xml'
+ mvn-settings: 'integration-distribution-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ email-upstream: '[int/dist]'
+
+ # Used by the release job
+ staging-profile-id: 2af042ed81d5e2
+
+ stream:
+ - neon:
+ branch: 'master'
+
+ - fluorine:
+ branch: 'stable/fluorine'
- project:
name: distribution-sonar
java-version: openjdk8
mvn-version: mvn35
+ csit-gate-list: ''
+ block_on_csit: false
+ # Unless block_on_csit is true, the failure-threshold will be ignored. For project jobs that
+ # want to fail distribution check on csit jobs, they will only need a list of jobs to run
+ # plus the change of block_on_csit to true, and this failure-threshold: 'UNSTABLE' will take
+ # effect
+ failure-threshold: 'UNSTABLE'
#####################
# Job Configuration #
dist-pom: distribution/pom.xml
- distribution-check-bootup
+ - trigger-builds:
+ - project: '{csit-gate-list}'
+ block: '{obj:block_on_csit}'
+ block-thresholds:
+ failure-threshold: '{failure-threshold}'
+ predefined-parameters: |
+ BUNDLE_URL=$BUNDLE_URL
+ KARAF_VERSION=$KARAF_VERSION
+
publishers:
- email-notification:
email-recipients: '{email-recipients}'
- distribution-check-warn-9191
- distribution-check-warn-9192
- integration-upload-distribution:
- dist-pom: distribution/pom.xml
+ dist-pom: '{dist-pom}'
- distribution-check-bootup
publishers:
--- /dev/null
+#!/bin/bash -l
+# Activate robotframework virtualenv
+# ${ROBOT_VENV} comes from the integration-install-robotframework.sh
+# 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
+
+get_os_deploy
+
+# Swap out the ODL distribution
+DISTRO_UNDER_TEST=/tmp/odl.tar.gz
+wget --progress=dot:mega ${ACTUAL_BUNDLE_URL}
+UNZIPPED_DIR=`dirname "$(unzip -qql ${BUNDLE} | head -n1 | tr -s ' ' | cut -d' ' -f5-)"`
+unzip -q ${BUNDLE}
+tar czf ${DISTRO_UNDER_TEST} ${UNZIPPED_DIR}
+git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git /tmp/sdnvpn
+pushd /tmp/sdnvpn; git fetch https://gerrit.opnfv.org/gerrit/sdnvpn refs/changes/93/63293/1 && git checkout FETCH_HEAD; popd
+/tmp/sdnvpn/odl-pipeline/lib/odl_reinstaller.sh --pod-config ${WORKSPACE}/node.yaml --odl-artifact ${DISTRO_UNDER_TEST} --ssh-key-file ~/.ssh/robot_id_rsa
+
+cat > /tmp/extra_node_configs.sh << EOF
+sudo jq -c '. + {"neutron::plugins::ovs::opendaylight::provider_mappings": ["datacentre:br-datacentre"]}' /etc/puppet/hieradata/config_step.json > tmp.$$.json && mv -f tmp.$$.json /etc/puppet/hieradata/config_step.json
+sudo puppet apply -e 'include tripleo::profile::base::neutron::plugins::ovs::opendaylight' -v
+sudo iptables -I INPUT -p udp -m multiport --dports 4789,9876,12345 -j ACCEPT
+sudo iptables -I INPUT -p tcp --dport 12345 -j ACCEPT
+sudo iptables --line-numbers -nvL
+EOF
+echo "cat extra_node_configs.sh"
+cat /tmp/extra_node_configs.sh
+
+scp /tmp/extra_node_configs.sh $OPENSTACK_CONTROL_NODE_1_IP:/tmp
+ssh $OPENSTACK_CONTROL_NODE_1_IP "sudo bash /tmp/extra_node_configs.sh"
+scp /tmp/extra_node_configs.sh $OPENSTACK_COMPUTE_NODE_1_IP:/tmp
+ssh $OPENSTACK_COMPUTE_NODE_1_IP "sudo bash /tmp/extra_node_configs.sh"
+scp /tmp/extra_node_configs.sh $OPENSTACK_COMPUTE_NODE_2_IP:/tmp
+ssh $OPENSTACK_COMPUTE_NODE_2_IP "sudo bash /tmp/extra_node_configs.sh"
+
+USER=heat-admin
+openstack object save OPNFV-APEX-SNAPSHOTS overcloudrc
+source overcloudrc
+cat overcloudrc
+openstack hypervisor list
+
+# Extra Configs needed for CSIT:
+wget -O ${WORKSPACE}/cirros-0.3.5-x86_64-disk.img http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
+export ANSIBLE_HOST_KEY_CHECKING=False
+ansible-playbook -i ${OPENSTACK_CONTROL_NODE_1_IP}, -u heat-admin --key-file /tmp/id_rsa /tmp/opnfv_releng/jjb/cperf/cirros-upload.yaml.ansible -vvv
+
+PHYSNET_WORK=datacentre
+BR_WORK=br-${PHYSNET_WORK}
+ssh ${OPENSTACK_CONTROL_NODE_1_IP} "sudo ovs-vsctl --if-exists del-port br-int ${BR_WORK}"
+ssh ${OPENSTACK_CONTROL_NODE_1_IP} "sudo ovs-vsctl --may-exist add-br ${BR_WORK} -- set bridge ${BR_WORK} other-config:disable-in-band=true other_config:hwaddr=f6:00:00:ff:01:01"
+
+ssh ${OPENSTACK_COMPUTE_NODE_1_IP} "sudo ovs-vsctl --if-exists del-port br-int ${BR_WORK}"
+ssh ${OPENSTACK_COMPUTE_NODE_1_IP} "sudo ovs-vsctl --may-exist add-br ${BR_WORK} -- set bridge ${BR_WORK} other-config:disable-in-band=true other_config:hwaddr=f6:00:00:ff:01:02"
+
+ssh ${OPENSTACK_COMPUTE_NODE_2_IP} "sudo ovs-vsctl --if-exists del-port br-int ${BR_WORK}"
+ssh ${OPENSTACK_COMPUTE_NODE_2_IP} "sudo ovs-vsctl --may-exist add-br ${BR_WORK} -- set bridge ${BR_WORK} other-config:disable-in-band=true other_config:hwaddr=f6:00:00:ff:01:03"
+
+ssh ${OPENSTACK_CONTROL_NODE_1_IP} "
+ sudo ovs-vsctl add-port ${BR_WORK} compute_1_vxlan -- set interface compute_1_vxlan type=vxlan options:local_ip=${OPENSTACK_CONTROL_NODE_1_IP} options:remote_ip=${OPENSTACK_COMPUTE_NODE_1_IP} options:dst_port=9876 options:key=flow
+"
+ssh ${OPENSTACK_CONTROL_NODE_1_IP} "
+ sudo ovs-vsctl add-port ${BR_WORK} compute_2_vxlan -- set interface compute_2_vxlan type=vxlan options:local_ip=${OPENSTACK_CONTROL_NODE_1_IP} options:remote_ip=${OPENSTACK_COMPUTE_NODE_2_IP} options:dst_port=9876 options:key=flow
+"
+ssh ${OPENSTACK_COMPUTE_NODE_1_IP} "
+ sudo ovs-vsctl add-port ${BR_WORK} control_1_vxlan -- set interface control_1_vxlan type=vxlan options:local_ip=${OPENSTACK_COMPUTE_NODE_1_IP} options:remote_ip=${OPENSTACK_CONTROL_NODE_1_IP} options:dst_port=9876 options:key=flow
+"
+ssh ${OPENSTACK_COMPUTE_NODE_2_IP} "
+ sudo ovs-vsctl add-port ${BR_WORK} control_1_vxlan -- set interface control_1_vxlan type=vxlan options:local_ip=${OPENSTACK_COMPUTE_NODE_2_IP} options:remote_ip=${OPENSTACK_CONTROL_NODE_1_IP} options:dst_port=9876 options:key=flow
+"
+
+# Control Node - PUBLIC_BRIDGE will act as the external router
+# Parameter values below are used in integration/test - changing them requires updates in intergration/test as well
+EXTNET_GATEWAY_IP="10.10.10.250"
+EXTNET_INTERNET_IP="10.9.9.9"
+EXTNET_PNF_IP="10.10.10.253"
+ssh ${OPENSTACK_CONTROL_NODE_1_IP} "sudo ifconfig ${PUBLIC_BRIDGE} up ${EXTNET_GATEWAY_IP}/24"
+
+# Control Node - external net PNF simulation
+ssh ${OPENSTACK_CONTROL_NODE_1_IP} "
+ sudo ip netns add pnf_ns;
+ sudo ip link add pnf_veth0 type veth peer name pnf_veth1;
+ sudo ip link set pnf_veth1 netns pnf_ns;
+ sudo ip link set pnf_veth0 up;
+ sudo ip netns exec pnf_ns ifconfig pnf_veth1 up ${EXTNET_PNF_IP}/24;
+ sudo ovs-vsctl add-port ${PUBLIC_BRIDGE} pnf_veth0;
+"
+# Control Node - external net internet address simulation
+ssh ${OPENSTACK_CONTROL_NODE_1_IP} "
+ sudo ip tuntap add dev internet_tap mode tap;
+ sudo ifconfig internet_tap up ${EXTNET_INTERNET_IP}/24;
+"
+
+ssh ${OPENSTACK_CONTROL_NODE_1_IP} "sudo ovs-vsctl show"
+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
+
+echo "Starting Robot test suites ${SUITES} ..."
+# please add pybot -v arguments on a single line and alphabetized
+suite_num=0
+for suite in ${SUITES}; do
+ # prepend an incremental counter to the suite name so that the full robot log combining all the suites as is done
+ # in the rebot step below will list all the suites in chronological order as rebot seems to alphabetize them
+ let "suite_num = suite_num + 1"
+ suite_index="$(printf %02d ${suite_num})"
+ suite_name="$(basename ${suite} | cut -d. -f1)"
+ log_name="${suite_index}_${suite_name}"
+ pybot -N ${log_name} \
+ -c critical -e exclude -e skip_if_${DISTROSTREAM} -e NON_GATE \
+ --log log_${log_name}.html --report report_${log_name}.html --output output_${log_name}.xml \
+ --removekeywords wuks \
+ --removekeywords name:SetupUtils.Setup_Utils_For_Setup_And_Teardown \
+ --removekeywords name:SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing \
+ --removekeywords name:OpenStackOperations.Add_OVS_Logging_On_All_OpenStack_Nodes \
+ -v BUNDLEFOLDER:${BUNDLEFOLDER} \
+ -v BUNDLE_URL:${ACTUAL_BUNDLE_URL} \
+ -v CMP_INSTANCES_SHARED_PATH:/var/instances \
+ -v CONTROLLERFEATURES:"${CONTROLLERFEATURES}" \
+ -v CONTROLLER_USER:${USER} \
+ -v DEFAULT_LINUX_PROMPT:\$ \
+ -v DEFAULT_LINUX_PROMPT_STRICT:]\$ \
+ -v DEFAULT_USER:${USER} \
+ -v ENABLE_ITM_DIRECT_TUNNELS:${ENABLE_ITM_DIRECT_TUNNELS} \
+ -v HA_PROXY_IP:$ODL_SYSTEM_IP \
+ -v JDKVERSION:${JDKVERSION} \
+ -v JENKINS_WORKSPACE:${WORKSPACE} \
+ -v KARAF_LOG:/opt/opendaylight/data/log/karaf.log \
+ -v NEXUSURL_PREFIX:${NEXUSURL_PREFIX} \
+ -v NUM_ODL_SYSTEM:${NUM_ODL_SYSTEM} \
+ -v NUM_OS_SYSTEM:${NUM_OPENSTACK_SYSTEM} \
+ -v NUM_TOOLS_SYSTEM:${NUM_TOOLS_SYSTEM} \
+ -v ODL_RESTCONF_PASSWORD:$SDN_CONTROLLER_PASSWORD \
+ -v ODL_SNAT_MODE:${ODL_SNAT_MODE} \
+ -v ODL_STREAM:${DISTROSTREAM} \
+ -v ODL_SYSTEM_IP:${ODL_SYSTEM_IP} \
+ -v ODL_SYSTEM_1_IP:${ODL_SYSTEM_1_IP} \
+ -v OS_CONTROL_NODE_IP:${OPENSTACK_CONTROL_NODE_1_IP} \
+ -v OS_CONTROL_NODE_1_IP:${OPENSTACK_CONTROL_NODE_1_IP} \
+ -v OPENSTACK_BRANCH:${OPENSTACK_BRANCH} \
+ -v OS_COMPUTE_1_IP:${OPENSTACK_COMPUTE_NODE_1_IP} \
+ -v OS_COMPUTE_2_IP:${OPENSTACK_COMPUTE_NODE_2_IP} \
+ -v OPENSTACK_TOPO:${OPENSTACK_TOPO} \
+ -v OS_USER:${USER} \
+ -v PUBLIC_PHYSICAL_NETWORK:${PHYSNET_WORK} \
+ -v RESTCONFPORT:8081 \
+ -v SECURITY_GROUP_MODE:${SECURITY_GROUP_MODE} \
+ -v SSH_KEY:robot_id_rsa \
+ -v USER_HOME:${HOME} \
+ -v WORKSPACE:/tmp \
+ ${TESTOPTIONS} ${suite} || true
+done
+#rebot exit codes seem to be different
+rebot --output ${WORKSPACE}/output.xml --log log_full.html --report report.html -N openstack output_*.xml || true
+
+echo "Collecting logs"
+mkdir -p ${WORKSPACE}/archives
+
+ssh ${ODL_SYSTEM_IP} "mkdir /tmp/controller_sos; sudo sosreport --all-logs --batch --build --tmp-dir /tmp/controller_sos/ --name controller_report -o networking,openstack_glance,openstack_neutron,openstack_nova,opendaylight,openvswitch"
+ssh ${ODL_SYSTEM_IP} "sudo chmod -R 0777 /tmp/controller_sos/; tar cvzf /tmp/controller_sos.tar.gz /tmp/controller_sos"
+scp ${ODL_SYSTEM_IP}:/tmp/controller_sos.tar.gz ${WORKSPACE}/archives/controller_sos.tar.gz
+gunzip ${WORKSPACE}/archives/controller_sos.tar.gz
+tar -xvf ${WORKSPACE}/archives/controller_sos.tar -C ${WORKSPACE}/archives/
+
+ssh ${OPENSTACK_COMPUTE_NODE_1_IP} "mkdir /tmp/compute_1_sos; sudo sosreport --all-logs --batch --build --tmp-dir /tmp/compute_1_sos/ --name compute_1_report -o networking,openstack_glance,openstack_neutron,openstack_nova,opendaylight,openvswitch"
+ssh ${OPENSTACK_COMPUTE_NODE_1_IP} "sudo chmod -R 0777 /tmp/compute_1_sos/; tar cvzf /tmp/compute_1_sos.tar.gz /tmp/compute_1_sos"
+scp ${OPENSTACK_COMPUTE_NODE_1_IP}:/tmp/compute_1_sos.tar.gz ${WORKSPACE}/archives/compute_1_sos.tar.gz
+gunzip ${WORKSPACE}/archives/compute_1_sos.tar.gz
+tar -xvf ${WORKSPACE}/archives/compute_1_sos.tar -C ${WORKSPACE}/archives/
+
+ssh ${OPENSTACK_COMPUTE_NODE_2_IP} "mkdir /tmp/compute_2_sos; sudo sosreport --all-logs --batch --build --tmp-dir /tmp/compute_2_sos/ --name compute_2_report -o networking,openstack_glance,openstack_neutron,openstack_nova,opendaylight,openvswitch"
+ssh ${OPENSTACK_COMPUTE_NODE_2_IP} "sudo chmod -R 0777 /tmp/compute_2_sos/; tar cvzf /tmp/compute_2_sos.tar.gz /tmp/compute_2_sos"
+scp ${OPENSTACK_COMPUTE_NODE_2_IP}:/tmp/compute_2_sos.tar.gz ${WORKSPACE}/archives/compute_2_sos.tar.gz
+gunzip ${WORKSPACE}/archives/compute_2_sos.tar.gz
+tar -xvf ${WORKSPACE}/archives/compute_2_sos.tar -C ${WORKSPACE}/archives/
+
+mv ${WORKSPACE}/archives/tmp/* ${WORKSPACE}/archives/
+rm -rf ${WORKSPACE}/archives/tmp
+
+true # perhaps Jenkins is testing last exit code
+# vim: ts=4 sw=4 sts=4 et ft=sh :
DISTROBRANCH=${DISTROBRANCH:-$GERRIT_BRANCH}
# Obtain current pom.xml of integration/distribution, correct branch.
-wget "http://${GERRIT_PATH}/gitweb?p=integration/distribution.git;a=blob_plain;f=pom.xml;hb=refs/heads/$DISTROBRANCH" -O "pom.xml"
+if [[ "$KARAF_ARTIFACT" == "opendaylight" ]]; then
+ wget "http://${GERRIT_PATH}/gitweb?p=integration/distribution.git;a=blob_plain;f=opendaylight/pom.xml;hb=refs/heads/$DISTROBRANCH" -O "pom.xml"
+else
+ wget "http://${GERRIT_PATH}/gitweb?p=integration/distribution.git;a=blob_plain;f=pom.xml;hb=refs/heads/$DISTROBRANCH" -O "pom.xml"
+fi
+
# Extract the BUNDLE_VERSION from the pom.xml
BUNDLE_VERSION=$(xpath pom.xml '/project/version/text()' 2> /dev/null)
echo "Bundle version is ${BUNDLE_VERSION}"
echo "## Configure Cluster and Start ##"
echo "#################################################"
-if [ ${CONTROLLERSCOPE} == 'all' ]; then
- ACTUALFEATURES="odl-integration-compatible-with-all,${CONTROLLERFEATURES}"
- export CONTROLLERMEM="3072m"
-else
- ACTUALFEATURES="odl-infrautils-ready,${CONTROLLERFEATURES}"
-fi
-# Some versions of jenkins job builder result in feature list containing spaces
-# and ending in newline. Remove all that.
-ACTUALFEATURES=`echo "${ACTUALFEATURES}" | tr -d '\n \r'`
+get_features
-# Utility function for joining strings.
-function join {
- delim=' '
- final=$1; shift
-
- for str in "$@" ; do
- final=${final}${delim}${str}
- done
-
- echo ${final}
-}
-
-# Create the string for nodes
-for i in `seq 1 ${NUM_ODL_SYSTEM}` ; do
- CONTROLLERIP=ODL_SYSTEM_${i}_IP
- nodes[$i]=${!CONTROLLERIP}
-done
-
-nodes_list=$(join "${nodes[@]}")
-
-echo ${nodes_list}
+# shellcheck disable=SC2034
+nodes_list=$(get_nodes_list)
run_plan "script"
-# Create the configuration script to be run on controllers.
-cat > ${WORKSPACE}/configuration-script.sh <<EOF
-set -x
-source /tmp/common-functions.sh ${BUNDLEFOLDER}
-
-echo "Changing to /tmp"
-cd /tmp
-
-echo "Downloading the distribution from ${ACTUAL_BUNDLE_URL}"
-wget --progress=dot:mega '${ACTUAL_BUNDLE_URL}'
-
-echo "Extracting the new controller..."
-unzip -q ${BUNDLE}
-
-echo "Adding external repositories..."
-sed -ie "s%org.ops4j.pax.url.mvn.repositories=%org.ops4j.pax.url.mvn.repositories=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot@id=opendaylight-snapshot@snapshots, https://nexus.opendaylight.org/content/repositories/public@id=opendaylight-mirror, http://repo1.maven.org/maven2@id=central, http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release, http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external, http://zodiac.springsource.com/maven/bundles/release@id=gemini, http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases, https://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@noreleases, https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases%g" ${MAVENCONF}
-cat ${MAVENCONF}
-
-echo "Configuring the startup features..."
-sed -ie "s/\(featuresBoot=\|featuresBoot =\)/featuresBoot = ${ACTUALFEATURES},/g" ${FEATURESCONF}
-
-FEATURE_TEST_STRING="features-integration-test"
-if [[ "$KARAF_VERSION" == "karaf4" ]]; then
- FEATURE_TEST_STRING="features-test"
-fi
-
-sed -ie "s%\(featuresRepositories=\|featuresRepositories =\)%featuresRepositories = mvn:org.opendaylight.integration/\${FEATURE_TEST_STRING}/${BUNDLE_VERSION}/xml/features,mvn:org.apache.karaf.decanter/apache-karaf-decanter/1.0.0/xml/features,%g" ${FEATURESCONF}
-if [[ ! -z "${REPO_URL}" ]]; then
- sed -ie "s%featuresRepositories =%featuresRepositories = ${REPO_URL},%g" ${FEATURESCONF}
-fi
-cat ${FEATURESCONF}
-
-configure_karaf_log "${KARAF_VERSION}" "${CONTROLLERDEBUGMAP}"
-
-set_java_vars "${JAVA_HOME}" "${CONTROLLERMEM}" "${MEMCONF}"
-
-# Copy shard file if exists
-if [ -f /tmp/custom_shard_config.txt ]; then
- echo "Custom shard config exists!!!"
- echo "Copying the shard config..."
- cp /tmp/custom_shard_config.txt /tmp/${BUNDLEFOLDER}/bin/
-fi
-
-echo "Configuring cluster"
-/tmp/${BUNDLEFOLDER}/bin/configure_cluster.sh \$1 ${nodes_list}
-
-echo "Dump akka.conf"
-cat ${AKKACONF}
-
-echo "Dump modules.conf"
-cat ${MODULESCONF}
-
-echo "Dump module-shards.conf"
-cat ${MODULESHARDSCONF}
-
-EOF
-
-# Create the startup script to be run on controllers.
-cat > ${WORKSPACE}/startup-script.sh <<EOF
-
-echo "Redirecting karaf console output to karaf_console.log"
-export KARAF_REDIRECT="/tmp/${BUNDLEFOLDER}/data/log/karaf_console.log"
-mkdir -p /tmp/${BUNDLEFOLDER}/data/log
-
-echo "Starting controller..."
-/tmp/${BUNDLEFOLDER}/bin/start
+create_configuration_script
-EOF
+create_startup_script
-# Copy over the configuration script and configuration files to each controller
-# Execute the configuration script on each controller.
-for i in `seq 1 ${NUM_ODL_SYSTEM}`
-do
- CONTROLLERIP=ODL_SYSTEM_${i}_IP
- echo "Configuring member-${i} with IP address ${!CONTROLLERIP}"
- scp ${WORKSPACE}/configuration-script.sh ${!CONTROLLERIP}:/tmp/
- ssh ${!CONTROLLERIP} "bash /tmp/configuration-script.sh ${i}"
-done
+copy_and_run_configuration_script
run_plan "config"
-# Copy over the startup script to each controller and execute it.
-for i in `seq 1 ${NUM_ODL_SYSTEM}`
-do
- CONTROLLERIP=ODL_SYSTEM_${i}_IP
- echo "Starting member-${i} with IP address ${!CONTROLLERIP}"
- scp ${WORKSPACE}/startup-script.sh ${!CONTROLLERIP}:/tmp/
- ssh ${!CONTROLLERIP} "bash /tmp/startup-script.sh"
-done
+copy_and_run_startup_script
# vim: ts=4 sw=4 sts=4 et ft=sh :
source ${ROBOT_VENV}/bin/activate
source /tmp/common-functions.sh ${BUNDLEFOLDER}
-if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
- echo "Configure cluster"
- AKKACONF=/tmp/${BUNDLEFOLDER}/configuration/initial/akka.conf
- MODULESCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/modules.conf
- MODULESHARDSCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/module-shards.conf
-fi
-
-if [ ${CONTROLLERSCOPE} == 'all' ]; then
- ACTUALFEATURES="odl-integration-compatible-with-all,${CONTROLLERFEATURES}"
- export CONTROLLERMEM="3072m"
-else
- ACTUALFEATURES="odl-infrautils-ready,${CONTROLLERFEATURES}"
-fi
+echo "#################################################"
+echo "## Configure Cluster and Start ##"
+echo "#################################################"
-# Some versions of jenkins job builder result in feature list containing spaces
-# and ending in newline. Remove all that.
-ACTUALFEATURES=`echo "${ACTUALFEATURES}" | tr -d '\n \r'`
-echo "ACTUALFEATURES: ${ACTUALFEATURES}"
+get_features
-# In the case that we want to install features via karaf shell, a space separated list of
-# ACTUALFEATURES IS NEEDED
-SPACE_SEPARATED_FEATURES=$(echo "${ACTUALFEATURES}" | tr ',' ' ')
-echo "SPACE_SEPARATED_FEATURES: ${SPACE_SEPARATED_FEATURES}"
+# shellcheck disable=SC2034
+nodes_list=$(get_nodes_list)
run_plan "script"
-cat > ${WORKSPACE}/configuration-script.sh <<EOF
-set -x
-source /tmp/common-functions.sh ${BUNDLEFOLDER}
-
-echo "Changing to /tmp"
-cd /tmp
-
-echo "Downloading the distribution..."
-wget --progress=dot:mega '${ACTUAL_BUNDLE_URL}'
-
-echo "Extracting the new controller..."
-unzip -q ${BUNDLE}
-
-echo "Adding external repositories..."
-sed -ie "s%org.ops4j.pax.url.mvn.repositories=%org.ops4j.pax.url.mvn.repositories=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot@id=opendaylight-snapshot@snapshots, https://nexus.opendaylight.org/content/repositories/public@id=opendaylight-mirror, http://repo1.maven.org/maven2@id=central, http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release, http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external, http://zodiac.springsource.com/maven/bundles/release@id=gemini, http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases, https://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@noreleases, https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases%g" ${MAVENCONF}
-cat ${MAVENCONF}
-
-if [[ "$USEFEATURESBOOT" == "True" ]]; then
- echo "Configuring the startup features..."
- sed -ie "s/\(featuresBoot=\|featuresBoot =\)/featuresBoot = ${ACTUALFEATURES},/g" ${FEATURESCONF}
-fi
-
-FEATURE_TEST_STRING="features-integration-test"
-if [[ "$KARAF_VERSION" == "karaf4" ]]; then
- FEATURE_TEST_STRING="features-test"
-fi
-
-sed -ie "s%\(featuresRepositories=\|featuresRepositories =\)%featuresRepositories = mvn:org.opendaylight.integration/\${FEATURE_TEST_STRING}/${BUNDLE_VERSION}/xml/features,mvn:org.apache.karaf.decanter/apache-karaf-decanter/1.0.0/xml/features,%g" ${FEATURESCONF}
-if [[ ! -z "${REPO_URL}" ]]; then
- sed -ie "s%featuresRepositories =%featuresRepositories = ${REPO_URL},%g" ${FEATURESCONF}
-fi
-cat ${FEATURESCONF}
-
-configure_karaf_log "${KARAF_VERSION}" "${CONTROLLERDEBUGMAP}"
+create_configuration_script
-set_java_vars "${JAVA_HOME}" "${CONTROLLERMEM}" "${MEMCONF}"
+create_startup_script
-echo "Listing all open ports on controller system..."
-netstat -pnatu
+create_post_startup_script
-if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
-
- # Copy shard file if exists
- if [ -f /tmp/custom_shard_config.txt ]; then
- echo "Custom shard config exists!!!"
- echo "Copying the shard config..."
- cp /tmp/custom_shard_config.txt /tmp/${BUNDLEFOLDER}/bin/
- fi
-
- echo "Configuring cluster"
- /tmp/${BUNDLEFOLDER}/bin/configure_cluster.sh \$1 \$2
-
- echo "Dump akka.conf"
- cat ${AKKACONF}
-
- echo "Dump modules.conf"
- cat ${MODULESCONF}
-
- echo "Dump module-shards.conf"
- cat ${MODULESHARDSCONF}
-fi
-
-EOF
-# cat > ${WORKSPACE}/configuration-script.sh <<EOF
-
-# Create the startup script to be run on controller.
-cat > ${WORKSPACE}/startup-script.sh <<EOF
-
-echo "Redirecting karaf console output to karaf_console.log"
-export KARAF_REDIRECT="/tmp/${BUNDLEFOLDER}/data/log/karaf_console.log"
-mkdir -p /tmp/${BUNDLEFOLDER}/data/log
-
-echo "Starting controller..."
-/tmp/${BUNDLEFOLDER}/bin/start
-
-EOF
-# cat > ${WORKSPACE}/startup-script.sh <<EOF
-
-cat > ${WORKSPACE}/post-startup-script.sh <<EOF
-
-if [[ "$USEFEATURESBOOT" != "True" ]]; then
-
- # wait up to 60s for karaf port 8101 to be opened, polling every 5s
- loop_count=0;
- until [[ \$loop_count -ge 12 ]]; do
- netstat -na | grep 8101 && break;
- loop_count=\$[\$loop_count+1];
- sleep 5;
- done
-
- echo "going to feature:install --no-auto-refresh ${SPACE_SEPARATED_FEATURES} one at a time"
- for feature in ${SPACE_SEPARATED_FEATURES}; do
- sshpass -p karaf ssh -o StrictHostKeyChecking=no \
- -o UserKnownHostsFile=/dev/null \
- -o LogLevel=error \
- -p 8101 karaf@localhost \
- feature:install --no-auto-refresh \$feature;
- done
-
- echo "ssh to karaf console to list -i installed features"
- sshpass -p karaf ssh -o StrictHostKeyChecking=no \
- -o UserKnownHostsFile=/dev/null \
- -o LogLevel=error \
- -p 8101 karaf@localhost \
- feature:list -i
-fi
-
-echo "Waiting up to 3 minutes for controller to come up, checking every 5 seconds..."
-for i in {1..36};
- do sleep 5;
- grep 'org.opendaylight.infrautils.ready-impl.*System ready' /tmp/${BUNDLEFOLDER}/data/log/karaf.log
- if [ \$? -eq 0 ]
- then
- echo "Controller is UP"
- break
- fi
-done;
-
-# if we ended up not finding ready status in the above loop, we can output some debugs
-grep 'org.opendaylight.infrautils.ready-impl.*System ready' /tmp/${BUNDLEFOLDER}/data/log/karaf.log
-if [ $? -ne 0 ]
-then
- echo "Timeout Controller DOWN"
- echo "Dumping first 500K bytes of karaf log..."
- head --bytes=500K "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"
- echo "Dumping last 500K bytes of karaf log..."
- tail --bytes=500K "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"
- echo "Listing all open ports on controller system"
- netstat -pnatu
- exit 1
-fi
-
-echo "Listing all open ports on controller system..."
-netstat -pnatu
-
-function exit_on_log_file_message {
- echo "looking for \"\$1\" in log file"
- if grep --quiet "\$1" "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"; then
- echo ABORTING: found "\$1"
- echo "Dumping first 500K bytes of karaf log..."
- head --bytes=500K "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"
- echo "Dumping last 500K bytes of karaf log..."
- tail --bytes=500K "/tmp/${BUNDLEFOLDER}/data/log/karaf.log"
- exit 1
- fi
-}
-
-exit_on_log_file_message 'BindException: Address already in use'
-exit_on_log_file_message 'server is unhealthy'
-
-EOF
-# cat > ${WORKSPACE}/post-startup-script.sh <<EOF
-
-[ "$NUM_OPENSTACK_SITES" ] || NUM_OPENSTACK_SITES=1
-NUM_ODLS_PER_SITE=$((NUM_ODL_SYSTEM / NUM_OPENSTACK_SITES))
-for i in `seq 1 ${NUM_OPENSTACK_SITES}`
-do
- # Get full list of ODL nodes for this site
- odl_node_list=
- for j in `seq 1 ${NUM_ODLS_PER_SITE}`
- do
- odl_ip=ODL_SYSTEM_$(((i - 1) * NUM_ODLS_PER_SITE + j))_IP
- odl_node_list="${odl_node_list} ${!odl_ip}"
- done
-
- for j in `seq 1 ${NUM_ODLS_PER_SITE}`
- do
- odl_ip=ODL_SYSTEM_$(((i - 1) * NUM_ODLS_PER_SITE + j))_IP
- # Copy over the config script to controller and execute it (parameters are used only for cluster)
- echo "Execute the configuration script on controller ${!odl_ip} for index $j with node list ${odl_node_list}"
- scp ${WORKSPACE}/configuration-script.sh ${!odl_ip}:/tmp
- ssh ${!odl_ip} "bash /tmp/configuration-script.sh ${j} '${odl_node_list}'"
- done
-done
+copy_and_run_configuration_script
run_plan "config"
-# Copy over the startup script to controller and execute it.
-for i in `seq 1 ${NUM_ODL_SYSTEM}`
-do
- CONTROLLERIP=ODL_SYSTEM_${i}_IP
- echo "Execute the startup script on controller ${!CONTROLLERIP}"
- scp ${WORKSPACE}/startup-script.sh ${!CONTROLLERIP}:/tmp
- ssh ${!CONTROLLERIP} "bash /tmp/startup-script.sh"
-done
+copy_and_run_startup_script
-seed_index=1
-for i in `seq 1 ${NUM_ODL_SYSTEM}`
-do
- CONTROLLERIP=ODL_SYSTEM_${i}_IP
- echo "Execute the post startup script on controller ${!CONTROLLERIP}"
- scp ${WORKSPACE}/post-startup-script.sh ${!CONTROLLERIP}:/tmp
- ssh ${!CONTROLLERIP} "bash /tmp/post-startup-script.sh $(( seed_index++ ))"
- if [ $(( $i % (${NUM_ODL_SYSTEM} / ${NUM_OPENSTACK_SITES}) )) == 0 ]; then
- seed_index=1
- fi
-done
+copy_and_run_post_startup_script
-echo "Generating controller variables..."
-for i in `seq 1 ${NUM_ODL_SYSTEM}`
-do
- CONTROLLERIP=ODL_SYSTEM_${i}_IP
- odl_variables=${odl_variables}" -v ${CONTROLLERIP}:${!CONTROLLERIP}"
- echo "Lets's take the karaf thread dump"
- ssh ${!CONTROLLERIP} "sudo ps aux" > ${WORKSPACE}/ps_before.log
- pid=$(grep org.apache.karaf.main.Main ${WORKSPACE}/ps_before.log | grep -v grep | tr -s ' ' | cut -f2 -d' ')
- echo "karaf main: org.apache.karaf.main.Main, pid:${pid}"
- ssh ${!CONTROLLERIP} "${JAVA_HOME}/bin/jstack -l ${pid}" > ${WORKSPACE}/karaf_${i}_${pid}_threads_before.log || true
-done
+create_controller_variables
if [ ${NUM_OPENSTACK_SYSTEM} -gt 0 ]; then
echo "Exiting without running tests to deploy openstack for testing"
SSH="ssh -t -t"
ADMIN_PASSWORD="admin"
OPENSTACK_MASTER_CLIENTS_VERSION="queens"
-
-pip install odltools
-odltools -V
+#Size of the partition to /opt/stack in control and compute nodes
+TMPFS_SIZE=2G
# TODO: remove this work to run changes.py if/when it's moved higher up to be visible at the Robot level
printf "\nshowing recent changes that made it into the distribution used by this job:\n"
local prog="$0"
local lastline="$1"
local lasterr="$2"
- echo "trap_hanlder: ${prog}: line ${lastline}: exit status of last command: ${lasterr}"
+ echo "trap_handler: ${prog}: line ${lastline}: exit status of last command: ${lasterr}"
echo "trap_handler: command: ${BASH_COMMAND}"
exit 1
} # trap_handler()
function install_rdo_release() {
local ip=$1
case ${OPENSTACK_BRANCH} in
- *pike*)
- ${SSH} ${ip} "sudo yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-pike/rdo-release-pike-1.noarch.rpm"
- ;;
-
*queens*)
${SSH} ${ip} "sudo yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-queens/rdo-release-queens-1.noarch.rpm"
;;
ENABLE_PLUGIN_ARGS="${DEVSTACK_LBAAS_PLUGIN_REPO} ${OPENSTACK_BRANCH}"
IS_LBAAS_PLUGIN_ENABLED="yes"
elif [ "$plugin_name" == "networking-sfc" ]; then
- ENABLE_PLUGIN_ARGS="${DEVSTACK_NETWORKING_SFC_PLUGIN_REPO} master"
+ ENABLE_PLUGIN_ARGS="${DEVSTACK_NETWORKING_SFC_PLUGIN_REPO} ${OPENSTACK_BRANCH}"
IS_SFC_PLUGIN_ENABLED="yes"
else
echo "Error: Invalid plugin $plugin_name, unsupported"
physical_network_mtus = ${PUBLIC_PHYSICAL_NETWORK}:1400
path_mtu = 1458
EOF
-
+ if [ "${ENABLE_GRE_TYPE_DRIVERS}" == "yes" ]; then
+ cat >> ${local_conf_file_name} << EOF
+type_drivers = local,flat,vlan,gre,vxlan
+[ml2_type_gre]
+tunnel_id_ranges = 1:1000
+EOF
+ fi
if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
cat >> ${local_conf_file_name} << EOF
} # create_compute_node_local_conf()
function configure_haproxy_for_neutron_requests() {
- MGRIP=$1
+ local -r haproxy_ip=$1
# shellcheck disable=SC2206
- ODL_IPS=(${2//,/ })
+ local -r odl_ips=(${2//,/ })
cat > ${WORKSPACE}/install_ha_proxy.sh<< EOF
sudo systemctl stop firewalld
sudo yum -y install policycoreutils-python haproxy
EOF
-cat > ${WORKSPACE}/haproxy.cfg << EOF
+ cat > ${WORKSPACE}/haproxy.cfg << EOF
global
daemon
group haproxy
- log /dev/log local0
+ log /dev/log local0 debug
maxconn 20480
pidfile /tmp/haproxy.pid
+ ssl-default-bind-ciphers !SSLv2:kEECDH:kRSA:kEDH:kPSK:+3DES:!aNULL:!eNULL:!MD5:!EXP:!RC4:!SEED:!IDEA:!DES
+ ssl-default-bind-options no-sslv3 no-tlsv10
+ stats socket /var/lib/haproxy/stats mode 600 level user
+ stats timeout 2m
user haproxy
defaults
log global
+ option log-health-checks
maxconn 4096
mode tcp
retries 3
timeout http-request 10s
- timeout queue 1m
- timeout connect 10s
- timeout client 1m
- timeout server 1m
- timeout check 10s
+ timeout queue 2m
+ timeout connect 5s
+ timeout client 5s
+ timeout server 5s
listen opendaylight
- bind ${MGRIP}:8080
- balance source
+ bind ${haproxy_ip}:8181 transparent
+ mode http
+ http-request set-header X-Forwarded-Proto https if { ssl_fc }
+ http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
+ option httpchk GET /diagstatus
+ option httplog
+EOF
-listen opendaylight_rest
- bind ${MGRIP}:8181
- balance source
+ odlindex=1
+ for odlip in ${odl_ips[*]}; do
+ echo " server opendaylight-rest-${odlindex} ${odlip}:8181 check fall 5 inter 2000 rise 2" >> ${WORKSPACE}/haproxy.cfg
+ odlindex=$((odlindex+1))
+ done
-listen opendaylight_websocket
- bind ${MGRIP}:8185
- balance source
+ cat >> ${WORKSPACE}/haproxy.cfg << EOF
+listen opendaylight_ws
+ bind ${haproxy_ip}:8185 transparent
+ mode http
+ timeout tunnel 3600s
+ option httpchk GET /data-change-event-subscription/neutron:neutron/neutron:ports/datastore=OPERATIONAL/scope=SUBTREE HTTP/1.1\r\nHost:\ ws.opendaylight.org\r\nConnection:\ Upgrade\r\nUpgrade:\ websocket\r\nSec-WebSocket-Key:\ haproxy\r\nSec-WebSocket-Version:\ 13\r\nSec-WebSocket-Protocol:\ echo-protocol
+ http-check expect status 101
EOF
odlindex=1
- for odlip in ${ODL_IPS[*]}; do
- sed -i "/listen opendaylight$/a server controller-${odlindex} ${odlip}:8080 check fall 5 inter 2000 rise 2" ${WORKSPACE}/haproxy.cfg
- sed -i "/listen opendaylight_rest$/a server controller-rest-${odlindex} ${odlip}:8181 check fall 5 inter 2000 rise 2" ${WORKSPACE}/haproxy.cfg
- sed -i "/listen opendaylight_websocket$/a server controller-websocket-${odlindex} ${odlip}:8185 check fall 5 inter 2000 rise 2" ${WORKSPACE}/haproxy.cfg
+ for odlip in ${odl_ips[*]}; do
+ echo " server opendaylight-ws-${odlindex} ${odlip}:8185 check fall 3 inter 1000 rise 2" >> ${WORKSPACE}/haproxy.cfg
odlindex=$((odlindex+1))
done
-
echo "Dump haproxy.cfg"
cat ${WORKSPACE}/haproxy.cfg
true
EOF
- scp ${WORKSPACE}/install_ha_proxy.sh ${MGRIP}:/tmp
- ${SSH} ${MGRIP} "sudo bash /tmp/install_ha_proxy.sh"
- scp ${WORKSPACE}/haproxy.cfg ${MGRIP}:/tmp
- scp ${WORKSPACE}/deploy_ha_proxy.sh ${MGRIP}:/tmp
- ${SSH} ${MGRIP} "sudo bash /tmp/deploy_ha_proxy.sh"
+ scp ${WORKSPACE}/install_ha_proxy.sh ${haproxy_ip}:/tmp
+ ${SSH} ${haproxy_ip} "sudo bash /tmp/install_ha_proxy.sh"
+ scp ${WORKSPACE}/haproxy.cfg ${haproxy_ip}:/tmp
+ scp ${WORKSPACE}/deploy_ha_proxy.sh ${haproxy_ip}:/tmp
+ ${SSH} ${haproxy_ip} "sudo bash /tmp/deploy_ha_proxy.sh"
} # configure_haproxy_for_neutron_requests()
# Following three functions are debugging helpers when debugging devstack changes.
return ${rc}
}
+function install_ovs() {
+ local -r node=${1}
+ local -r rpm_path=${2}
+
+ if [ "${OVS_INSTALL:0:1}" = "v" ]; then
+ # An OVS version was given, so we build it ourselves from OVS git repo.
+ # Only on the first node though, consecutive nodes will use RPMs
+ # built for the first one.
+ [ ! -d "${rpm_path}" ] && mkdir -p "${rpm_path}" && build_ovs ${node} ${OVS_INSTALL} "${rpm_path}"
+ # Install OVS from path
+ install_ovs_from_path ${node} "${rpm_path}"
+ elif [ "${OVS_INSTALL:0:4}" = "http" ]; then
+ # Otherwise, install from rpm repo directly.
+ install_ovs_from_repo ${node} ${OVS_INSTALL}
+ else
+ echo "Expected either an OVS version git tag or a repo http url"
+ exit 1
+ fi
+}
+
ODL_PROVIDER_MAPPINGS="\${PUBLIC_PHYSICAL_NETWORK}:${PUBLIC_BRIDGE}"
RECLONE=False
ODL_PORT=8181
true
EOF
+#For SFC Tests a larger partition is required for creating instances with Ubuntu
+if [[ "${ENABLE_OS_PLUGINS}" =~ networking-sfc ]]; then
+ TMPFS_SIZE=12G
+fi
cat > ${WORKSPACE}/get_devstack.sh << EOF
sudo systemctl stop firewalld
sudo yum install bridge-utils python-pip -y
sudo mv /tmp/hosts /etc/hosts
sudo mkdir /opt/stack
echo "Create RAM disk for /opt/stack"
-sudo mount -t tmpfs -o size=2G tmpfs /opt/stack
+sudo mount -t tmpfs -o size=${TMPFS_SIZE} tmpfs /opt/stack
sudo chmod 777 /opt/stack
cd /opt/stack
echo "git clone https://git.openstack.org/openstack-dev/devstack --branch ${OPENSTACK_BRANCH}"
echo "git checkout ${DEVSTACK_HASH}"
git checkout ${DEVSTACK_HASH}
fi
+wget https://raw.githubusercontent.com/shague/odl_tools/master/fix-logging.patch.txt -O /tmp/fix-logging.patch.txt
+patch --verbose -p1 -i /tmp/fix-logging.patch.txt
git --no-pager log --pretty=format:'%h %<(13)%ar%<(13)%cr %<(20,trunc)%an%d %s%b' -n20
echo
echo "workaround: do not upgrade openvswitch"
sudo yum install -y yum-plugin-versionlock
sudo yum versionlock add openvswitch
-
-#Install qemu-img command in Control Node for Pike
-echo "Install qemu-img application"
-sudo yum install -y qemu-img
EOF
cat > "${WORKSPACE}/setup_host_cell_mapping.sh" << EOF
sudo nova-manage cell_v2 discover_hosts
EOF
+cat > "${WORKSPACE}/workaround_networking_sfc.sh" << EOF
+cd /opt/stack
+git clone https://git.openstack.org/openstack/networking-sfc
+cd networking-sfc
+git checkout ${OPENSTACK_BRANCH}
+git checkout master -- devstack/plugin.sh
+EOF
+
NUM_OPENSTACK_SITES=${NUM_OPENSTACK_SITES:-1}
compute_index=1
-odl_index=1
os_node_list=()
-os_interval=$(( ${NUM_OPENSTACK_SYSTEM} / ${NUM_OPENSTACK_SITES} ))
-ha_proxy_index=${os_interval}
-
-for i in `seq 1 ${NUM_OPENSTACK_SITES}`; do
- if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
- echo "Configure HAProxy"
- ODL_HAPROXYIP_PARAM=OPENSTACK_HAPROXY_${i}_IP
- ha_proxy_index=$(( $ha_proxy_index + $os_interval ))
- odl_index=$(((i - 1) * 3 + 1))
- ODL_IP_PARAM1=ODL_SYSTEM_$((odl_index++))_IP
- ODL_IP_PARAM2=ODL_SYSTEM_$((odl_index++))_IP
- ODL_IP_PARAM3=ODL_SYSTEM_$((odl_index++))_IP
- ODLMGRIP[$i]=${!ODL_HAPROXYIP_PARAM} # ODL Northbound uses HAProxy VIP
- ODL_OVS_MGRS[$i]="${!ODL_IP_PARAM1},${!ODL_IP_PARAM2},${!ODL_IP_PARAM3}" # OVSDB connects to all ODL IPs
- configure_haproxy_for_neutron_requests ${!ODL_HAPROXYIP_PARAM} "${ODL_OVS_MGRS[$i]}"
- else
- ODL_IP_PARAM=ODL_SYSTEM_${i}_IP
- ODL_OVS_MGRS[$i]="${!ODL_IP_PARAM}" # ODL Northbound uses ODL IP
- ODLMGRIP[$i]=${!ODL_IP_PARAM} # OVSDB connects to ODL IP
- fi
-done
+
+if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
+ echo "Configure HAProxy"
+ ODL_HAPROXYIP_PARAM=OPENSTACK_HAPROXY_1_IP
+ ODL_IP_PARAM1=ODL_SYSTEM_1_IP
+ ODL_IP_PARAM2=ODL_SYSTEM_2_IP
+ ODL_IP_PARAM3=ODL_SYSTEM_3_IP
+ ODLMGRIP=${!ODL_HAPROXYIP_PARAM} # ODL Northbound uses HAProxy VIP
+ ODL_OVS_MGRS="${!ODL_IP_PARAM1},${!ODL_IP_PARAM2},${!ODL_IP_PARAM3}" # OVSDB connects to all ODL IPs
+ configure_haproxy_for_neutron_requests ${!ODL_HAPROXYIP_PARAM} "${ODL_OVS_MGRS}"
+else
+ ODL_IP_PARAM=ODL_SYSTEM_1_IP
+ ODLMGRIP=${!ODL_IP_PARAM} # OVSDB connects to ODL IP
+ ODL_OVS_MGRS="${!ODL_IP_PARAM}" # ODL Northbound uses ODL IP
+fi
os_ip_list=()
for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do
tcpdump_start "${i}" "${ip}" "port 6653"
done
+
# Begin stacking the nodes, starting with the controller(s) and then the compute(s)
for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do
if [ "${ODL_ML2_BRANCH}" == "stable/queens" ]; then
ssh ${!CONTROLIP} "sed -i 's/flat_networks public/flat_networks public,physnet1/' /opt/stack/devstack/lib/neutron"
ssh ${!CONTROLIP} "sed -i '186i iniset \$NEUTRON_CORE_PLUGIN_CONF ml2_type_vlan network_vlan_ranges public:1:4094,physnet1:1:4094' /opt/stack/devstack/lib/neutron"
+ #Workaround for networking-sfc to configure the paramaters in neutron.conf if the
+ # services used are neutron-api, neutron-dhcp etc instead of q-agt.
+ # Can be removed if the patch https://review.openstack.org/#/c/596287/ gets merged
+ if [[ "${ENABLE_OS_PLUGINS}" =~ networking-sfc ]]; then
+ scp ${WORKSPACE}/workaround_networking_sfc.sh ${!CONTROLIP}:/tmp/
+ ssh ${!CONTROLIP} "bash -x /tmp/workaround_networking_sfc.sh"
+ fi
fi
- create_control_node_local_conf ${!CONTROLIP} ${ODLMGRIP[$i]} "${ODL_OVS_MGRS[$i]}"
+ create_control_node_local_conf ${!CONTROLIP} ${ODLMGRIP} "${ODL_OVS_MGRS}"
scp ${WORKSPACE}/local.conf_control_${!CONTROLIP} ${!CONTROLIP}:/opt/stack/devstack/local.conf
echo "Install rdo release to avoid incompatible Package versions"
install_rdo_release ${!CONTROLIP}
if [ "$(is_openstack_feature_enabled n-cpu)" == "1" ]; then
setup_live_migration_compute ${!CONTROLIP} ${!CONTROLIP}
fi
+ [ -n "${OVS_INSTALL}" ] && install_ovs ${!CONTROLIP} /tmp/ovs_rpms
+ if [[ "${ENABLE_OS_PLUGINS}" =~ networking-sfc ]]; then
+ # This should be really done by networking-odl devstack plugin,
+ # but in the meantime do it ourselves
+ ssh ${!CONTROLIP} "sudo ovs-vsctl set Open_vSwitch . external_ids:of-tunnel=true"
+ fi
echo "Stack the control node ${i} of ${NUM_OPENSTACK_CONTROL_NODES}: ${CONTROLIP}"
ssh ${!CONTROLIP} "cd /opt/stack/devstack; nohup ./stack.sh > /opt/stack/devstack/nohup.out 2>&1 &"
ssh ${!CONTROLIP} "ps -ef | grep stack.sh"
fi
for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`; do
- NUM_COMPUTES_PER_SITE=$((NUM_OPENSTACK_COMPUTE_NODES / NUM_OPENSTACK_SITES))
- SITE_INDEX=$((((i - 1) / NUM_COMPUTES_PER_SITE) + 1)) # We need the site index to infer the control node IP for this compute
COMPUTEIP=OPENSTACK_COMPUTE_NODE_${i}_IP
- CONTROLIP=OPENSTACK_CONTROL_NODE_${SITE_INDEX}_IP
+ CONTROLIP=OPENSTACK_CONTROL_NODE_1_IP
echo "Configure the stack of the compute node ${i} of ${NUM_OPENSTACK_COMPUTE_NODES}: ${!COMPUTEIP}"
scp ${WORKSPACE}/disable_firewall.sh "${!COMPUTEIP}:/tmp"
${SSH} "${!COMPUTEIP}" "sudo bash /tmp/disable_firewall.sh"
scp ${WORKSPACE}/hosts_file ${!COMPUTEIP}:/tmp/hosts
scp ${WORKSPACE}/get_devstack.sh ${!COMPUTEIP}:/tmp
${SSH} ${!COMPUTEIP} "bash /tmp/get_devstack.sh > /tmp/get_devstack.sh.txt 2>&1"
- create_compute_node_local_conf ${!COMPUTEIP} ${!CONTROLIP} ${ODLMGRIP[$SITE_INDEX]} "${ODL_OVS_MGRS[$SITE_INDEX]}"
+ create_compute_node_local_conf ${!COMPUTEIP} ${!CONTROLIP} ${ODLMGRIP} "${ODL_OVS_MGRS}"
scp ${WORKSPACE}/local.conf_compute_${!COMPUTEIP} ${!COMPUTEIP}:/opt/stack/devstack/local.conf
echo "Install rdo release to avoid incompatible Package versions"
install_rdo_release ${!COMPUTEIP}
setup_live_migration_compute ${!COMPUTEIP} ${!CONTROLIP}
+ [ -n "${OVS_INSTALL}" ] && install_ovs ${!COMPUTEIP} /tmp/ovs_rpms
+ if [[ "${ENABLE_OS_PLUGINS}" =~ networking-sfc ]]; then
+ # This should be really done by networking-odl devstack plugin,
+ # but in the meantime do it ourselves
+ ssh ${!COMPUTEIP} "sudo ovs-vsctl set Open_vSwitch . external_ids:of-tunnel=true"
+ fi
echo "Stack the compute node ${i} of ${NUM_OPENSTACK_COMPUTE_NODES}: ${!COMPUTEIP}"
ssh ${!COMPUTEIP} "cd /opt/stack/devstack; nohup ./stack.sh > /opt/stack/devstack/nohup.out 2>&1 &"
ssh ${!COMPUTEIP} "ps -ef | grep stack.sh"
done
# Further configuration now that stacking is complete.
-NUM_COMPUTES_PER_SITE=$((NUM_OPENSTACK_COMPUTE_NODES / NUM_OPENSTACK_SITES))
-for i in `seq 1 ${NUM_OPENSTACK_SITES}`; do
- echo "Configure the Control Node"
- CONTROLIP=OPENSTACK_CONTROL_NODE_${i}_IP
- # Gather Compute IPs for the site
- for j in `seq 1 ${NUM_COMPUTES_PER_SITE}`; do
- COMPUTE_INDEX=$(((i-1) * NUM_COMPUTES_PER_SITE + j))
- IP_VAR=OPENSTACK_COMPUTE_NODE_${COMPUTE_INDEX}_IP
- COMPUTE_IPS[$((j-1))]=${!IP_VAR}
- done
+echo "Configure the Control Node"
+CONTROLIP=OPENSTACK_CONTROL_NODE_1_IP
+# Gather Compute IPs for the site
+for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`; do
+ IP_VAR=OPENSTACK_COMPUTE_NODE_${i}_IP
+ COMPUTE_IPS[$((i-1))]=${!IP_VAR}
+done
- echo "sleep for 60s and print hypervisor-list"
- sleep 60
- ${SSH} ${!CONTROLIP} "cd /opt/stack/devstack; source openrc admin admin; nova hypervisor-list"
- # in the case that we are doing openstack (control + compute) all in one node, then the number of hypervisors
- # will be the same as the number of openstack systems. However, if we are doing multinode openstack then the
- # assumption is we have a single control node and the rest are compute nodes, so the number of expected hypervisors
- # is one less than the total number of openstack systems
- if [ $((NUM_OPENSTACK_SYSTEM / NUM_OPENSTACK_SITES)) -eq 1 ]; then
- expected_num_hypervisors=1
- else
- expected_num_hypervisors=${NUM_COMPUTES_PER_SITE}
- if [ "$(is_openstack_feature_enabled n-cpu)" == "1" ]; then
- expected_num_hypervisors=$((expected_num_hypervisors + 1))
- fi
- fi
- num_hypervisors=$(${SSH} ${!CONTROLIP} "cd /opt/stack/devstack; source openrc admin admin; openstack hypervisor list -f value | wc -l" | tail -1 | tr -d "\r")
- if ! [ "${num_hypervisors}" ] || ! [ ${num_hypervisors} -eq ${expected_num_hypervisors} ]; then
- echo "Error: Only $num_hypervisors hypervisors detected, expected $expected_num_hypervisors"
- exit 1
+echo "sleep for 60s and print hypervisor-list"
+sleep 60
+${SSH} ${!CONTROLIP} "cd /opt/stack/devstack; source openrc admin admin; nova hypervisor-list"
+# in the case that we are doing openstack (control + compute) all in one node, then the number of hypervisors
+# will be the same as the number of openstack systems. However, if we are doing multinode openstack then the
+# assumption is we have a single control node and the rest are compute nodes, so the number of expected hypervisors
+# is one less than the total number of openstack systems
+if [ ${NUM_OPENSTACK_SYSTEM} -eq 1 ]; then
+ expected_num_hypervisors=1
+else
+ expected_num_hypervisors=${NUM_OPENSTACK_COMPUTE_NODES}
+ if [ "$(is_openstack_feature_enabled n-cpu)" == "1" ]; then
+ expected_num_hypervisors=$((expected_num_hypervisors + 1))
fi
+fi
+num_hypervisors=$(${SSH} ${!CONTROLIP} "cd /opt/stack/devstack; source openrc admin admin; openstack hypervisor list -f value | wc -l" | tail -1 | tr -d "\r")
+if ! [ "${num_hypervisors}" ] || ! [ ${num_hypervisors} -eq ${expected_num_hypervisors} ]; then
+ echo "Error: Only $num_hypervisors hypervisors detected, expected $expected_num_hypervisors"
+ exit 1
+fi
+
+# External Network
+echo "prepare external networks by adding vxlan tunnels between all nodes on a separate bridge..."
+# FIXME Should there be a unique gateway IP and devstack index for each site?
+devstack_index=1
+for ip in ${!CONTROLIP} ${COMPUTE_IPS[*]}; do
+ # FIXME - Workaround, ODL (new netvirt) currently adds PUBLIC_BRIDGE as a port in br-int since it doesn't see such a bridge existing when we stack
+ ${SSH} $ip "sudo ovs-vsctl --if-exists del-port br-int $PUBLIC_BRIDGE"
+ ${SSH} $ip "sudo ovs-vsctl --may-exist add-br $PUBLIC_BRIDGE -- set bridge $PUBLIC_BRIDGE other-config:disable-in-band=true other_config:hwaddr=f6:00:00:ff:01:0$((devstack_index++))"
+done
- # Gather Compute IPs for the site
- for j in `seq 1 ${NUM_COMPUTES_PER_SITE}`; do
- COMPUTE_INDEX=$(((i-1) * NUM_COMPUTES_PER_SITE + j))
- IP_VAR=OPENSTACK_COMPUTE_NODE_${COMPUTE_INDEX}_IP
- COMPUTE_IPS[$((j-1))]=${!IP_VAR}
+# ipsec support
+if [ "${IPSEC_VXLAN_TUNNELS_ENABLED}" == "yes" ]; then
+ # shellcheck disable=SC2206
+ ALL_NODES=(${!CONTROLIP} ${COMPUTE_IPS[*]})
+ for ((inx_ip1=0; inx_ip1<$((${#ALL_NODES[@]} - 1)); inx_ip1++)); do
+ for ((inx_ip2=$((inx_ip1 + 1)); inx_ip2<${#ALL_NODES[@]}; inx_ip2++)); do
+ KEY1=0x$(dd if=/dev/urandom count=32 bs=1 2> /dev/null| xxd -p -c 64)
+ KEY2=0x$(dd if=/dev/urandom count=32 bs=1 2> /dev/null| xxd -p -c 64)
+ ID=0x$(dd if=/dev/urandom count=4 bs=1 2> /dev/null| xxd -p -c 8)
+ ip1=${ALL_NODES[$inx_ip1]}
+ ip2=${ALL_NODES[$inx_ip2]}
+ ${SSH} $ip1 "sudo ip xfrm state add src $ip1 dst $ip2 proto esp spi $ID reqid $ID mode transport auth sha256 $KEY1 enc aes $KEY2"
+ ${SSH} $ip1 "sudo ip xfrm state add src $ip2 dst $ip1 proto esp spi $ID reqid $ID mode transport auth sha256 $KEY1 enc aes $KEY2"
+ ${SSH} $ip1 "sudo ip xfrm policy add src $ip1 dst $ip2 proto udp dir out tmpl src $ip1 dst $ip2 proto esp reqid $ID mode transport"
+ ${SSH} $ip1 "sudo ip xfrm policy add src $ip2 dst $ip1 proto udp dir in tmpl src $ip2 dst $ip1 proto esp reqid $ID mode transport"
+
+ ${SSH} $ip2 "sudo ip xfrm state add src $ip2 dst $ip1 proto esp spi $ID reqid $ID mode transport auth sha256 $KEY1 enc aes $KEY2"
+ ${SSH} $ip2 "sudo ip xfrm state add src $ip1 dst $ip2 proto esp spi $ID reqid $ID mode transport auth sha256 $KEY1 enc aes $KEY2"
+ ${SSH} $ip2 "sudo ip xfrm policy add src $ip2 dst $ip1 proto udp dir out tmpl src $ip2 dst $ip1 proto esp reqid $ID mode transport"
+ ${SSH} $ip2 "sudo ip xfrm policy add src $ip1 dst $ip2 proto udp dir in tmpl src $ip1 dst $ip2 proto esp reqid $ID mode transport"
+ done
done
- # External Network
- echo "prepare external networks by adding vxlan tunnels between all nodes on a separate bridge..."
- # FIXME Should there be a unique gateway IP and devstack index for each site?
- devstack_index=1
for ip in ${!CONTROLIP} ${COMPUTE_IPS[*]}; do
- # FIXME - Workaround, ODL (new netvirt) currently adds PUBLIC_BRIDGE as a port in br-int since it doesn't see such a bridge existing when we stack
- ${SSH} $ip "sudo ovs-vsctl --if-exists del-port br-int $PUBLIC_BRIDGE"
- ${SSH} $ip "sudo ovs-vsctl --may-exist add-br $PUBLIC_BRIDGE -- set bridge $PUBLIC_BRIDGE other-config:disable-in-band=true other_config:hwaddr=f6:00:00:ff:01:0$((devstack_index++))"
+ echo "ip xfrm configuration for node $ip:"
+ ${SSH} $ip "sudo ip xfrm policy list"
+ ${SSH} $ip "sudo ip xfrm state list"
done
+fi
- # ipsec support
- if [ "${IPSEC_VXLAN_TUNNELS_ENABLED}" == "yes" ]; then
- # shellcheck disable=SC2206
- ALL_NODES=(${!CONTROLIP} ${COMPUTE_IPS[*]})
- for ((inx_ip1=0; inx_ip1<$((${#ALL_NODES[@]} - 1)); inx_ip1++)); do
- for ((inx_ip2=$((inx_ip1 + 1)); inx_ip2<${#ALL_NODES[@]}; inx_ip2++)); do
- KEY1=0x$(dd if=/dev/urandom count=32 bs=1 2> /dev/null| xxd -p -c 64)
- KEY2=0x$(dd if=/dev/urandom count=32 bs=1 2> /dev/null| xxd -p -c 64)
- ID=0x$(dd if=/dev/urandom count=4 bs=1 2> /dev/null| xxd -p -c 8)
- ip1=${ALL_NODES[$inx_ip1]}
- ip2=${ALL_NODES[$inx_ip2]}
- ${SSH} $ip1 "sudo ip xfrm state add src $ip1 dst $ip2 proto esp spi $ID reqid $ID mode transport auth sha256 $KEY1 enc aes $KEY2"
- ${SSH} $ip1 "sudo ip xfrm state add src $ip2 dst $ip1 proto esp spi $ID reqid $ID mode transport auth sha256 $KEY1 enc aes $KEY2"
- ${SSH} $ip1 "sudo ip xfrm policy add src $ip1 dst $ip2 proto udp dir out tmpl src $ip1 dst $ip2 proto esp reqid $ID mode transport"
- ${SSH} $ip1 "sudo ip xfrm policy add src $ip2 dst $ip1 proto udp dir in tmpl src $ip2 dst $ip1 proto esp reqid $ID mode transport"
-
- ${SSH} $ip2 "sudo ip xfrm state add src $ip2 dst $ip1 proto esp spi $ID reqid $ID mode transport auth sha256 $KEY1 enc aes $KEY2"
- ${SSH} $ip2 "sudo ip xfrm state add src $ip1 dst $ip2 proto esp spi $ID reqid $ID mode transport auth sha256 $KEY1 enc aes $KEY2"
- ${SSH} $ip2 "sudo ip xfrm policy add src $ip2 dst $ip1 proto udp dir out tmpl src $ip2 dst $ip1 proto esp reqid $ID mode transport"
- ${SSH} $ip2 "sudo ip xfrm policy add src $ip1 dst $ip2 proto udp dir in tmpl src $ip1 dst $ip2 proto esp reqid $ID mode transport"
- done
- done
-
- for ip in ${!CONTROLIP} ${COMPUTE_IPS[*]}; do
- echo "ip xfrm configuration for node $ip:"
- ${SSH} $ip "sudo ip xfrm policy list"
- ${SSH} $ip "sudo ip xfrm state list"
- done
- fi
-
- # Control Node - PUBLIC_BRIDGE will act as the external router
- # Parameter values below are used in integration/test - changing them requires updates in intergration/test as well
- EXTNET_GATEWAY_IP="10.10.10.250"
- EXTNET_INTERNET_IP="10.9.9.9"
- EXTNET_PNF_IP="10.10.10.253"
- ${SSH} ${!CONTROLIP} "sudo ifconfig ${PUBLIC_BRIDGE} up ${EXTNET_GATEWAY_IP}/24"
-
- # Control Node - external net PNF simulation
+# Control Node - PUBLIC_BRIDGE will act as the external router
+# Parameter values below are used in integration/test - changing them requires updates in intergration/test as well
+EXTNET_GATEWAY_IP="10.10.10.250"
+EXTNET_INTERNET_IP="10.9.9.9"
+EXTNET_PNF_IP="10.10.10.253"
+${SSH} ${!CONTROLIP} "sudo ifconfig ${PUBLIC_BRIDGE} up ${EXTNET_GATEWAY_IP}/24"
+
+# Control Node - external net PNF simulation
+${SSH} ${!CONTROLIP} "
+ sudo ip netns add pnf_ns;
+ sudo ip link add pnf_veth0 type veth peer name pnf_veth1;
+ sudo ip link set pnf_veth1 netns pnf_ns;
+ sudo ip link set pnf_veth0 up;
+ sudo ip netns exec pnf_ns ifconfig pnf_veth1 up ${EXTNET_PNF_IP}/24;
+ sudo ovs-vsctl add-port ${PUBLIC_BRIDGE} pnf_veth0;
+"
+
+# Control Node - external net internet address simulation
+${SSH} ${!CONTROLIP} "
+ sudo ip tuntap add dev internet_tap mode tap;
+ sudo ifconfig internet_tap up ${EXTNET_INTERNET_IP}/24;
+"
+
+# Computes
+compute_index=1
+for compute_ip in ${COMPUTE_IPS[*]}; do
+ # Tunnel from controller to compute
+ COMPUTEPORT=compute$(( compute_index++ ))_vxlan
${SSH} ${!CONTROLIP} "
- sudo ip netns add pnf_ns;
- sudo ip link add pnf_veth0 type veth peer name pnf_veth1;
- sudo ip link set pnf_veth1 netns pnf_ns;
- sudo ip link set pnf_veth0 up;
- sudo ip netns exec pnf_ns ifconfig pnf_veth1 up ${EXTNET_PNF_IP}/24;
- sudo ovs-vsctl add-port ${PUBLIC_BRIDGE} pnf_veth0;
+ sudo ovs-vsctl add-port $PUBLIC_BRIDGE $COMPUTEPORT -- set interface $COMPUTEPORT type=vxlan options:local_ip=${!CONTROLIP} options:remote_ip=$compute_ip options:dst_port=9876 options:key=flow
"
-
- # Control Node - external net internet address simulation
- ${SSH} ${!CONTROLIP} "
- sudo ip tuntap add dev internet_tap mode tap;
- sudo ifconfig internet_tap up ${EXTNET_INTERNET_IP}/24;
+ # Tunnel from compute to controller
+ CONTROLPORT="control_vxlan"
+ ${SSH} $compute_ip "
+ sudo ovs-vsctl add-port $PUBLIC_BRIDGE $CONTROLPORT -- set interface $CONTROLPORT type=vxlan options:local_ip=$compute_ip options:remote_ip=${!CONTROLIP} options:dst_port=9876 options:key=flow
"
-
- # Computes
- compute_index=1
- for compute_ip in ${COMPUTE_IPS[*]}; do
- # Tunnel from controller to compute
- COMPUTEPORT=compute$(( compute_index++ ))_vxlan
- ${SSH} ${!CONTROLIP} "
- sudo ovs-vsctl add-port $PUBLIC_BRIDGE $COMPUTEPORT -- set interface $COMPUTEPORT type=vxlan options:local_ip=${!CONTROLIP} options:remote_ip=$compute_ip options:dst_port=9876 options:key=flow
- "
- # Tunnel from compute to controller
- CONTROLPORT="control_vxlan"
- ${SSH} $compute_ip "
- sudo ovs-vsctl add-port $PUBLIC_BRIDGE $CONTROLPORT -- set interface $CONTROLPORT type=vxlan options:local_ip=$compute_ip options:remote_ip=${!CONTROLIP} options:dst_port=9876 options:key=flow
- "
- done
done
if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
-v JENKINS_WORKSPACE:${WORKSPACE} \
-v NEXUSURL_PREFIX:${NEXUSURL_PREFIX} \
-v NUM_ODL_SYSTEM:${NUM_ODL_SYSTEM} \
- -v NUM_OPENSTACK_SITES:${NUM_OPENSTACK_SITES} \
-v NUM_OS_SYSTEM:${NUM_OPENSTACK_SYSTEM} \
-v NUM_TOOLS_SYSTEM:${NUM_TOOLS_SYSTEM} \
-v ODL_SNAT_MODE:${ODL_SNAT_MODE} \
if [ ${BUNDLE_URL} == 'last' ]; then
# Obtain current pom.xml of integration/distribution, correct branch.
- wget "http://${GERRIT_PATH}/gitweb?p=integration/distribution.git;a=blob_plain;f=pom.xml;hb=refs/heads/$DISTROBRANCH" -O "pom.xml"
+ if [[ "$KARAF_ARTIFACT" == "opendaylight" ]]; then
+ wget "http://${GERRIT_PATH}/gitweb?p=integration/distribution.git;a=blob_plain;f=opendaylight/pom.xml;hb=refs/heads/$DISTROBRANCH" -O "pom.xml"
+ else
+ wget "http://${GERRIT_PATH}/gitweb?p=integration/distribution.git;a=blob_plain;f=pom.xml;hb=refs/heads/$DISTROBRANCH" -O "pom.xml"
+ fi
# Extract the BUNDLE_VERSION from the pom.xml
BUNDLE_VERSION="$(xpath pom.xml '/project/version/text()' 2> /dev/null)"
echo "Bundle version is ${BUNDLE_VERSION}"
--- /dev/null
+#!/bin/bash -l
+# Get the Controller and Tools VM slave addresses
+
+set -ex -o pipefail
+
+git clone https://gerrit.opnfv.org/gerrit/releng.git /tmp/opnfv_releng
+
+openstack object save OPNFV-APEX-SNAPSHOTS node.yaml
+openstack object save OPNFV-APEX-SNAPSHOTS id_rsa --file /tmp/id_rsa
+cat > ~/.ssh/config <<EOF
+Host 192.0.2.*
+ User heat-admin
+ IdentityFile /tmp/id_rsa
+EOF
+ln -s /tmp/id_rsa ~/.ssh/robot_id_rsa
+chmod 0600 /tmp/id_rsa ~/.ssh/config
+
+NUM_OPENSTACK_SYSTEM=3
+NUM_ODL_SYSTEM=1
+ODL_SYSTEM_IP=$(python /tmp/opnfv_releng/jjb/cperf/parse-node-yaml.py get_value -k address --node-type controller --file node.yaml)
+OPENSTACK_COMPUTE_NODE_1_IP=$(python /tmp/opnfv_releng/jjb/cperf/parse-node-yaml.py get_value -k address --node-type compute --node-number 1 --file node.yaml)
+OPENSTACK_COMPUTE_NODE_2_IP=$(python /tmp/opnfv_releng/jjb/cperf/parse-node-yaml.py get_value -k address --node-type compute --node-number 2 --file node.yaml)
+OPENSTACK_CONTROL_NODE_1_IP=$ODL_SYSTEM_IP
+ODL_SYSTEM_1_IP=$ODL_SYSTEM_IP
+
+echo "NUM_OPENSTACK_SYSTEM=$NUM_OPENSTACK_SYSTEM" >> slave_addresses.txt
+echo "NUM_ODL_SYSTEM=$NUM_ODL_SYSTEM" >> slave_addresses.txt
+echo "ODL_SYSTEM_IP=$ODL_SYSTEM_IP" >> slave_addresses.txt
+echo "CONTROLLER_1_IP=$ODL_SYSTEM_IP" >> slave_addresses.txt
+
+echo "OPENSTACK_COMPUTE_NODE_1_IP=$OPENSTACK_COMPUTE_NODE_1_IP" >> slave_addresses.txt
+echo "OPENSTACK_COMPUTE_NODE_2_IP=$OPENSTACK_COMPUTE_NODE_2_IP" >> slave_addresses.txt
+echo "OPENSTACK_CONTROL_NODE_1_IP=$OPENSTACK_CONTROL_NODE_1_IP" >> slave_addresses.txt
+echo "ODL_SYSTEM_1_IP=$ODL_SYSTEM_1_IP" >> slave_addresses.txt
+
+cat slave_addresses.txt
+
+# Add Robot builder to new Apex network (adding 2nd nic). The Apex snapshots
+# have a single nic with a static ip on the 192.0.2.0/24 network. The eth0
+# nic on the robot builders come up on the standard 10 net from our cloud
+# infra. To give connectivity between the robot builder and the apex vms,
+# a new network is created for the 192.0.2.0/subnet and this second nic is
+# added to that network. DHCP is used for the robot builder in a range outside
+# of what any apex ip address would be.
+JOB_SUM=$(echo "$JOB_NAME" | sum | awk '{ print $1 }')
+VM_NAME="$JOB_SUM-$BUILD_NUMBER"
+SERVER_ID="$(openstack server show -f value -c id "$(hostname -s)")"
+NETWORK_ID="$(openstack network show -f value -c id "$SILO-$VM_NAME-APEX_192_network")"
+openstack server add network $SERVER_ID $NETWORK_ID
+ETH1_MAC=$(ip address show eth1 | grep ether | awk -F' ' '{print $2}')
+ETH1_SCRIPT="/etc/sysconfig/network-scripts/ifcfg-eth1"
+sudo cp /etc/sysconfig/network-scripts/ifcfg-eth0 "$ETH1_SCRIPT"
+sudo sed -i "s/eth0/eth1/; s/^HWADDR=.*/HWADDR=$ETH1_MAC/" "$ETH1_SCRIPT"
+sudo echo 'PEERDNS=no' | sudo tee -a "$ETH1_SCRIPT"
+sudo echo 'DEFROUTE=no' | sudo tee -a "$ETH1_SCRIPT"
+cat "$ETH1_SCRIPT"
+sudo ifup eth1
+ip a
+
+echo "Testing Connectivity To Apex Systems"
+ping -c3 "$OPENSTACK_CONTROL_NODE_1_IP"
+ping -c3 "$OPENSTACK_COMPUTE_NODE_1_IP"
+ping -c3 "$OPENSTACK_COMPUTE_NODE_2_IP"
+
+# vim: sw=4 ts=4 sts=4 et ft=sh :
+
+
-#!/bin/bash
+#!/bin/bash -l
# Get the Controller and Tools VM slave addresses
set -x
TOOLS_SYSTEM=()
OPENSTACK_SYSTEM=()
OPENSTACK_CONTROLLERS=()
-[ "$NUM_OPENSTACK_SITES" ] || NUM_OPENSTACK_SITES=1
-OPENSTACK_VENV="/tmp/v/openstack"
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source $OPENSTACK_VENV/bin/activate
mapfile -t ADDR <<< "$(openstack stack show -f json -c outputs "$STACK_NAME" | jq -r '.outputs[] | select(.output_key | match("^vm_[0-9]+_ips$")) | .output_value | .[]')"
# The next two blocks of code will parse the list of vm IP's hostnames to determine which type of node
#if HA Proxy is requested the last devstack node will be configured as haproxy
if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
# HA Proxy is installed on one OPENSTACK_SYSTEM VM on each site
- NUM_OPENSTACK_SYSTEM=$(( ${#OPENSTACK_SYSTEM[@]} - NUM_OPENSTACK_SITES ))
+ NUM_OPENSTACK_SYSTEM=$(( ${#OPENSTACK_SYSTEM[@]} - 1 ))
else
NUM_OPENSTACK_SYSTEM=${#OPENSTACK_SYSTEM[@]}
fi
openstack_index=0
# Assuming number of openstack control nodes equals number of openstack sites
-NUM_OPENSTACK_CONTROL_NODES=$(( NUM_OPENSTACK_SITES ))
+NUM_OPENSTACK_CONTROL_NODES=1
echo "NUM_OPENSTACK_CONTROL_NODES=${NUM_OPENSTACK_CONTROL_NODES}" >> slave_addresses.txt
for i in $(seq 0 $((NUM_OPENSTACK_CONTROL_NODES - 1)))
do
pip install --upgrade robotframework-httplibrary \
requests==2.15.1 \
robotframework-requests \
- robotframework-sshlibrary \
+ robotframework-sshlibrary==3.1.1 \
robotframework-selenium2library \
robotframework-pycurllibrary
pip3 install --user https://files.pythonhosted.org/packages/c3/e3/146b675e6d0138a49c4b817b4e68170eb9b75cee7e71fa3ec69624c4f467/elasticsearch-6.2.0-py2.py3-none-any.whl
pip3 install --user https://files.pythonhosted.org/packages/75/5e/b84feba55e20f8da46ead76f14a3943c8cb722d40360702b2365b91dec00/PyYAML-3.11.tar.gz
+# odltools for extra debugging
+pip install odltools
+odltools -V
+
# Print installed versions.
pip install --upgrade pipdeptree
-pipdeptree
+pip freeze
# vim: sw=4 ts=4 sts=4 et ft=sh :
- opendaylight-infra-stack:
stack-template: 'csit-3-instance-type.yaml'
+# Macro: integration-apex-stack-3-type
+# Operation: Sets environment and then calls opendaylight-apex-stack to spin
+# up csit lab using openstack-heat.
+# Used by: {project}-csit-* apex related job templates
+
+- builder:
+ name: integration-apex-stack-3-type
+ builders:
+ - integration-cleanup-workspace
+ - shell: |
+ #!/bin/bash
+ # Setup openstack envirnoment file for use by
+ # the opendaylight-infra-stack macro
+ cat > $WORKSPACE/opendaylight-infra-environment.yaml << EOF
+ parameters:
+ vm_0_count: {vm_0_count}
+ vm_0_flavor: {vm_0_flavor}
+ vm_0_image: {vm_0_image}
+ vm_1_count: {vm_1_count}
+ vm_1_flavor: {vm_1_flavor}
+ vm_1_image: {vm_1_image}
+ vm_2_count: {vm_2_count}
+ vm_2_flavor: {vm_2_flavor}
+ vm_2_image: {vm_2_image}
+ EOF
+ echo "Contents of opendaylight-infra-environment.yaml ..."
+ cat $WORKSPACE/opendaylight-infra-environment.yaml
+ - opendaylight-apex-stack:
+ stack-template: 'csit-apex-3-instance-type.yaml'
+
# Macro: integration-infra-stack-4-type
# Operation: Sets environment and then calls opendaylight-infra-stack to spin
# up csit lab using openstack-heat.
- opendaylight-infra-stack:
stack-template: 'csit-4-instance-type.yaml'
+# Macro: integration-get-apex-addresses
+# Operation: this macro gets the IP addresses of the dynamic vms from apex snapshots
+# Used by: {project}-csit-* apex related job templates
+
+- builder:
+ name: integration-get-apex-addresses
+ builders:
+ - shell: !include-raw: integration-get-apex-addresses.sh
+
+# Macro: integration-apex-run-tests
+# Operation: this macro just runs the robot suites
+# Used by: {project}-csit-* apex related job templates
+
+- builder:
+ name: integration-apex-run-tests
+ builders:
+ - shell: !include-raw: integration-apex-run-tests.sh
+
# Macro: integration-get-slave-addresses
# Operation: this macro gets the IP addresses of the dynamic vms
# Used by: {project}-csit-* job templates
- shell: !include-raw:
- integration-deploy-openstack-run-test.sh
+- builder:
+ name: integration-apex-image-manager
+ builders:
+ - shell: !include-raw:
+ - ../opendaylight-infra-apex-image-management.sh
+
- builder:
name: integration-compare-distributions
# Operation: will compare an already created distribtion (probably last
build-steps:
- shell: |
#!/bin/bash
+ echo "Archiving csit artifacts"
cd $WORKSPACE
mkdir -p ./archives
for i in `seq 1 ${NUM_ODL_SYSTEM}`; do
NODE_FOLDER="./archives/odl_${i}"
mkdir -p ${NODE_FOLDER}
- mv odl${i}_karaf* ${NODE_FOLDER} || true
+ mv odl${i}_* ${NODE_FOLDER} || true
mv karaf_${i}_*_threads* ${NODE_FOLDER} || true
mv *_${i}.png ${NODE_FOLDER} || true
+ mv /tmp/odl${i}_* ${NODE_FOLDER} || true
done
curl --output robot-plugin.zip "$BUILD_URL/robot/report/*zip*/robot-plugin.zip"
unzip -d ./archives robot-plugin.zip
files: 'csit/suites/{project}/**'
builders:
+ - lf-infra-pre-build
- integration-infra-stack:
stack-template: '{stack-template}'
vm_0_count: '1'
- job-template:
name: '{prefix}{project}-csit-1node-{functionality}-{install}-{stream}'
id: inttest-csit-1node
- disabled: false
+ disable-job: false
+ disabled: '{disable-job}'
project-type: freestyle
node: centos7-robot-2c-8g
build-timeout: '{build-timeout}'
builders:
+ - lf-infra-pre-build
- integration-infra-stack:
stack-template: '{stack-template}'
vm_0_count: '1'
files: 'csit/suites/{project}/**'
builders:
+ - lf-infra-pre-build
- integration-infra-stack:
stack-template: '{stack-template}'
vm_0_count: '3'
refspec: '$PATCHREFSPEC'
branch: 'master'
+ triggers:
+ # we need this for not SR projects
+ - integration-csit-trigger:
+ jobs: '{trigger-jobs}'
+
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
builders:
+ - lf-infra-pre-build
- integration-infra-stack:
stack-template: '{stack-template}'
vm_0_count: '3'
build-timeout: '{build-timeout}'
builders:
+ - lf-infra-pre-build
- integration-infra-stack:
stack-template: '{stack-template}'
vm_0_count: '3'
name: ODL_SNAT_MODE
default: '{odl-snat-mode}'
description: 'The SNAT mode to be configured - options are conntrack/controller.'
+ - string:
+ name: OVS_INSTALL
+ default: '{ovs-install}'
+ description: 'Install a custom OVS. It can be an OVS version to build (like v2.9.2 or v2.6.1-nsh) or a yum
+ repo url to pull from.'
scm:
- integration-gerrit-scm:
basedir: 'test'
- timed: '{schedule}'
builders:
+ - lf-infra-pre-build
- integration-infra-stack-4-type:
stack-template: '{stack-template}'
vm_0_count: '{odl_system_count}'
default: '{odl-ml2-port-binding}'
description: 'Method of networking-odl port-binding (pseudo-agentdb-binding or legacy-port-binding or
network-topology)'
+ - string:
+ name: ENABLE_GRE_TYPE_DRIVERS
+ default: '{enable-gre-type-driver}'
+ description: 'Enable gre tunnel'
- string:
name: DEVSTACK_KUBERNETES_PLUGIN_REPO
default: '{devstack-kubernetes-plugin-repo}'
default: '{lbaas-service-provider}'
description: 'The NEUTRON_LBAAS_SERVICE_PROVIDERV2 value to be used in local.conf - only relevant when using
neutron-lbaas'
- - string:
- name: NUM_OPENSTACK_SITES
- default: '{num-openstack-sites}'
- description: 'Number of openstack sites'
- string:
name: ODL_SFC_DRIVER
default: '{odl-sfc-driver}'
name: ODL_SNAT_MODE
default: '{odl-snat-mode}'
description: 'The SNAT mode to be configured - options are conntrack/controller.'
-
+ - string:
+ name: OVS_INSTALL
+ default: '{ovs-install}'
+ description: 'Install a custom OVS. It can be an OVS version to build (like v2.9.2 or v2.6.1-nsh) or a yum
+ repo url to pull from.'
scm:
- integration-gerrit-scm:
basedir: 'test'
- timed: '{schedule}'
builders:
+ - lf-infra-pre-build
- integration-infra-stack-3-type:
stack-template: '{stack-template}'
vm_0_count: '{odl_system_count}'
- email-notification:
email-recipients: '{email-recipients}'
email-prefix: '[{project}]'
+
+- job-template:
+ # yamllint disable-line rule:line-length
+ name: '{prefix}{project}-csit-{topology}-{os-cmb-cnt}cmb-{os-ctl-cnt}ctl-{os-cmp-cnt}cmp-apex-{openstack}-{functionality}-{stream}'
+ id: inttest-csit-apex
+ disabled: false
+
+ project-type: freestyle
+ node: centos7-robot-2c-8g
+ concurrent: true
+
+ properties:
+ - opendaylight-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ os-cloud: '{os-cloud}'
+ project: 'integration/test'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+ - integration-distribution-branch:
+ branch: '{branch}'
+ - integration-distribution-stream:
+ stream: '{stream}'
+ - integration-bundle-url:
+ bundle-url: '{bundle-url}'
+ - integration-repo-url:
+ repo-url: '{repo-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:
+ test-plan: '{testplan}'
+ - integration-test-suites:
+ test-suites: '{test-suites}'
+ - integration-patch-refspec:
+ branch: 'master'
+ - integration-jdk-version:
+ jdkversion: '{jre}'
+ - distribution-karaf-version:
+ karaf-version: '{karaf-version}'
+ - integration-use-features-boot:
+ use-features-boot: '{use-features-boot}'
+ - string:
+ name: OPENSTACK_BRANCH
+ default: '{openstack-branch}'
+ description: 'Openstack version to use with devstack'
+ - string:
+ name: IPSEC_VXLAN_TUNNELS_ENABLED
+ default: '{ipsec-vxlan-tunnels-enabled}'
+ description: 'Enable ipsec over vxlan support for all controllers and computes'
+ - string:
+ name: PUBLIC_BRIDGE
+ default: '{public-bridge}'
+ description: 'Specifies public bridge for provider and external networking'
+ - string:
+ name: SECURITY_GROUP_MODE
+ default: '{security-group-mode}'
+ description: 'Security Group Mode to be used in netvirt aclservice config'
+ - string:
+ name: ENABLE_ITM_DIRECT_TUNNELS
+ default: '{enable-itm-direct-tunnels}'
+ description: 'Tunnel Configuration mode to be used in genius ifm config'
+ - string:
+ name: PUBLIC_PHYSICAL_NETWORK
+ default: '{public-physical-network}'
+ description: 'provider physical network used for flat/vlan networks'
+ - string:
+ name: ODL_SNAT_MODE
+ default: '{odl-snat-mode}'
+ description: 'The SNAT mode to be configured - options are conntrack/controller.'
+
+ scm:
+ - integration-gerrit-scm:
+ basedir: 'test'
+ refspec: '$PATCHREFSPEC'
+ branch: 'master'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - timed: '{schedule}'
+
+ builders:
+ - lf-infra-pre-build
+ - integration-apex-stack-3-type:
+ stack-template: '{stack-template}'
+ vm_0_count: '{apex_controller_count}'
+ vm_0_flavor: '{apex_controller_flavor}'
+ vm_0_image: '{apex_controller_image}'
+ vm_1_count: '1'
+ vm_1_flavor: '{apex_compute_0_flavor}'
+ vm_1_image: '{apex_compute_0_image}'
+ vm_2_count: '1'
+ vm_2_flavor: '{apex_compute_1_flavor}'
+ vm_2_image: '{apex_compute_1_image}'
+ - integration-install-robotframework
+ - integration-detect-variables
+ - integration-install-common-functions
+ - inject:
+ properties-file: 'env.properties'
+ - integration-get-apex-addresses
+ - inject:
+ properties-file: 'slave_addresses.txt'
+ - integration-apex-run-tests
+ - integration-cleanup-tmp
+
+ publishers:
+ - integration-robot-tempest:
+ unstable-if: 0.0
+ pass-if: 100.0
+ - email-notification:
+ email-recipients: '{email-recipients}'
+ email-prefix: '[{project}]'
+ - integration-csit-archive-build
+ - integration-csit-run-postscript
+ - releng-openstack-stack-delete
+ - lf-infra-publish
jobs:
- 'integration-patch-test-{stream}'
- 'integration-multipatch-test-{stream}'
+ - 'integration-merge-dashboard'
- '{project-name}-rtd-jobs':
build-node: centos7-builder-2c-2g
project-pattern: integration/test
# CSIT Lists in defaults.yaml
stream:
- - fluorine:
+ - neon:
branch: 'master'
mvn-version: 'mvn35'
+ csit-list: !include: csit-jobs-neon.lst
+ build-order: >
+ odlparent yangtools infrautils mdsal controller serviceutils aaa netconf
+ daexim ovsdb neutron openflowplugin coe genius lispflowmapping sfc netvirt
+ bgpcep integration/distribution
+
+ - fluorine:
+ branch: 'stable/fluorine'
+ mvn-version: 'mvn35'
csit-list: !include: csit-jobs-fluorine.lst
build-order: >
- odlparent yangtools infrautils mdsal controller aaa netconf daexim bgpcep
- ovsdb neutron lispflowmapping openflowplugin coe genius sfc netvirt
+ odlparent yangtools infrautils mdsal controller serviceutils aaa netconf
+ daexim ovsdb neutron openflowplugin coe genius lispflowmapping sfc netvirt
+ bgpcep integration/distribution
- oxygen:
branch: 'stable/oxygen'
mvn-version: 'mvn35'
csit-list: !include: csit-jobs-oxygen.lst
build-order: >
- odlparent yangtools infrautils mdsal controller aaa netconf daexim bgpcep
- ovsdb neutron lispflowmapping openflowplugin coe genius sfc netvirt
+ odlparent yangtools infrautils mdsal controller serviceutils aaa netconf
+ daexim ovsdb neutron openflowplugin coe genius lispflowmapping sfc netvirt
+ bgpcep integration/distribution
- project:
name: integration-distribution
# CSIT Lists in defaults.yaml
stream:
- - fluorine:
+ - neon:
branch: 'master'
csit-blacklist: >
alto bier capwap centinel didm dluxapps groupbasedpolicy iotdm jsonrpc lacp
l2switch messaging4transport nemo netide nic ocpplugin of-config p4plugin packetcable
sdninterfaceapp sxp tsdr unimgr usc usecplugin vtn gate longevity sanity tdd tempest wip
+ aaa-csit-1node-keystone-all
+ netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
+ netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
+ netvirt-csit-3node-1cmb
+ last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
+ csit-list: !include: csit-jobs-neon.lst
+ csit-weekly-list: '{csit-weekly-list-neon}'
+ csit-high-frequency-list: '{csit-high-frequency-list-neon}'
+ - fluorine:
+ branch: 'stable/fluorine'
+ csit-blacklist: >
+ alto bier capwap centinel didm dluxapps groupbasedpolicy iotdm jsonrpc lacp
+ l2switch messaging4transport nemo netide nic ocpplugin of-config p4plugin packetcable
+ sdninterfaceapp sxp tsdr unimgr usc usecplugin vtn gate longevity sanity tdd tempest wip
+ aaa-csit-1node-keystone-all
+ netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
+ netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
+ netvirt-csit-3node-1cmb
+ last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
csit-list: !include: csit-jobs-fluorine.lst
csit-weekly-list: '{csit-weekly-list-fluorine}'
csit-high-frequency-list: '{csit-high-frequency-list-fluorine}'
csit-blacklist: >
capwap centinel didm iotdm jsonrpc lacp messaging4transport netide nic
ocpplugin sdninterfaceapp unimgr usecplugin gate longevity sanity tdd tempest wip
+ aaa-csit-1node-keystone-all groupbasedpolicy-csit-1node-1cmb-0ctl-0cmp-openstack-pike-openstack
+ netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
+ netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
+ netvirt-csit-3node-1cmb
+ last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
csit-list: !include: csit-jobs-oxygen.lst
csit-weekly-list: '{csit-weekly-list-oxygen}'
csit-high-frequency-list: '{csit-high-frequency-list-oxygen}'
- 'integration-sanity-test-{stream}'
stream:
- - fluorine:
+ - neon:
branch: 'master'
karaf-version: odl
+ csit-sanity-list: '{csit-sanity-list-neon}'
+ - fluorine:
+ branch: 'stable/fluorine'
+ karaf-version: odl
csit-sanity-list: '{csit-sanity-list-fluorine}'
- oxygen:
branch: 'stable/oxygen'
karaf-version: karaf4
csit-sanity-list: '{csit-sanity-list-oxygen}'
+- job-template:
+ name: 'integration-merge-dashboard'
+ project-type: freestyle
+ node: centos7-builder-2c-1g
+
+ properties:
+ - opendaylight-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ os-cloud: '{os-cloud}'
+ project: '{project}'
+ branch: 'master'
+ refspec: 'refs/heads/master'
+ artifacts: '{archive-artifacts}'
+
+ scm:
+ - integration-gerrit-scm:
+ basedir: 'test'
+ refspec: '$GERRIT_REFSPEC'
+ branch: 'master'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - gerrit-trigger-patch-merged:
+ gerrit-server-name: '{gerrit-server-name}'
+ name: '{project}'
+ branch: 'master'
+ files: 'dashboard/**'
+ forbidden-files: ''
+
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: odl-elastic-cloud
+ target: '$HOME/.netrc'
+ - integration-install-robotframework
+ # yamllint disable-line rule:line-length
+ - shell: python3 $WORKSPACE/test/csit/scripts/push_dashboard.py a4ff38b99ef2c7626450543021b4c134.us-east-1.aws.found.io:9243
+
+ publishers:
+ - lf-infra-publish
+ - email-notification:
+ email-recipients: '{email-recipients}'
+ email-prefix: '[{project-name}]'
+
- job-template:
name: 'integration-distribution-test-{stream}'
# Goal: Verify a distribution through all system test available
#####################
project-type: freestyle
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-2g
properties:
- lf-infra-properties:
description: 'List of integration jobs'
regex: '^integration-.*'
<<: *releng_view_common
+
+- view:
+ name: csit-stable-f
+ description: 'List of stable integration jobs for managed projects'
+ job-name:
+ - aaa-csit-1node-authn-all-fluorine
+ - bgpcep-csit-1node-throughpcep-all-fluorine
+ - coe-csit-1node-container-networking-all-fluorine
+ - controller-csit-1node-akka1-all-fluorine
+ - controller-csit-1node-benchmark-all-fluorine
+ - controller-csit-1node-notifications-longevity-only-fluorine
+ - controller-csit-1node-rest-cars-perf-all-fluorine
+ - controller-csit-3node-benchmark-all-fluorine
+ - controller-csit-3node-drb-precedence-longevity-only-fluorine
+ - controller-csit-3node-rest-clust-cars-perf-ask-only-fluorine
+ - controller-csit-3node-rest-clust-cars-perf-tell-only-fluorine
+ - daexim-csit-1node-basic-only-fluorine
+ - daexim-csit-3node-clustering-basic-only-fluorine
+ - distribution-csit-1node-userfeatures-all-fluorine
+ - genius-csit-1node-upstream-only-fluorine
+ - genius-csit-3node-upstream-only-fluorine
+ - lispflowmapping-csit-1node-msmr-all-fluorine
+ - netconf-csit-1node-callhome-only-fluorine
+ - netconf-csit-1node-userfeatures-all-fluorine
+ - netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-sfc-fluorine
+ - netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine
+ - openflowplugin-csit-1node-flow-services-all-fluorine
+ - openflowplugin-csit-1node-longevity-only-fluorine
+ - openflowplugin-csit-1node-perf-bulkomatic-only-fluorine
+ - openflowplugin-csit-1node-perf-stats-collection-only-fluorine
+ - openflowplugin-csit-1node-sanity-only-fluorine
+ - openflowplugin-csit-1node-scale-link-only-fluorine
+ - openflowplugin-csit-1node-scale-only-fluorine
+ - openflowplugin-csit-1node-scale-switch-only-fluorine
+ - openflowplugin-csit-3node-clustering-bulkomatic-only-fluorine
+ - openflowplugin-csit-3node-clustering-only-fluorine
+ - ovsdb-csit-3node-upstream-clustering-only-fluorine
+ - sfc-csit-3node-docker-full-deploy-all-fluorine
+ - sfc-csit-3node-rest-basic-all-fluorine
+ <<: *releng_view_common
+
+- view:
+ name: csit-stable-ne
+ description: 'List of stable integration jobs for managed projects'
+ job-name:
+ - aaa-csit-1node-authn-all-neon
+ - bgpcep-csit-1node-throughpcep-all-neon
+ - coe-csit-1node-container-networking-all-neon
+ - controller-csit-1node-akka1-all-neon
+ - controller-csit-1node-benchmark-all-neon
+ - controller-csit-1node-notifications-longevity-only-neon
+ - controller-csit-1node-rest-cars-perf-all-neon
+ - controller-csit-3node-benchmark-all-neon
+ - controller-csit-3node-drb-precedence-longevity-only-neon
+ - controller-csit-3node-rest-clust-cars-perf-ask-only-neon
+ - controller-csit-3node-rest-clust-cars-perf-tell-only-neon
+ - daexim-csit-1node-basic-only-neon
+ - daexim-csit-3node-clustering-basic-only-neon
+ - distribution-csit-1node-userfeatures-all-neon
+ - genius-csit-1node-upstream-only-neon
+ - genius-csit-3node-upstream-only-neon
+ - lispflowmapping-csit-1node-msmr-all-neon
+ - netconf-csit-1node-callhome-only-neon
+ - netconf-csit-1node-userfeatures-all-neon
+ - netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-sfc-neon
+ - netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-neon
+ - openflowplugin-csit-1node-flow-services-all-neon
+ - openflowplugin-csit-1node-longevity-only-neon
+ - openflowplugin-csit-1node-perf-bulkomatic-only-neon
+ - openflowplugin-csit-1node-perf-stats-collection-only-neon
+ - openflowplugin-csit-1node-sanity-only-neon
+ - openflowplugin-csit-1node-scale-link-only-neon
+ - openflowplugin-csit-1node-scale-only-neon
+ - openflowplugin-csit-1node-scale-switch-only-neon
+ - openflowplugin-csit-3node-clustering-bulkomatic-only-neon
+ - openflowplugin-csit-3node-clustering-only-neon
+ - ovsdb-csit-3node-upstream-clustering-only-neon
+ - sfc-csit-3node-docker-full-deploy-all-neon
+ - sfc-csit-3node-rest-basic-all-neon
+ <<: *releng_view_common
echo "Create topic ${TOPIC} patch list"
PATCHES_TO_BUILD=""
read -ra PROJECT_LIST <<< "${BUILD_ORDER}"
+ echo "List of projects to check patch in topic: ${PROJECT_LIST[*]}"
for PROJECT in "${PROJECT_LIST[@]}"; do
# get all patches number for a topic for a given project
IFS=$'\n' read -rd '' -a GERRIT_PATCH_LIST <<< "$(ssh -p 29418 jenkins-$SILO@git.opendaylight.org gerrit query status:open topic:${TOPIC} project:${PROJECT} \
read -rd '' -a SORT_REF_LIST <<< "${SORT_REF[*]}" || true
# add refspec to patches to build list
for PATCH in "${SORT_REF_LIST[@]}"; do
- PATCHES_TO_BUILD="${PATCHES_TO_BUILD}:${PATCH/*-/}"
+ # if project is odlparent or yangtools, do not cherry-pick
+ if [[ "${PROJECT}" == "odlparent" || "${PROJECT}" == "yangtools" ]]; then
+ PATCHES_TO_BUILD="${PATCHES_TO_BUILD}=${PATCH/*-/}"
+ else
+ PATCHES_TO_BUILD="${PATCHES_TO_BUILD}:${PATCH/*-/}"
+ fi
done
fi
done
fi
-
echo "Patches to build: ${PATCHES_TO_BUILD}"
IFS=',' read -ra PATCHES <<< "${PATCHES_TO_BUILD}"
job_list="${WORKSPACE}/jjb/integration/csit-jobs-${STREAM}.lst"
rm "$job_list"
for job in "${jobs[@]}"; do
+ echo "Checking if $job is blacklisted."
if [[ ! $job =~ update-csit-tests|${CSIT_BLACKLIST// /\|} ]]; then
echo "${job}," >> "$job_list"
+ echo " Added $job to job list."
fi
done
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: iotdm-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'iotdm'
+ project-name: 'iotdm'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'iotdm-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'aaa-merge-{stream}'
+ email-upstream: '[iotdm] [aaa]'
+
+ # Used by the release job
+ staging-profile-id: 96fd6e9453970
+
- project:
name: iotdm-fluorine
jobs:
stream: fluorine
project: 'iotdm'
project-name: 'iotdm'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'iotdm-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: jsonrpc-neon
+ jobs:
+ - odl-maven-jobs
+
+ project: 'jsonrpc'
+ project-name: 'jsonrpc'
+ stream: neon
+ branch: 'master'
+ mvn-settings: 'jsonrpc-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream},mdsal-merge-{stream}'
+ email-upstream: '[jsonrpc] [odlparent] [yangtools] [controller] [mdsal]'
+
+ # Used by the release job
+ staging-profile-id: 96fdf4408765d
+
- project:
name: jsonrpc-fluorine
jobs:
project: 'jsonrpc'
project-name: 'jsonrpc'
stream: fluorine
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'jsonrpc-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream},mdsal-merge-{stream}'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: l2switch-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'l2switch'
+ project-name: 'l2switch'
+ branch: 'master'
+ mvn-settings: 'l2switch-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
+ dependencies: >
+ odlparent-merge-{stream},
+ yangtools-merge-{stream},
+ controller-merge-{stream},
+ openflowjava-merge-{stream},
+ openflowplugin-merge-{stream}
+ email-upstream: '[l2switch] [odlparent] [yangtools] [controller] [openflowjava] [openflowplugin]'
+
+ # Used by the release job
+ staging-profile-id: 96fee85953ca0
+
- project:
name: l2switch-fluorine
jobs:
stream: fluorine
project: 'l2switch'
project-name: 'l2switch'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'l2switch-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
dependencies: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
- all:
scope: 'all'
- tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20180723-235543.682
+ tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20181029-223449.514
# Features to install
install-features: 'odl-lacp-ui'
---
+- project:
+ name: lacp-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'lacp'
+ project-name: 'lacp'
+ branch: 'master'
+ mvn-settings: 'lacp-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'openflowjava-merge-{stream},openflowplugin-merge-{stream}'
+ email-upstream: '[lacp] [openflowjava] [openflowplugin]'
+
+ # Used by the release job
+ staging-profile-id: 96ff6c0ff6ab1
+
- project:
name: lacp-fluorine
jobs:
stream: fluorine
project: 'lacp'
project-name: 'lacp'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'lacp-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'openflowjava-merge-{stream},openflowplugin-merge-{stream}'
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- project:
name: lf-infra-ci-workshop
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- project:
name: lf-infra-common-packer
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- project:
name: lf-infra-docs
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- project:
name: lf-infra-docs-conf
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- project:
name: lf-infra-global-jjb
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- project:
name: lf-infra-lftools
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- project:
name: lf-infra-license-checker
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- view:
name: lf-infra
branch: '*'
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
- gerrit-server-name: LinuxFoundation
+ gerrit-server-name: lf-releng
- view:
name: lfn
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: lispflowmapping-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: lispflowmapping
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-lispflowmapping/47783/
+ rtd-token: 181be9dd804e4969b9f318a6f1988e3cbee9d9a8
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'lispflowmapping'
+ project-name: 'lispflowmapping'
+ branch: 'master'
+ mvn-settings: 'lispflowmapping-settings'
+ mvn-goals: 'clean deploy findbugs:findbugs javadoc:aggregate -DrepoBuild'
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m -Dmaven.compile.fork=true'
+ dependencies: 'controller-merge-{stream},odlparent-merge-{stream},yangtools-merge-{stream},neutron-merge-{stream}'
+ email-upstream: '[lispflowmapping] [controller] [odlparent] [yangtools] [neutron]'
+ archive-artifacts: >
+ **/*.log
+ **/target/surefire-reports/*-output.txt
+
+ build-node: centos7-builder-8c-8g
+
+ # Used by the release job
+ staging-profile-id: 96fff2503b766
+
- project:
name: lispflowmapping-fluorine
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: lispflowmapping
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-lispflowmapping/47783/
+ rtd-token: 181be9dd804e4969b9f318a6f1988e3cbee9d9a8
- odl-maven-jobs
stream: fluorine
project: 'lispflowmapping'
project-name: 'lispflowmapping'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'lispflowmapping-settings'
mvn-goals: 'clean deploy findbugs:findbugs javadoc:aggregate -DrepoBuild'
mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m -Dmaven.compile.fork=true'
# The project name
project: 'mdsal'
+ disable-job: true
# The functionality under test
functionality: 'bindingv1'
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
project: 'mdsal'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
---
+- project:
+ name: mdsal-master
+ jobs:
+ - '{project-name}-maven-javadoc-jobs':
+ mvn-version: 'mvn33'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: mdsal
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-mdsal/44052/
+ rtd-token: a56d6212dd3de3eef12642affe8a6100cc8bc002
+ - odl-maven-jobs
+
+ project: mdsal
+ project-name: mdsal
+ branch: master
+ stream: master
+
+ mvn-settings: 'mdsal-settings'
+ mvn-opts: '-Xmx2048m'
+ sign-artifacts: true
+
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[mdsal] [odlparent] [yangtools]'
+ archive-artifacts: >
+ **/*.prop
+ **/*.log
+ **/target/surefire-reports/*-output.txt
+ **/target/failsafe-reports/failsafe-summary.xml
+ **/hs_err_*.log
+ **/target/feature/feature.xml
+
+ # Used by the release job
+ staging-profile-id: a674173c7b29d
+
+- project:
+ name: mdsal-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}':
+ mvn-version: 'mvn35'
+ distribution_branch: master
+ - '{project-name}-maven-javadoc-jobs':
+ mvn-version: 'mvn33'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: mdsal
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-mdsal/44052/
+ rtd-token: a56d6212dd3de3eef12642affe8a6100cc8bc002
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'mdsal'
+ project-name: 'mdsal'
+ branch: 'v2.6.x'
+ mvn-settings: 'mdsal-settings'
+ mvn-goals: '-Dmaven.compile.fork=true clean deploy -Dintegrationtests'
+ mvn-opts: '-Xmx2048m'
+ sign-artifacts: true
+ build-node: centos7-builder-8c-8g
+ build-timeout: 90
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[mdsal] [odlparent] [yangtools]'
+
+ # Used by the release job
+ staging-profile-id: a674173c7b29d
+
- project:
name: mdsal-fluorine
jobs:
stream: fluorine
project: 'mdsal'
project-name: 'mdsal'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'mdsal-settings'
mvn-goals: '-Dmaven.compile.fork=true clean deploy -Dintegrationtests'
- mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m'
+ mvn-opts: '-Xmx2048m'
build-node: centos7-builder-8c-8g
build-timeout: 90
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
branch: 'stable/oxygen'
mvn-settings: 'mdsal-settings'
mvn-goals: '-Dmaven.compile.fork=true clean deploy -Dintegrationtests'
- mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m'
+ mvn-opts: '-Xmx2048m'
build-node: centos7-builder-8c-8g
build-timeout: 90
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
- project:
name: mdsal-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: 'mdsal'
project-name: 'mdsal'
branch: 'master'
build-node: centos7-builder-8c-8g
mvn-settings: 'mdsal-settings'
mvn-goals: '-Dmaven.compile.fork=true clean deploy -Dintegrationtests'
- mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m'
+ mvn-opts: '-Xmx2048m'
- view:
name: mdsal
+++ /dev/null
----
-- project:
- name: messaging4transport-csit-basic
- jobs:
- - inttest-csit-1node
- - inttest-csit-verify-1node
-
- # The project name
- project: 'messaging4transport'
-
- # The functionality under test
- functionality: 'basic'
-
- # Project branches
- stream:
- - fluorine:
- branch: 'master'
- - oxygen:
- branch: 'stable/oxygen'
-
- install:
- - all:
- scope: 'all'
-
- # Features to install
- install-features: 'odl-messaging4transport-api,odl-messaging4transport,odl-restconf'
-
- # Robot custom options
- robot-options: ''
+++ /dev/null
----
-- project:
- name: messaging4transport-fluorine
- jobs:
- - '{project-name}-maven-javadoc-jobs'
- - odl-maven-jobs
-
- stream: fluorine
- project: 'messaging4transport'
- project-name: 'messaging4transport'
- branch: 'master'
- mvn-settings: 'messaging4transport-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[messaging4transport]'
-
- # Used by the release job
- staging-profile-id: a677283157db4
-
-- project:
- name: messaging4transport-oxygen
- jobs:
- - '{project-name}-distribution-check-{stream}'
- - '{project-name}-maven-javadoc-jobs'
- - odl-maven-jobs
-
- stream: oxygen
- project: 'messaging4transport'
- project-name: 'messaging4transport'
- branch: 'stable/oxygen'
- mvn-settings: 'messaging4transport-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[messaging4transport]'
-
- # Used by the release job
- staging-profile-id: a677283157db4
-
-- project:
- name: messaging4transport-sonar
- jobs:
- - gerrit-maven-sonar
- project: 'messaging4transport'
- project-name: 'messaging4transport'
- branch: 'master'
- mvn-settings: 'messaging4transport-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
-- view:
- name: messaging4transport
- description: 'List of messaging4transport jobs'
- regex: '^messaging4transport-.*'
- <<: *releng_view_common
---
+- project:
+ name: natapp-neon
+ jobs:
+ - '{project-name}-maven-javadoc-jobs'
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'natapp'
+ project-name: 'natapp'
+ branch: 'master'
+ mvn-settings: 'natapp-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'openflowplugin-merge-{stream}'
+ email-upstream: '[natapp] [openflowplugin]'
+
+ # Used by the release job
+ staging-profile-id: a679c0f4f08a8
+
- project:
name: natapp-fluorine
jobs:
stream: fluorine
project: 'natapp'
project-name: 'natapp'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'natapp-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'openflowplugin-merge-{stream}'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: nemo-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'nemo'
+ project-name: 'nemo'
+ branch: 'master'
+ mvn-settings: 'nemo-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[nemo]'
+
+ # Used by the release job
+ staging-profile-id: a67a9890f6202
+
- project:
name: nemo-fluorine
jobs:
stream: fluorine
project: 'nemo'
project-name: 'nemo'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'nemo-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
project: 'netconf'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
install:
- - all:
- scope: 'all'
+ - only:
+ scope: 'only'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: netconf-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: netconf
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-netconf/48397/
+ rtd-token: aee2df909686ab7ba36f2ed08d90bdcf81f7b8dc
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'netconf'
+ project-name: 'netconf'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'netconf-settings'
+ mvn-goals: 'clean deploy -Pintegrationtests'
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
+ build-timeout: 90
+ dependencies: 'aaa-merge-{stream},controller-merge-{stream},odlparent-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[netconf] [aaa] [controller] [odlparent] [yangtools]'
+
+ # Used by the release job
+ staging-profile-id: a67b22fc3663f
+
- project:
name: netconf-fluorine
jobs:
- '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: netconf
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-netconf/48397/
+ rtd-token: aee2df909686ab7ba36f2ed08d90bdcf81f7b8dc
- odl-maven-jobs
stream: fluorine
project: 'netconf'
project-name: 'netconf'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'netconf-settings'
mvn-goals: 'clean deploy -Pintegrationtests'
+++ /dev/null
----
-- project:
- name: netide-csit-basic
- jobs:
- - inttest-csit-verify-1node
- - inttest-csit-1node
-
- # The project name
- project: 'netide'
-
- # The functionality under test
- functionality: 'basic'
-
- # Project branches
- stream:
- - fluorine:
- branch: 'master'
- - oxygen:
- branch: 'stable/oxygen'
-
- install:
- - all:
- scope: 'all'
-
- # Features to install
- install-features: 'odl-openflowplugin-flow-services-ui,odl-netide-rest'
-
- # Robot custom options
- robot-options: ''
---
+- project:
+ name: netide-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'netide'
+ project-name: 'netide'
+ branch: 'master'
+ mvn-settings: 'netide-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'openflowjava-merge-{stream}'
+ email-upstream: '[netide] [openflowjava]'
+
+ # Used by the release job
+ staging-profile-id: a67bab3755815
+
- project:
name: netide-fluorine
jobs:
stream: fluorine
project: 'netide'
project-name: 'netide'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'netide-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'openflowjava-merge-{stream}'
+++ /dev/null
-#!/bin/bash
-
-set -e
-
-echo "---> Cleaning up OVS $OVS_VERSION"
-docker logs "$CID" > "$WORKSPACE/docker-ovs-${OVS_VERSION}.log"
-docker stop "$CID"
-docker rm "$CID"
-rm env.properties
-
-docker images
+++ /dev/null
-#!/bin/bash
-
-set -e
-
-echo "---> Configuring OVS for HW VTEP Emulator"
-/usr/bin/docker exec "$CID" supervisorctl stop ovsdb-server
-/usr/bin/docker exec "$CID" supervisorctl start ovsdb-server-vtep
-/usr/bin/docker exec "$CID" ovs-vsctl add-br br-vtep
-/usr/bin/docker exec "$CID" ovs-vsctl add-port br-vtep eth0
-/usr/bin/docker exec "$CID" vtep-ctl add-ps br-vtep
-/usr/bin/docker exec "$CID" vtep-ctl add-port br-vtep eth0
-/usr/bin/docker exec "$CID" vtep-ctl set Physical_Switch br-vtep tunnel_ips=192.168.254.20
-/usr/bin/docker exec "$CID" vtep-ctl set-manager ptcp:6640
-sleep 5
-echo "---> Starting OVS HW VTEP Emulator"
-/usr/bin/docker exec "$CID" supervisorctl start ovs-vtep
-sleep 5
+++ /dev/null
-#!/bin/bash
-
-set -e
-
-echo "---> Setting up controller IP"
-CONTROLLER_IP=$(facter ipaddress)
-echo "CONTROLLER_IP=${CONTROLLER_IP}" > env.properties
-
-echo "---> Loading OVS kernel module"
-sudo /usr/sbin/modprobe openvswitch
-
-echo "---> Verifying OVS kernel module loaded"
-/usr/sbin/lsmod | /usr/bin/grep openvswitch
--- /dev/null
+---
+- project:
+ name: netvirt-apex-image-management
+ jobs:
+ - 'netvirt-apex-image-management'
+
+ project: 'netvirt'
+ os-cloud: vex
+
+- job-template:
+ name: 'netvirt-apex-image-management'
+ node: 'centos7-apex-2c-2g'
+
+ parameters:
+ - string:
+ name: OS_CLOUD
+ default: '{os-cloud}'
+ description: |
+ The name of a cloud configuration in clouds.yaml. OS_CLOUD is a
+ variable name that is significant to openstack client as a
+ environment variable. Please refer to the documentation for
+ further details.
+ https://docs.openstack.org/developer/python-openstackclient/
+
+ wrappers:
+ # Listed after to override openstack-infra-wrappers clouds.yaml definition
+ - config-file-provider:
+ files:
+ - file-id: clouds-yaml
+ target: '$HOME/.config/openstack/clouds.yaml'
+
+ builders:
+ - integration-apex-image-manager
+
+ triggers:
+ - timed: '@weekly'
---
- project:
- name: netvirt-csit-hwvtep-openstack-integration-fluorine
+ name: netvirt-csit-hwvtep-openstack-integration-neon
jobs:
- inttest-csit-hwvtep-openstack
project: 'netvirt'
- stream: 'fluorine'
+ stream: 'neon'
branch: 'master'
testplan: '{project}-{topology}-l2gw-openstack.txt'
odl-ml2-driver-version: 'v2'
openstack_system_flavor: odl-highcpu-8
openstack_system2_flavor: odl-highcpu-4
tools_system_count: 2
- tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20180723-235543.774
+ tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20181029-223513.438
os-cmb-cnt: 0
os-ctl-cnt: 1
os-cmp-cnt: 2
- gate-stateful
openstack:
- - pike:
- openstack-branch: 'stable/pike'
- odl-ml2-branch: 'stable/pike'
+ - queens:
+ openstack-branch: 'stable/queens'
+ odl-ml2-branch: 'stable/queens'
odl-ml2-port-binding: 'pseudo-agentdb-binding'
- openstack_system_image: '{openstack_system_image_pike}'
- openstack_system2_image: '{openstack_system_image_pike}'
- enable-openstack-network-services: '{openstack_legacy_default_network_services}'
+ openstack_system_image: '{openstack_system_image_queens}'
+ openstack_system2_image: '{openstack_system_image_queens}'
+
+- project:
+ name: netvirt-csit-hwvtep-openstack-integration-fluorine
+ jobs:
+ - inttest-csit-hwvtep-openstack
+
+ project: 'netvirt'
+ stream: 'fluorine'
+ branch: 'stable/fluorine'
+ testplan: '{project}-{topology}-l2gw-openstack.txt'
+ odl-ml2-driver-version: 'v2'
+ enable-openstack-services: 'placement-api,l2gw-plugin'
+ enable-openstack-compute-services: 'placement-client'
+ security-group-mode: 'stateful'
+ odl_system_flavor: odl-highcpu-8
+ openstack_system_flavor: odl-highcpu-8
+ openstack_system2_flavor: odl-highcpu-4
+ tools_system_count: 2
+ tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20181029-223513.438
+ os-cmb-cnt: 0
+ os-ctl-cnt: 1
+ os-cmp-cnt: 2
+
+ # TODO: remove this flag and instead use the enable-openstack-services list to know if l2gw is enabled
+ enable-networking-l2gw: 'yes'
+
+ topology:
+ - 1node:
+ openstack_system2_count: 2
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch'
+ - 3node:
+ openstack_system2_count: 2
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch'
+
+ functionality:
+ - upstream-stateful
+ - gate-stateful
+
+ openstack:
- queens:
openstack-branch: 'stable/queens'
odl-ml2-branch: 'stable/queens'
openstack_system_flavor: odl-highcpu-8
openstack_system2_flavor: odl-highcpu-4
tools_system_count: 2
- tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20180723-235543.774
+ tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-26 - 20181029-223513.438
os-cmb-cnt: 0
os-ctl-cnt: 1
os-cmp-cnt: 2
- gate-stateful
openstack:
- - pike:
- openstack-branch: 'stable/pike'
- odl-ml2-branch: 'stable/pike'
- odl-ml2-port-binding: 'pseudo-agentdb-binding'
- openstack_system_image: '{openstack_system_image_pike}'
- openstack_system2_image: '{openstack_system_image_pike}'
- enable-openstack-network-services: '{openstack_legacy_default_network_services}'
- queens:
openstack-branch: 'stable/queens'
odl-ml2-branch: 'stable/queens'
--- /dev/null
+---
+- project:
+ name: netvirt-csit-apex-integration-oxygen
+ jobs:
+ - inttest-csit-apex
+
+ project: 'netvirt'
+ stream:
+ - neon:
+ branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
+ - oxygen:
+ branch: 'stable/oxygen'
+ testplan: '{project}-{topology}-openstack.txt'
+
+ test-suites: 'openstack/connectivity/l2.robot
+ openstack/connectivity/external_network.robot'
+
+ topology: '1node'
+
+ public-bridge: 'br-datacentre'
+ public-physical-network: 'datacentre'
+ odl-snat-mode: 'conntrack'
+
+ apex_controller_count: '1'
+ apex_controller_flavor: 'v1-standard-8'
+ apex_controller_image: 'ZZCI - OPNFV - apex - controller - 0'
+
+ apex_compute_0_flavor: 'v1-standard-4'
+ apex_compute_0_image: 'ZZCI - OPNFV - apex - compute - 0'
+
+ apex_compute_1_flavor: 'v1-standard-4'
+ apex_compute_1_image: 'ZZCI - OPNFV - apex - compute - 1'
+
+ os-cmb-cnt: 0
+ os-ctl-cnt: 1
+ os-cmp-cnt: 2
+
+ functionality:
+ - upstream-snat-conntrack
+ - gate-snat-conntrack:
+ gate-job: 'True'
+
+ openstack:
+ - queens:
+ openstack-branch: 'stable/queens'
---
- project:
- name: netvirt-csit-upgrade-openstack-integration-oxygen
+ name: netvirt-csit-upgrade-openstack-integration
jobs:
- inttest-csit-openstack
project: 'netvirt'
- stream: 'fluorine'
- branch: 'master'
+
+ stream:
+ - neon:
+ branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
+
testplan: '{project}-{topology}-openstack-upgrade.txt'
odl-ml2-driver-version: 'v2'
enable-openstack-services: 'placement-api,l2gw-plugin'
---
- project:
- name: netvirt-csit-openstack-integration-fluorine
+ name: netvirt-csit-openstack-integration-neon
jobs:
- inttest-csit-openstack
project: 'netvirt'
- stream: 'fluorine'
+ stream: 'neon'
branch: 'master'
testplan: '{project}-{topology}-openstack.txt'
odl-ml2-driver-version: 'v2'
odl-snat-mode: 'conntrack'
openstack:
- - pike:
- openstack-branch: 'stable/pike'
- odl-ml2-branch: 'stable/pike'
+ - queens:
+ openstack-branch: 'stable/queens'
+ odl-ml2-branch: 'stable/queens'
odl-ml2-port-binding: 'pseudo-agentdb-binding'
- openstack_system_image: '{openstack_system_image_pike}'
- openstack_system2_image: '{openstack_system_image_pike}'
- enable-openstack-network-services: '{openstack_legacy_default_network_services}'
+ openstack_system_image: '{openstack_system_image_queens}'
+ openstack_system2_image: '{openstack_system_image_queens}'
+
+- project:
+ name: netvirt-csit-openstack-integration-fluorine
+ jobs:
+ - inttest-csit-openstack
+
+ project: 'netvirt'
+ stream: 'fluorine'
+ branch: 'stable/fluorine'
+ testplan: '{project}-{topology}-openstack.txt'
+ odl-ml2-driver-version: 'v2'
+ enable-openstack-services: 'placement-api,tempest'
+ enable-openstack-compute-services: 'placement-client'
+ security-group-mode: 'stateful'
+ odl_system_flavor: odl-highcpu-8
+ openstack_system_flavor: odl-highcpu-8
+ openstack_system2_flavor: odl-highcpu-4
+ os-cmb-cnt: 0
+ os-ctl-cnt: 1
+ os-cmp-cnt: 2
+
+ topology:
+ - 1node:
+ openstack_system2_count: 2
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch'
+ robot-options: '-v FAIL_ON_EXCEPTIONS:True'
+ - 3node:
+ openstack_system2_count: 3
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch'
+
+ functionality:
+ - upstream-stateful
+ - upstream-stateful-itm-direct-tunnels:
+ enable-itm-direct-tunnels: 'true'
+ - upstream-stateful-snat-conntrack:
+ odl-snat-mode: 'conntrack'
+ - gate-stateful
+ - gate-stateful-itm-direct-tunnels:
+ enable-itm-direct-tunnels: 'true'
+ - gate-stateful-snat-conntrack:
+ odl-snat-mode: 'conntrack'
+ - gate-minimal-cluster:
+ testplan: '{project}-{topology}-minimal-openstack.txt'
+ # Job for Test Driven Development with it's own testplan to run new/non-passing suites. scheduled manually.
+ - gate-tdd-wip:
+ testplan: '{project}-{topology}-tdd-wip-openstack.txt'
+ schedule: ''
+ - tempest-stateful:
+ test-suites: 'openstack/tempest/tempest.robot'
+ testplan: '{project}-{topology}-openstack-tempest.txt'
+ schedule: '{schedule-daily}'
+ - tempest-stateful-snat-conntrack:
+ test-suites: 'openstack/tempest/tempest.robot'
+ testplan: '{project}-{topology}-openstack-tempest.txt'
+ odl-snat-mode: 'conntrack'
+ schedule: '{schedule-daily}'
+ - gate-tempest-stateful:
+ test-suites: 'openstack/tempest/tempest.robot'
+ testplan: '{project}-{topology}-openstack-tempest.txt'
+ - gate-tempest-stateful-snat-conntrack:
+ test-suites: 'openstack/tempest/tempest.robot'
+ testplan: '{project}-{topology}-openstack-tempest.txt'
+ odl-snat-mode: 'conntrack'
+
+ openstack:
- queens:
openstack-branch: 'stable/queens'
odl-ml2-branch: 'stable/queens'
odl-snat-mode: 'conntrack'
openstack:
- - pike:
- openstack-branch: 'stable/pike'
- odl-ml2-branch: 'stable/pike'
- odl-ml2-port-binding: 'pseudo-agentdb-binding'
- openstack_system_image: '{openstack_system_image_pike}'
- openstack_system2_image: '{openstack_system_image_pike}'
- enable-openstack-network-services: '{openstack_legacy_default_network_services}'
- queens:
openstack-branch: 'stable/queens'
odl-ml2-branch: 'stable/queens'
project: 'netvirt'
security-group-mode: 'stateful'
odl_system_flavor: odl-highcpu-4
- openstack_system2_flavor: odl-highcpu-2
+ openstack_system2_flavor: odl-highcpu-8
os-cmb-cnt: 0
os-ctl-cnt: 1
os-cmp-cnt: 2
enable-openstack-plugins: 'networking-odl,networking-sfc'
testplan: '{project}-extensions-sfc.txt'
- stream:
- - fluorine:
- branch: 'master'
- - oxygen:
- branch: 'stable/oxygen'
-
openstack:
- queens:
openstack-branch: 'stable/queens'
openstack_system_image: '{openstack_system_image_queens}'
openstack_system2_image: '{openstack_system_image_queens}'
+ stream:
+ - neon:
+ branch: 'master'
+ ovs-install: 'v2.9.2'
+ - fluorine:
+ branch: 'stable/fluorine'
+ ovs-install: 'v2.9.2'
+ - oxygen:
+ branch: 'stable/oxygen'
+ ovs-install: 'v2.6.1-nsh'
+ os-cmp-cnt: 1
+ openstack_system2_count: 1
+ openstack_system_image: '{openstack_system_image_pike}'
+ openstack_system2_image: '{openstack_system_image_pike}'
+
- project:
- name: netvirt-csit-1cmb-0ctl-0cmp-openstack-integration-fluorine
+ name: netvirt-csit-1cmb-0ctl-0cmp-openstack-integration
jobs:
- inttest-csit-openstack
project: 'netvirt'
- stream: 'fluorine'
- branch: 'master'
testplan: '{project}-{topology}-openstack.txt'
odl-ml2-driver-version: 'v2'
enable-openstack-services: 'n-cpu,placement-api,tempest'
os-ctl-cnt: 0
os-cmp-cnt: 0
+ stream:
+ - neon:
+ branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
+ - oxygen:
+ branch: 'stable/oxygen'
+
topology:
- 1node:
openstack_system2_count: 0
install-features: 'odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch'
robot-options: '-v FAIL_ON_EXCEPTIONS:True'
- 3node:
- openstack_system2_count: 3
+ openstack_system2_count: 1
odl_system_count: 3
enable-haproxy: 'yes'
install-features: 'odl-jolokia,odl-netvirt-openstack,decanter-collector-jmx,decanter-appender-elasticsearch'
odl-snat-mode: 'conntrack'
openstack:
- - pike:
- openstack-branch: 'stable/pike'
- odl-ml2-branch: 'stable/pike'
- odl-ml2-port-binding: 'pseudo-agentdb-binding'
- openstack_system_image: '{openstack_system_image_pike}'
- openstack_system2_image: '{openstack_system_image_pike}'
- enable-openstack-network-services: '{openstack_legacy_default_network_services}'
- queens:
openstack-branch: 'stable/queens'
odl-ml2-branch: 'stable/queens'
--- /dev/null
+---
+- project:
+ name: netvirt-thirdparty-quagga-dependencies
+ project: 'netvirt'
+ project-name: 'netvirt'
+ jobs:
+ - 'netvirt-thirdparty-quagga-{platform}'
+
+ quagga-version: '5'
+ mvn-opts: ''
+ mvn-params: ''
+ mvn-version: mvn35
+
+ # common parameters required for 'lf-infra-deploy-maven-file' builder
+ repo-id: 'thirdparty'
+ upload-files-dir: '$WORKSPACE/upload_files'
+ group-id: 'quagga$QUAGGA_VERSION'
+
+ # Used by the release job
+ staging-profile-id: a67da0ffbb1ba
+
+ platform:
+ - centos7:
+ build-node: centos7-builder-2c-8g
+ - ubuntu1604:
+ build-node: ubuntu1604-mininet-ovs-25-1c-4g
+
+- job-template:
+ name: 'netvirt-thirdparty-quagga-{platform}'
+ project-type: freestyle
+ node: '{build-node}'
+ concurrent: true
+
+ properties:
+ - opendaylight-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ os-cloud: '{os-cloud}'
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+ - lf-infra-maven-parameters:
+ mvn-opts: '{mvn-opts}'
+ mvn-params: '{mvn-params}'
+ mvn-version: '{mvn-version}'
+ staging-profile-id: '{staging-profile-id}'
+ - string:
+ name: QUAGGA_VERSION
+ default: '{quagga-version}'
+ description: 'quagga version'
+
+ scm:
+ - git-netvirt-quagga
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ builders:
+ - lf-infra-pre-build
+ - netvirt-build-quagga
+ - lf-infra-deploy-maven-file:
+ global-settings-file: 'global-settings'
+ settings-file: 'netvirt-settings'
+ mvn-version: '{mvn-version}'
+ repo-id: '{repo-id}'
+ group-id: '{group-id}'
+ upload-files-dir: '{upload-files-dir}'
+ maven-repo-url: '$NEXUS_URL/content/repositories/thirdparty'
+
+ publishers:
+ - email-notification:
+ email-recipients: '{email-recipients}'
+ email-prefix: '[netvirt]'
+ - lf-infra-publish
+
+- builder:
+ name: 'netvirt-build-quagga'
+ builders:
+ - shell: !include-raw-escape: quagga-build.sh
+
+- scm:
+ name: 'git-netvirt-quagga'
+ scm:
+ - git:
+ url: https://github.com/6WIND/zrpcd.git
+ basedir: 'zrpcd'
+ branches:
+ - 'issue_32_bis'
+ wipe-workspace: true
+++ /dev/null
----
-- project:
- name: netvirt-full-integration
- jobs:
- - 'netvirt-daily-full-integration-{stream}'
-
- stream:
- - fluorine:
- branch: 'master'
- - oxygen:
- branch: 'stable/oxygen'
-
- project: 'netvirt'
- archive-artifacts: '*.log **/target/surefire-reports/*.txt'
-
-- builder:
- name: netvirt-run-it-external-docker
- builders:
- - maven-target:
- maven-version: '{maven-version}'
- pom: '{pomFile}'
- goals: >
- -V -B verify -l {logfile} -Pintegrationtest
- -Dskip.karaf.featureTest=true -Dmaven.compile.fork=true
- -Dovsdb.controller.address=${{CONTROLLER_IP}}
- -Dmaven.test.failure.ignore=true
- properties:
- - 'ovsdbserver.ipaddress=127.0.0.1'
- - 'ovsdbserver.port=6641'
- - 'ovsdb.userspace.enabled=yes'
- - 'maven.repo.local=/tmp/r'
- - 'org.ops4j.pax.url.mvn.localRepository=/tmp/r'
- - 'stream={stream}'
- java-opts:
- - '-Xmx1024m -XX:MaxPermSize=256m'
- settings: 'netvirt-settings'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
-
-- builder:
- name: netvirt-run-it-dockerOvs
- builders:
- - maven-target:
- maven-version: '{maven-version}'
- pom: '{pomFile}'
- goals: >
- -V -B verify -l {logfile} -Pintegrationtest
- -Dskip.karaf.featureTest=true -Dmaven.compile.fork=true
- -Dovsdb.controller.address=${{CONTROLLER_IP}}
- -Ddocker.compose.file=ovs-{OVS_VERSION}-hwvtep.yml
- -Ddocker.vEnvWs=$WORKSPACE
- -Dsgm=transparent
- -Dmaven.test.failure.ignore=true
- properties:
- - 'maven.repo.local=/tmp/r'
- - 'org.ops4j.pax.url.mvn.localRepository=/tmp/r'
- - 'stream={stream}'
- java-opts:
- - '-Xmx1024m -XX:MaxPermSize=256m'
- settings: 'netvirt-settings'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
-
-- builder:
- name: run-net-virt-it
- builders:
- - netvirt-run-it-dockerOvs:
- maven-version: '{maven-version}'
- stream: '{stream}'
- pomFile: 'openstack/net-virt-it/pom.xml'
- logfile: '{OVS_VERSION}-net-virt-IT.log'
- OVS_VERSION: '{OVS_VERSION}'
-
-- builder:
- name: run-netvirt-sfc-it
- builders:
- - netvirt-run-it-external-docker:
- maven-version: '{maven-version}'
- stream: '{stream}'
- pomFile: 'openstack/net-virt-sfc/it/pom.xml'
- logfile: '{OVS_VERSION}-netvirt-sfc-IT.log'
-
-- builder:
- name: run-netvirt-vpnservice-it
- builders:
- - netvirt-run-it-dockerOvs:
- maven-version: '{maven-version}'
- stream: '{stream}'
- pomFile: 'vpnservice/it/pom.xml'
- logfile: '{OVS_VERSION}-netvirt-vpnservice-IT.log'
- OVS_VERSION: '{OVS_VERSION}'
-
-- builder:
- name: install-docker-compose
- builders:
- - shell: |
- virtualenv $WORKSPACE/venv
- source $WORKSPACE/venv/bin/activate
- PYTHON="$WORKSPACE/venv/bin/python"
- $PYTHON -m pip install --upgrade pip
- $PYTHON -m pip install docker-compose
-
-
-- builder:
- name: run-netvirt-it
- builders:
- - inject:
- properties-content: OVS_VERSION={OVS_VERSION}
- - shell: !include-raw-escape: include-setup-misc.sh
- - inject:
- properties-file: env.properties
- - install-docker-compose
- - run-netvirt-vpnservice-it:
- OVS_VERSION: '{OVS_VERSION}'
- maven-version: '{maven-version}'
- stream: '{stream}'
- - run-net-virt-it:
- OVS_VERSION: '{OVS_VERSION}'
- maven-version: '{maven-version}'
- stream: '{stream}'
- - shell: !include-raw-escape: setup-docker.sh
- - inject:
- properties-file: env.properties
- - run-netvirt-sfc-it:
- OVS_VERSION: '{OVS_VERSION}'
- maven-version: '{maven-version}'
- stream: '{stream}'
- - shell: !include-raw-escape: cleanup-docker.sh
-
-- job-template:
- name: 'netvirt-daily-full-integration-{stream}'
-
- project-type: freestyle
- node: centos7-docker-1c-4g
- concurrent: true
- jdk: '{java-version}'
- description: >
- Integration tests for the Netvirt project against different versions of
- OVS and branches. This job runs nightly.
-
- properties:
- - opendaylight-infra-properties:
- build-days-to-keep: '{build-days-to-keep}'
-
- parameters:
- - opendaylight-infra-parameters:
- os-cloud: '{os-cloud}'
- project: '{project}'
- branch: '{branch}'
- refspec: 'refs/heads/{branch}'
- artifacts: '{archive-artifacts}'
-
- scm:
- - gerrit-trigger-scm:
- refspec: '$GERRIT_REFSPEC'
- branch: '{branch}'
- choosing-strategy: gerrit
-
- wrappers:
- - opendaylight-infra-wrappers:
- build-timeout: '{build-timeout}'
-
- triggers:
- - gerrit:
- server-name: '{gerrit-server-name}'
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: 'runit'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- skip-vote:
- successful: true
- failed: true
- unstable: true
- notbuilt: true
-
- builders:
- - wipe-org-opendaylight-repo
- - maven-target:
- maven-version: 'mvn33'
- pom: 'pom.xml'
- goals: '-V -B -l build.log clean install dependency:tree -Pq -Dmaven.compile.fork=true'
- properties:
- - 'maven.repo.local=/tmp/r'
- - 'org.ops4j.pax.url.mvn.localRepository=/tmp/r'
- - 'stream={stream}'
- java-opts:
- - '-Xmx1024m -XX:MaxPermSize=256m'
- settings: 'netvirt-settings'
- settings-type: cfp
- global-settings: 'global-settings'
- global-settings-type: cfp
- # skip 2.4.0 until we figure out conntrack
- # - run-netvirt-it:
- # maven-version: 'mvn33'
- # stream: '{stream}'
- # OVS_VERSION: '2.4.0'
- - run-netvirt-it:
- maven-version: 'mvn33'
- stream: '{stream}'
- OVS_VERSION: '2.5.0'
- - jacoco-nojava-workaround
-
- publishers:
- - email-notification:
- email-recipients: '{email-recipients}'
- email-prefix: '[netvirt]'
- - text-finder:
- fileset: "**/target/surefire-reports/*.xml"
- regexp: 'failures\=\"[^0]\"'
- succeed-if-found: false
- unstable-if-found: true
- also-check-console-output: false
- - lf-infra-publish
--- /dev/null
+---
+- project:
+ name: netvirt-job-reports
+ project: netvirt
+ jobs:
+ - netvirt-job-reports
+ report-jobnames: >
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-neon
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-neon
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-fluorine
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-oxygen
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-oxygen
+ report-logurl: 'https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1'
+ report-numjobs: 100
+ report-path: '/tmp/jobreports'
+
+- job-template:
+ name: '{prefix}netvirt-job-reports'
+ id: netvirt-job-reports
+ node: centos7-builder-2c-2g
+ project-type: freestyle
+ disabled: false
+
+ properties:
+ - opendaylight-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ os-cloud: '{os-cloud}'
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+ - string:
+ name: JOB_NAMES
+ default: '{report-jobnames}'
+ description: |
+ Space separated list of job names to process. Example:
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-fluorine
+ netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-snat-conntrack-fluorine
+ - string:
+ name: LOG_URL
+ default: '{report-logurl}'
+ description: 'Logs url'
+ - string:
+ name: NUM_JOBS
+ default: '{report-numjobs}'
+ description: 'Number of jobs to process'
+ - string:
+ name: REPORT_PATH
+ default: '{report-path}'
+ description: 'Output path to write files'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ builders:
+ - run-job-reports
+
+ triggers:
+ - timed: '@daily'
+
+ publishers:
+ - lf-infra-publish
+
+- builder:
+ name: run-job-reports
+ builders:
+ - shell: !include-raw-escape:
+ - run-reports.sh
project: 'netvirt'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- gerrit-tox-verify
- odl-maven-jobs
+ csit-gate-list: 'netvirt-csit-1node-0cmb-1ctl-2cmp-apex-queens-gate-snat-conntrack-{stream}'
+ block_on_csit: false
+
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Used by the release job
staging-profile-id: a67da0ffbb1ba
-- project:
- name: netvirt-vpp
- jobs:
- - gerrit-maven-verify
-
- stream: vpp
- project: 'netvirt'
- project-name: 'netvirt'
- branch: 'topic/vpp'
- karaf-version: karaf3
- distribution_branch: 'master'
- mvn-settings: 'netvirt-settings'
- mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m'
- dependencies:
- email-upstream: '[netvirt]'
-
- project:
name: netvirt-sonar
jobs:
+++ /dev/null
-#!/bin/bash
-#
-# NOTE: This file takes two jobs from the OpenStack infra and
-# puts them here. See here:
-#
-# https://github.com/openstack-infra/project-config/blob/master/jenkins/jobs/networking-odl.yaml
-
-export PATH="$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin"
-
-# *SIGH*. This is required to get lsb_release
-sudo yum -y install redhat-lsb-core indent python-testrepository
-
-echo "Making /opt/stack/new jenkins:jenkins"
-sudo /usr/sbin/groupadd jenkins
-sudo mkdir -p /opt/stack/new
-sudo chown -R jenkins:jenkins /opt/stack/new
-sudo bash -c 'echo "stack ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers'
-
-# We need to install some scripts from openstack/os-testr project
-cd ~ || exit 1
-echo "Setting up infra scripts"
-sudo mkdir -p /usr/local/jenkins/slave_scripts
-git clone https://github.com/openstack/os-testr.git
-cd os-testr/os_testr || exit 1
-sudo cp subunit2html.py /usr/local/jenkins/slave_scripts
-
-# Save existing WORKSPACE
-SAVED_WORKSPACE="$WORKSPACE"
-export WORKSPACE=~/workspace
-mkdir -p "$WORKSPACE"
-cd "$WORKSPACE" || exit 1
-
-# This is the job which checks out devstack-gate
-if [[ ! -e devstack-gate ]]; then
- echo "Cloning devstack-gate"
- git clone https://git.openstack.org/openstack-infra/devstack-gate
-else
- echo "Fixing devstack-gate git remotes"
- cd devstack-gate || exit 1
- git remote set-url origin https://git.openstack.org/openstack-infra/devstack-gate
- git remote update
- git reset --hard
- if ! git clean -x -f ; then
- sleep 1
- git clean -x -f
- fi
- git checkout master
- git reset --hard remotes/origin/master
- if ! git clean -x -f ; then
- sleep 1
- git clean -x -f
- fi
- cd ..
-fi
-
-# Set the pieces we want to test
-if [ "$GERRIT_PROJECT" == "openstack/neutron" ]; then
- export ZUUL_PROJECT=$GERRIT_PROJECT
- export ZUUL_BRANCH=$GERRIT_REFSPEC
-elif [ "$GERRIT_PROJECT" == "openstack-dev/devstack" ]; then
- export ZUUL_PROJECT=$GERRIT_PROJECT
- export ZUUL_BRANCH=$GERRIT_REFSPEC
-fi
-
-echo "Setting environment variables"
-
-# Enable ODL debug logs and set memory parameters
-DEVSTACK_LOCAL_CONFIG=""
-DEVSTACK_LOCAL_CONFIG+="ODL_NETVIRT_DEBUG_LOGS=True;"
-DEVSTACK_LOCAL_CONFIG+="ODL_JAVA_MIN_MEM=512m;"
-DEVSTACK_LOCAL_CONFIG+="ODL_JAVA_MAX_MEM=784m;"
-DEVSTACK_LOCAL_CONFIG+="ODL_JAVA_MAX_PERM_MEM=784m;"
-
-# Set ODL_URL_PREFIX if "nexus proxy" is provided
-export URL_PREFIX="${ODLNEXUSPROXY:-https://nexus.opendaylight.org}"
-if [ -n "$ODLNEXUSPROXY" ] ; then
- DEVSTACK_LOCAL_CONFIG+="ODL_URL_PREFIX=$ODLNEXUSPROXY;"
-fi
-
-## # Trim down the boot wait time
-## export ODL_BOOT_WAIT=30
-
-# Use specific build, if asked to do so
-if [ "${ODL_VERSION}" == "beryllium" ] ; then
- DEVSTACK_LOCAL_CONFIG+="ODL_RELEASE=beryllium-snapshot-0.4.0;"
-fi
-
-# And this runs devstack-gate
-export PYTHONUNBUFFERED=true
-export DEVSTACK_GATE_TIMEOUT=120
-export DEVSTACK_GATE_NEUTRON=1
-export DEVSTACK_GATE_TEMPEST=1
-export BRANCH_OVERRIDE=master
-if [ "$BRANCH_OVERRIDE" != "default" ] ; then
- export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-fi
-# Because we are testing a non standard project, add
-# our project repository. This makes zuul do the right
-# reference magic for testing changes.
-export PROJECTS="openstack/networking-odl $PROJECTS"
-# Note the actual url here is somewhat irrelevant because it
-# caches in nodepool, however make it a valid url for
-# documentation purposes.
-if [ "$GERRIT_PROJECT" == "openstack/networking-odl" ]; then
- export DEVSTACK_LOCAL_CONFIG+="enable_plugin networking-odl https://$GERRIT_HOST/$GERRIT_PROJECT $GERRIT_REFSPEC"
-else
- export DEVSTACK_LOCAL_CONFIG+="enable_plugin networking-odl https://git.openstack.org/openstack/networking-odl"
-fi
-
-
-# Keep localrc to be able to set some vars in pre_test_hook
-export KEEP_LOCALRC=1
-
-# Unset this because it's set by the underlying Jenkins node ...
-unset GIT_BASE
-
-# By default, only run certain tempest tests
-export DEVSTACK_GATE_TEMPEST_REGEX=${TEMPEST_REGEX:-"tempest.api.network.test_networks_negative tempest.api.network.test_networks.NetworksTestJSON"}
-
-# Specifically set the services we want
-#OVERRIDE_ENABLED_SERVICES=q-svc,q-dhcp,q-l3,q-meta,quantum,key,g-api,g-reg,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-xvnc,n-cauth,h-eng,h-api,h-api-cfn,h-api-cw,rabbit,tempest,mysql
-
-echo "Copying devstack-vm-gate-wrap.sh"
-cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
-echo "Running safe-devstack-vm-gate-wrap.sh"
-./safe-devstack-vm-gate-wrap.sh
-# Save the return value so we can exit with this
-DGRET=$?
-
-# Restore WORKSPACE
-OS_WORKSPACE="$WORKSPACE"
-export WORKSPACE="$SAVED_WORKSPACE"
-
-# Copy and display all the logs
-cat /opt/stack/new/devstacklog*
-ls /opt/stack/; ls /opt/stack/new; ls /opt/stack/new/opendaylight;
-cp -r "$OS_WORKSPACE/logs" "$WORKSPACE"
-cp -a /opt/stack/new/logs/screen-odl-karaf* "$WORKSPACE/logs"
-mkdir -p "$WORKSPACE/logs/opendaylight"
-cp -a /opt/stack/new/opendaylight/distribution*/etc "$WORKSPACE/logs/opendaylight"
-# Unzip the logs to make them easier to view
-gunzip "$WORKSPACE"/logs/*.gz
-
-exit "$DGRET"
--- /dev/null
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the term s of the Eclipse Public License
+# v1.0 accompanies testing this distribution with Netvirt jobs, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+echo "---> quagga-build.sh"
+
+set -e -x
+
+# The script builds 6wind/quagga source and binary packages from zrpcd
+# repository for testing router functionalities with Netvirt jobs, .
+
+pushd "$(pwd)/zrpcd"
+
+chmod a+x "$(pwd)/pkgsrc/dev_compile_script.sh"
+cd "$(pwd)/pkgsrc" && sudo "./dev_compile_script.sh" -p -d -b -v "$QUAGGA_VERSION"
+
+# Move packages into a that will be uploaded to Nexus
+UPLOAD_FILES_PATH="$WORKSPACE/upload_files"
+mkdir -p "$UPLOAD_FILES_PATH"
+
+OS=$(facter operatingsystem)
+
+case "$OS" in
+ Ubuntu)
+ mv "$WORKSPACE/zrpcd/pkgsrc/"*.deb "$UPLOAD_FILES_PATH" || true
+ ;;
+ CentOS|RedHat)
+ mv "$WORKSPACE/zrpcd/pkgsrc/"*.rpm "$UPLOAD_FILES_PATH" || true
+ ;;
+ *)
+ # nothing to do
+ ;;
+esac
+
+popd
+
+# todo: remove below lines once the scripts in zrpcd repos build the
+# source packages.
+# Ref: https://lists.opendaylight.org/pipermail/integration-dev/2018-July/012330.html
+tar cvzf "$WORKSPACE/upload_files/zrpcd.$(date +%F).tar.gz" "$(pwd)/zrpcd"
--- /dev/null
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 Red Hat, Inc. 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
+##############################################################################
+
+echo "Executing run-reports.sh"
+set -e -o pipefail # Fail on errors, give stacktrace
+set -x # Enable trace
+
+virtualenv --quiet "/tmp/v/odltools"
+source /tmp/v/odltools/bin/activate
+pip install odltools
+mkdir $REPORT_PATH
+python -m odltools csit reports --numjobs $NUM_JOBS --path $REPORT_PATH --url $LOG_URL --jobnames $JOB_NAMES || true
+python -m odltools csit exceptions --numjobs $NUM_JOBS --path $REPORT_PATH --url $LOG_URL --jobnames $JOB_NAMES || true
+mkdir -p $WORKSPACE/archives
+cp $REPORT_PATH/*.txt $WORKSPACE/archives || true
+exit 0
+++ /dev/null
-#!/bin/bash
-
-set -e
-
-OVS_VERSION="${OVS_VERSION:-2.5.0}"
-
-echo "---> Cleaning up existing Docker processes and images"
-for x in $(docker ps -a -q)
-do
- docker stop "$x"
- docker rm "$x"
-done
-
-for x in $(docker images | grep vpickard | awk '{print $3}')
-do
- docker rmi "$x"
-done
-
-
-
-echo "---> Starting OVS $OVS_VERSION"
-/usr/bin/docker pull "vpickard/openvswitch:$OVS_VERSION"
-CID=$(/usr/bin/docker run -p 6641:6640 --privileged=true -d -i -t "vpickard/openvswitch:$OVS_VERSION" /usr/bin/supervisord)
-REALCID=$(echo "$CID" | rev | cut -d ' ' -f 1 | rev)
-echo "CID=$REALCID" > env.properties
-echo "OVS_VERSION=${OVS_VERSION}" >> env.properties
-CONTROLLER_IP=$(facter ipaddress)
-echo "CONTROLLER_IP=${CONTROLLER_IP}" >> env.properties
-
-echo "---> Waiting..."
-sleep 10
project: 'neutron'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
---
+- project:
+ name: neutron-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'neutron'
+ project-name: 'neutron'
+ build-timeout: 90
+ branch: 'master'
+ mvn-settings: 'neutron-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},aaa-merge-{stream}'
+ email-upstream: '[neutron] [odlparent] [aaa]'
+
+ # Used by the release job
+ staging-profile-id: a67e1b40d7419
+
- project:
name: neutron-fluorine
jobs:
project: 'neutron'
project-name: 'neutron'
build-timeout: 90
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'neutron-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},aaa-merge-{stream}'
+++ /dev/null
-#!/bin/bash
-#
-# NOTE: This file takes two jobs from the OpenStack infra and
-# puts them here. See here:
-#
-# https://github.com/openstack-infra/project-config/blob/master/jenkins/jobs/networking-odl.yaml
-
-export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin
-
-# *SIGH*. This is required to get lsb_release
-sudo yum -y install redhat-lsb-core indent python-testrepository
-
-echo "Making /opt/stack/new jenkins:jenkins"
-sudo /usr/sbin/groupadd jenkins
-sudo mkdir -p /opt/stack/new
-sudo chown -R jenkins:jenkins /opt/stack/new
-sudo bash -c 'echo "stack ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers'
-
-# We need to install some scripts from openstack-infra/project-config
-cd ~ || exit 1
-echo "Setting up infra scripts"
-sudo mkdir -p /usr/local/jenkins/slave_scripts
-git clone https://git.openstack.org/openstack-infra/project-config
-cd project-config || exit 1
-sudo cp jenkins/scripts/subunit2html.py /usr/local/jenkins/slave_scripts
-
-# Save existing WORKSPACE
-SAVED_WORKSPACE=$WORKSPACE
-export WORKSPACE=~/workspace
-mkdir -p $WORKSPACE
-cd $WORKSPACE || exit 1
-
-# This is the job which checks out devstack-gate
-if [[ ! -e devstack-gate ]]; then
- echo "Cloning devstack-gate"
- git clone https://git.openstack.org/openstack-infra/devstack-gate
-else
- echo "Fixing devstack-gate git remotes"
- cd devstack-gate || exit 1
- git remote set-url origin https://git.openstack.org/openstack-infra/devstack-gate
- git remote update
- git reset --hard
- if ! git clean -x -f ; then
- sleep 1
- git clean -x -f
- fi
- git checkout master
- git reset --hard remotes/origin/master
- if ! git clean -x -f ; then
- sleep 1
- git clean -x -f
- fi
- cd ..
-fi
-
-# Set the pieces we want to test
-if [ "$GERRIT_PROJECT" == "openstack/neutron" ]; then
- export ZUUL_PROJECT=$GERRIT_PROJECT
- export ZUUL_BRANCH=$GERRIT_REFSPEC
-elif [ "$GERRIT_PROJECT" == "openstack-dev/devstack" ]; then
- export ZUUL_PROJECT=$GERRIT_PROJECT
- export ZUUL_BRANCH=$GERRIT_REFSPEC
-fi
-
-echo "Setting environment variables"
-
-# Enable ODL debug logs and set memory parameters
-DEVSTACK_LOCAL_CONFIG=""
-DEVSTACK_LOCAL_CONFIG+="ODL_NETVIRT_DEBUG_LOGS=True;"
-DEVSTACK_LOCAL_CONFIG+="ODL_JAVA_MIN_MEM=512m;"
-DEVSTACK_LOCAL_CONFIG+="ODL_JAVA_MAX_MEM=784m;"
-DEVSTACK_LOCAL_CONFIG+="ODL_JAVA_MAX_PERM_MEM=784m;"
-
-# Set ODL_URL_PREFIX if "nexus proxy" is provided
-export URL_PREFIX="${ODLNEXUSPROXY:-https://nexus.opendaylight.org}"
-if [ -n "$ODLNEXUSPROXY" ] ; then
- DEVSTACK_LOCAL_CONFIG+="ODL_URL_PREFIX=$ODLNEXUSPROXY;"
-fi
-
-## # Trim down the boot wait time
-## export ODL_BOOT_WAIT=30
-
-# Use specific build, if asked to do so
-if [ "${ODL_VERSION}" == "lithium-latest" ] ; then
- # FIXME: Support more recent ODL release versions.
- DEVSTACK_LOCAL_CONFIG+="ODL_RELEASE=lithium-snapshot;"
-fi
-
-# If Karaf netvirt feature was explicitly provided, add it to DEVSTACK_LOCAL_CONFIG
-if [ -n "$KARAFFEATURE" ] ; then
- DEVSTACK_LOCAL_CONFIG+="ODL_NETVIRT_KARAF_FEATURE=${KARAFFEATURE};"
-fi
-
-# And this runs devstack-gate
-export PYTHONUNBUFFERED=true
-export DEVSTACK_GATE_TIMEOUT=120
-export DEVSTACK_GATE_NEUTRON=1
-export DEVSTACK_GATE_TEMPEST=1
-export BRANCH_OVERRIDE=master
-if [ "$BRANCH_OVERRIDE" != "default" ] ; then
- export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
-fi
-# Because we are testing a non standard project, add
-# our project repository. This makes zuul do the right
-# reference magic for testing changes.
-export PROJECTS="openstack/networking-odl $PROJECTS"
-# Note the actual url here is somewhat irrelevant because it
-# caches in nodepool, however make it a valid url for
-# documentation purposes.
-if [ "$GERRIT_PROJECT" == "openstack/networking-odl" ]; then
- export DEVSTACK_LOCAL_CONFIG+="enable_plugin networking-odl https://$GERRIT_HOST/$GERRIT_PROJECT $GERRIT_REFSPEC"
-else
- export DEVSTACK_LOCAL_CONFIG+="enable_plugin networking-odl https://git.openstack.org/openstack/networking-odl"
-fi
-
-
-# Keep localrc to be able to set some vars in pre_test_hook
-export KEEP_LOCALRC=1
-
-# Unset this because it's set by the underlying Jenkins node ...
-unset GIT_BASE
-
-# By default, only run certain tempest tests
-export DEVSTACK_GATE_TEMPEST_REGEX=${TEMPEST_REGEX:-"tempest.api.network.test_networks_negative tempest.api.network.test_networks.NetworksTestJSON"}
-
-# Specifically set the services we want
-#OVERRIDE_ENABLED_SERVICES=q-svc,q-dhcp,q-l3,q-meta,quantum,key,g-api,g-reg,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch,n-xvnc,n-cauth,h-eng,h-api,h-api-cfn,h-api-cw,rabbit,tempest,mysql
-
-echo "Copying devstack-vm-gate-wrap.sh"
-cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
-echo "Running safe-devstack-vm-gate-wrap.sh"
-./safe-devstack-vm-gate-wrap.sh
-# Save the return value so we can exit with this
-DGRET=$?
-
-# Restore WORKSPACE
-OS_WORKSPACE=$WORKSPACE
-export WORKSPACE=$SAVED_WORKSPACE
-
-# Copy all the logs
-cp -r "$OS_WORKSPACE/logs" "$WORKSPACE"
-cp -a /opt/stack/new/logs/q-odl-karaf* "$WORKSPACE/logs"
-mkdir -p "$WORKSPACE/logs/opendaylight"
-cp -a /opt/stack/new/opendaylight/distribution*/etc "$WORKSPACE/logs/opendaylight"
-# Unzip the logs to make them easier to view
-gunzip "$WORKSPACE"/logs/*.gz
-
-exit $DGRET
---
+- project:
+ name: next-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'next'
+ project-name: 'next'
+ branch: 'master'
+ mvn-settings: 'next-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[next]'
+
+ # Used by the release job
+ staging-profile-id: a67e7c516f385
+
- project:
name: next-fluorine
jobs:
stream: fluorine
project: 'next'
project-name: 'next'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'next-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
---
+- project:
+ name: nic-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'nic'
+ project-name: 'nic'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'nic-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'vtn-merge-{stream},groupbasedpolicy-merge-{stream}'
+ email-upstream: '[nic] [vtn] [groupbasedpolicy]'
+
+ # Used by the release job
+ staging-profile-id: a67ef386204aa
+
- project:
name: nic-fluorine
jobs:
stream: fluorine
project: 'nic'
project-name: 'nic'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'nic-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
---
+- project:
+ name: ocpplugin-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'ocpplugin'
+ project-name: 'ocpplugin'
+ branch: 'master'
+ mvn-settings: 'ocpplugin-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[ocpplugin] [odlparent] [yangtools] [controller]'
+
+ # Used by the release job
+ staging-profile-id: a687673279f9c
+
- project:
name: ocpplugin-fluorine
jobs:
stream: fluorine
project: 'ocpplugin'
project-name: 'ocpplugin'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'ocpplugin-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
# by the cleanup old images job.
echo "---> Check image protection"
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source "/tmp/v/openstack/bin/activate"
-
declare -a yaml_images
readarray -t yaml_images <<< "$(grep -r _system_image: --include \*.yaml \
| awk -F": " -e '{print $3}' | sed "s:'::;s:'$::;/^$/d" | sort -u)"
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 - 2018 The Linux Foundation and others.
# Removes openstack images older than 30 days in the cloud
echo "---> Cleanup old images"
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source "/tmp/v/openstack/bin/activate"
lftools openstack --os-cloud vex image cleanup --days=30
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 - 2018 The Linux Foundation and others.
# Fetch server list before fetching active minions to minimize race condition
# where we might be trying to delete servers while jobs are trying to start
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source "/tmp/v/openstack/bin/activate"
-
# We purposely need word splitting here to create the OS_SERVERS array.
# shellcheck disable=SC2207
mapfile -t OS_SERVERS < <(openstack server list -f value -c "Name" | grep -E 'prd|snd')
server remove --minutes 15 "$server"
fi
done
-
-deactivate
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 - 2018 The Linux Foundation and others.
##############################################################################
echo "---> Cleanup stale nodes"
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source "/tmp/v/openstack/bin/activate"
-
# Todo: As a safe check we could obtain the list of active jobs from Jenkins and
# compute the checksum from $JOB_NAME to check if any active nodes exist and
# skip deleting those nodes. This step may not be required since there is already
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
# list of Jenkins instances to check for active builds.
echo "---> Cleanup stale stacks"
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source "/tmp/v/openstack/bin/activate"
-
stack_in_jenkins() {
# Usage: check_stack_in_jenkins STACK_NAME JENKINS_URL [JENKINS_URL...]
# Returns: 0 If stack is in Jenkins and 1 if stack is not in Jenkins.
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2018 The Linux Foundation and others.
##############################################################################
# Scans OpenStack for orphaned volumes
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source "/tmp/v/openstack/bin/activate"
mapfile -t os_volumes < <(openstack volume list -f value -c ID --status Available)
echo "---> Orphaned volumes"
lftools openstack --os-cloud vex volume remove --minutes 15 "$volume"
done
fi
-
-deactivate
project: 'odlparent'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
mvn-settings: odlparent-settings
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
mvn-version: mvn35
+ sign-artifacts: true
dependencies: ''
email-upstream: '[odlparent]'
# Used by the release job
staging-profile-id: 880d5ac25eaa
-- project:
- name: odlparent-3.2.x
- jobs:
- - '{project-name}-maven-javadoc-jobs'
- - odl-maven-jobs
- - gerrit-tox-verify
-
- project: odlparent
- project-name: odlparent
- stream: 3.2.x
- branch: 3.2.x
- distribution_branch: master
-
- mvn-settings: odlparent-settings
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
- dependencies: ''
- email-upstream: '[odlparent]'
- archive-artifacts: >
- **/*.prop
- **/*.log
- **/target/surefire-reports/*-output.txt
- **/target/failsafe-reports/failsafe-summary.xml
- **/hs_err_*.log
- **/target/feature/feature.xml
-
- # Used by the release job
- javadoc-path: org.opendaylight.$PROJECT/$STREAM
- staging-profile-id: 880d5ac25eaa
-
- project:
name: odlparent-3.1.x
jobs:
mvn-settings: odlparent-settings
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ sign-artifacts: true
dependencies: ''
email-upstream: '[odlparent]'
mvn-settings: odlparent-settings
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ sign-artifacts: true
dependencies: ''
email-upstream: '[odlparent]'
--- /dev/null
+---
+- project:
+ name: odltools-csit
+ jobs:
+ - inttest-csit-1node
+ - inttest-csit-verify-1node
+
+ project: odltools
+ tools_system_count: 0
+ testplan: '{project}-basic.txt'
+
+ stream:
+ - neon:
+ branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
+
+ functionality:
+ - 'upstream'
+ - 'gate'
+
+ install:
+ - all:
+ scope: 'all'
--- /dev/null
+---
+- project:
+ name: odltools-patch-test
+ jobs:
+ - inttest-patch-test
+
+ project: odltools
+ jdk: openjdk8
+
+ stream:
+ - neon:
+ branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
+
+ feature:
+ - current:
+ csit-list: >
+ odltools-csit-1node-gate-all-{stream}
rtd-token: 225d4ef64e1efce4fe3ba4c9c4fe772355d3c8b2
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
project: odltools
project-name: odltools
build-node: centos7-builder-2c-2g
build-timeout: 60
+
+- view:
+ name: odltools
+ description: 'List of odltools jobs'
+ regex: '^odltools-.*'
+ <<: *releng_view_common
+++ /dev/null
----
-- project:
- name: of-config-csit-basic
- jobs:
- - inttest-csit-verify-1node
- - inttest-csit-1node
-
- # The project name
- project: 'of-config'
-
- # The functionality under test
- functionality: 'basic'
-
- # Project branches
- stream:
- - fluorine:
- branch: 'master'
- - oxygen:
- branch: 'stable/oxygen'
-
- install:
- - all:
- scope: 'all'
-
- # Features to install
- install-features: 'odl-restconf,odl-of-config-all,odl-of-config-rest'
-
- # Robot custom options
- robot-options: ''
---
+- project:
+ name: of-config-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'of-config'
+ project-name: 'of-config'
+ branch: 'master'
+ mvn-settings: 'of-config-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: netconf-merge-{stream}'
+ email-upstream: '[of-config] [netconf]'
+
+ # Used by the release job
+ staging-profile-id: a6880455efe67
+
- project:
name: of-config-fluorine
jobs:
stream: fluorine
project: 'of-config'
project-name: 'of-config'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'of-config-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: netconf-merge-{stream}'
+++ /dev/null
----
-- project:
- name: circuitsw-fluorine
- jobs:
- - odl-maven-jobs
-
- stream: fluorine
- project: 'ofextensions/circuitsw'
- project-name: 'circuitsw'
- branch: 'master'
- mvn-settings: 'ofextensions-circuitsw-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[circuitsw]'
-
- # Used by the release job
- staging-profile-id: a68970cf5b25c
-
-- project:
- name: circuitsw-oxygen
- jobs:
- - odl-maven-jobs
-
- stream: oxygen
- project: 'ofextensions/circuitsw'
- project-name: 'circuitsw'
- branch: 'stable/oxygen'
- mvn-settings: 'ofextensions-circuitsw-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[circuitsw]'
-
- # Used by the release job
- staging-profile-id: a68970cf5b25c
-
-- project:
- name: circuitsw-sonar
- jobs:
- - gerrit-maven-sonar
- project: 'ofextensions/circuitsw'
- project-name: 'circuitsw'
- branch: 'master'
- mvn-settings: 'ofextensions-circuitsw-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
-- view:
- name: circuitsw
- description: 'List of circuitsw jobs'
- regex: '^circuitsw-.*'
- <<: *releng_view_common
set -o nounset
set -o pipefail
+# workaround for https://github.com/pypa/virtualenv/issues/1029
+export PS1=${PS1:-}
+
# This script creates ArtifactPublishedEvent (APE)
-# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
-# constructed on a single line. This is something that needs to be fixed properly
-cat << EOF > $WORKSPACE/event.properties
-type=$PUBLISH_EVENT_TYPE
-origin=$PUBLISH_EVENT_ORIGIN
-eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', \
-'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', \
-'buildUrl': '$BUILD_URL', 'branch': 'master', 'artifactLocation': '$ARTIFACT_LOCATION', \
-'confidenceLevel': { $CONFIDENCE_LEVEL } }"
+git clone https://gitlab.openci.io/openci/prototypes.git
+cd prototypes/federated-cicd
+virtualenv openci_publish
+cd openci_publish
+source bin/activate
+python setup.py install
+
+# generate event body
+cat <<EOF > ./json_body.txt
+{
+ "type": "$PUBLISH_EVENT_TYPE",
+ "id": "$(uuidgen)",
+ "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)",
+ "buildUrl": "$BUILD_URL",
+ "branch": "master",
+ "origin": "$PUBLISH_EVENT_ORIGIN",
+ "artifactLocation": "$ARTIFACT_LOCATION",
+ "confidenceLevel": "$CONFIDENCE_LEVEL"
+}
EOF
+
echo "Constructed $PUBLISH_EVENT_TYPE"
echo "--------------------------------------------"
-cat $WORKSPACE/event.properties
+cat ./json_body.txt
echo "--------------------------------------------"
+
+python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt
+
+deactivate
default: "'autorelease': 'SUCCESS'"
description: 'The confidence level the published artifact gained'
+ wrappers:
+ - credentials-binding:
+ - username-password-separated:
+ credential-id: openci-connect-activemq
+ username: ACTIVEMQ_USER
+ password: ACTIVEMQ_PASSWORD
+ - workspace-cleanup
+
builders:
- # first build step in the job executes create-ape.sh to construct the
- # ArtifactPublishedEvent (ape)
+ # this build step in the job executes create-ape.sh to construct the
+ # ArtifactPublishedEvent (ape) and publishes it using the python utility
- shell:
!include-raw-escape: ./create-ape.sh
- # constructed event gets injected into environment so JME Messaging
- # plugin can publish the event and its properties in post-build step
- - inject:
- properties-file: "$WORKSPACE/event.properties"
-
- publishers:
- - jms-messaging:
- provider-name: openci.activemq
- msg-type: Custom
- msg-props: |
- type=$type
- origin=$origin
- msg-content:
- $eventBody
# This job gets triggered by a ConfidenceLevelModifiedEvent published
# by OPNFV jobs so ODL can promote the autorelease artifact even further.
triggers:
- jms-messaging:
provider-name: openci.activemq
- selector: CI_TYPE = 'custom'
- checks:
- - field: origin
- expected-value: 'OPNFV'
- - field: type
- expected-value: 'ConfidenceLevelModifiedEvent'
- - field: scenario
- expected-value: 'os-odl-nofeature'
+ selector: >
+ JMSType = 'ConfidenceLevelModifiedEvent' and
+ JMSOrigin = 'OPNFV' and
+ JMSScenario = 'os-odl-nofeature-ha'
builders:
- shell: |
--- /dev/null
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 Red Hat, Inc. 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
+##############################################################################
+
+# Ensure we fail the job if any steps fail.
+set -x -o pipefail -o errexit
+
+virtualenv "/tmp/v/openstack"
+# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
+source "/tmp/v/openstack/bin/activate"
+pip install --upgrade --quiet "pip<10.0.0" setuptools
+pip install --upgrade --quiet python-openstackclient
+pip freeze
+
+df -h
+
+mkdir -p /tmp/apex_snapshots
+pushd /tmp/apex_snapshots
+
+wget artifacts.opnfv.org/apex/queens/noha/snapshot.properties
+cat snapshot.properties
+source snapshot.properties
+SNAPSHOT_FILENAME=$(basename $OPNFV_SNAP_URL)
+
+wget --progress=dot:giga $OPNFV_SNAP_URL
+gunzip -c $SNAPSHOT_FILENAME > snapshots.tar
+
+# builder VMs don't have enough disk to handle a full un-tarring, so doing one
+# big file at a time and deleting it from the tarball as a workaround for now
+tar -tf snapshots.tar
+
+images=$(tar --list -f snapshots.tar | grep qcow2)
+for image in $images; do
+ tar -xf snapshots.tar $image
+ tar --delete --file=snapshots.tar $image
+done
+
+# get the ssh keys and node.yaml for uploading to swift at the end
+tar -xf snapshots.tar ./id_rsa
+tar -xf snapshots.tar ./node.yaml
+tar -xf snapshots.tar ./overcloudrc
+
+ls -altr
+
+# grab the right baremetal# for the controller(s) and compute(s)
+CONTROLLER_NODE=$(egrep 'type|vNode-name' node.yaml | egrep -A1 controller | tail -n1 | awk '{print $2}')
+COMPUTE_0_NODE=$(egrep 'type|vNode-name' node.yaml | egrep -A1 compute | tail -n1 | awk '{print $2}')
+COMPUTE_1_NODE=$(egrep 'type|vNode-name' node.yaml | egrep -A1 compute | head -n2 | tail -n1 | awk '{print $2}')
+
+# Customize images to work in ODL Vexxhost infra
+sudo yum install -y libguestfs-tools
+export LIBGUESTFS_BACKEND=direct
+virt-customize -a $CONTROLLER_NODE.qcow2 \
+ --run-command "crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2/ml2_conf.ini ml2 physical_network_mtus datacentre:1458" \
+ --run-command "crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2/ml2_conf.ini ml2 path_mtu 1458" \
+ --run-command "crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf '' global_physnet_mtu 1458" \
+ --run-command "crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/dhcp_agent.ini '' debug true" \
+
+virt-customize -a $COMPUTE_0_NODE.qcow2 \
+ --run-command "crudini --set /var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf libvirt virt_type qemu"
+
+virt-customize -a $COMPUTE_1_NODE.qcow2 \
+ --run-command "crudini --set /var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf libvirt virt_type qemu"
+
+for image in $CONTROLLER_NODE $COMPUTE_0_NODE $COMPUTE_1_NODE
+do
+ # Change interface MTU to account for default network mtu of 1458
+ virt-customize -a $image.qcow2 \
+ --run-command 'sudo echo "MTU=\"1458\"" >> /etc/sysconfig/network-scripts/ifcfg-eth0' \
+ --run-command 'sudo echo "MTU=\"1458\"" >> /etc/sysconfig/network-scripts/ifcfg-br-int' \
+ --run-command 'sudo echo "MTU=\"1458\"" >> /etc/sysconfig/network-scripts/ifcfg-ovs-system' \
+ --run-command "sudo crudini --set /etc/selinux/config '' SELINUX permissive"
+done
+
+popd
+
+openstack image list
+
+# clean out any zombie OPNFV - apex images that *may* be left over from troubled jobs
+openstack image list | egrep 'OPNFV - apex.*new ' | awk '{print "openstack image delete",$2}' | sh || true
+
+qemu-img convert -f qcow2 -O raw /tmp/apex_snapshots/$CONTROLLER_NODE.qcow2 /tmp/apex_snapshots/$CONTROLLER_NODE.raw
+rm /tmp/apex_snapshots/$CONTROLLER_NODE.qcow2
+qemu-img convert -f qcow2 -O raw /tmp/apex_snapshots/$COMPUTE_0_NODE.qcow2 /tmp/apex_snapshots/$COMPUTE_0_NODE.raw
+rm /tmp/apex_snapshots/$COMPUTE_0_NODE.qcow2
+qemu-img convert -f qcow2 -O raw /tmp/apex_snapshots/$COMPUTE_1_NODE.qcow2 /tmp/apex_snapshots/$COMPUTE_1_NODE.raw
+rm /tmp/apex_snapshots/$COMPUTE_1_NODE.qcow2
+
+# create .new images first, then we can delete the existing and rename .new
+# to existing to reduce the delta of when these images might be unavailable
+CONTROLLER_IMAGE_NAME="ZZCI - OPNFV - apex - controller - 0"
+COMPUTE_0_IMAGE_NAME="ZZCI - OPNFV - apex - compute - 0"
+COMPUTE_1_IMAGE_NAME="ZZCI - OPNFV - apex - compute - 1"
+
+openstack image create \
+ --disk-format raw --container-format bare \
+ --file /tmp/apex_snapshots/$CONTROLLER_NODE.raw "$CONTROLLER_IMAGE_NAME.new"
+openstack image create \
+ --disk-format raw --container-format bare \
+ --file /tmp/apex_snapshots/$COMPUTE_0_NODE.raw "$COMPUTE_0_IMAGE_NAME.new"
+openstack image create \
+ --disk-format raw --container-format bare \
+ --file /tmp/apex_snapshots/$COMPUTE_1_NODE.raw "$COMPUTE_1_IMAGE_NAME.new"
+
+# clean out any non ".new" OPNFV - apex images. In the case of a previously failed
+# or aborted apex management job, we can end up with multiple images with the same
+# name so being thorough here.
+openstack image list | egrep 'OPNFV - apex' | egrep -v 'new' | awk '{print "openstack image delete",$2}' | sh
+
+openstack image set --name "$CONTROLLER_IMAGE_NAME" "$CONTROLLER_IMAGE_NAME.new"
+openstack image set --tag "Date Uploaded: $(date)" "$CONTROLLER_IMAGE_NAME"
+openstack image set --tag "Apex Archive: $(basename $OPNFV_SNAP_URL)" "$CONTROLLER_IMAGE_NAME"
+
+openstack image set --name "$COMPUTE_0_IMAGE_NAME" "$COMPUTE_0_IMAGE_NAME.new"
+openstack image set --tag "Date Uploaded: $(date)" "$COMPUTE_0_IMAGE_NAME"
+openstack image set --tag "Apex Archive: $(basename $OPNFV_SNAP_URL)" "$COMPUTE_0_IMAGE_NAME"
+
+openstack image set --name "$COMPUTE_1_IMAGE_NAME" "$COMPUTE_1_IMAGE_NAME.new"
+openstack image set --tag "Date Uploaded: $(date)" "$COMPUTE_1_IMAGE_NAME"
+openstack image set --tag "Apex Archive: $(basename $OPNFV_SNAP_URL)" "$COMPUTE_1_IMAGE_NAME"
+
+# Now that the images should be up, active and ready, we can update
+# the ssh key and node.yaml in swift
+openstack container create OPNFV-APEX-SNAPSHOTS
+openstack object create OPNFV-APEX-SNAPSHOTS /tmp/apex_snapshots/node.yaml --name node.yaml
+openstack object create OPNFV-APEX-SNAPSHOTS /tmp/apex_snapshots/id_rsa --name id_rsa
+openstack object create OPNFV-APEX-SNAPSHOTS /tmp/apex_snapshots/overcloudrc --name overcloudrc
+openstack object list OPNFV-APEX-SNAPSHOTS
+
+openstack image list
+
+df -h
+
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
echo "----------> Copy ssh public keys to csit lab"
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source "/tmp/v/openstack/bin/activate"
-
function copy-ssh-keys-to-slave() {
RETRIES=60
for j in $(seq 1 $RETRIES); do
-#!/bin/bash
+#!/bin/bash -l
# SPDX-License-Identifier: EPL-1.0
##############################################################################
# Copyright (c) 2017 The Linux Foundation and others.
# http://www.eclipse.org/legal/epl-v10.html
##############################################################################
-virtualenv "/tmp/v/openstack"
-# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
-source "/tmp/v/openstack/bin/activate"
-pip install --upgrade "pip<10.0.0" setuptools
-# hardcoding cmd2 version as the most recent version seems to be broken.
-# reference: https://pypi.org/project/cmd2/#history
-pip install --upgrade cmd2==0.8.5 python-openstackclient python-heatclient
-pip freeze
-
# TODO: Remove the if-statement once we have fully migrated to /opt/ciman
-if [ -d "/opt/ciman" ]; then
- cd /opt/ciman || exit 1
+if [ -d "/opt/ciman/openstack-hot" ]; then
+ cd /opt/ciman/openstack-hot || exit 1
else
cd /builder/openstack-hot || exit 1
fi
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Job images
tools_system_count: 2
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: 'odl-openflowplugin-flow-services-rest'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: 'odl-openflowplugin-flow-services-rest,odl-openflowplugin-drop-test'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: 'odl-openflowplugin-flow-services-rest,odl-openflowplugin-app-bulk-o-matic'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'all'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: 'odl-openflowplugin-flow-services-rest'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
scope: 'only'
# Job images
- tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20180723-235605.507'
+ tools_system_image: 'ZZCI - Ubuntu 16.04 - mininet-ovs-28 - 20181001-220228.326'
# Features to install
install-features: >
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
---
+- project:
+ name: openflowplugin-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ doc-dir: .tox/docs/tmp/html
+ project-pattern: openflowplugin
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-openflowplugin/38994/
+ rtd-token: 86ce095922558b890c61b1b05d682521d1d66d5f
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'openflowplugin'
+ project-name: 'openflowplugin'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ build-timeout: 90
+ mvn-settings: 'openflowplugin-settings'
+ mvn-goals: 'clean deploy javadoc:aggregate'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: >
+ odlparent-merge-{stream},
+ yangtools-merge-{stream},
+ controller-merge-{stream},
+ openflowjava-merge-{stream}
+ email-upstream: '[openflowplugin] [odlparent] [yangtools] [controller] [openflowjava]'
+
+ # Used by the release job
+ staging-profile-id: a68a76dc1b44c
+
- project:
name: openflowplugin-fluorine
jobs:
stream: fluorine
project: 'openflowplugin'
project-name: 'openflowplugin'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
build-timeout: 90
mvn-settings: 'openflowplugin-settings'
- 'opflex-merge-{stream}'
stream:
- - fluorine:
+ - neon:
branch: 'master'
libuv-version: '1.8.0'
rapidjson-version: '1.0.2'
openvswitch-version: '2.6.0'
+ - fluorine:
+ branch: 'stable/fluorine'
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
- oxygen:
branch: 'stable/oxygen'
libuv-version: '1.8.0'
- project:
name: opflex-release
jobs:
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: opflex
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-opflex/52373/
+ rtd-token: bf99281866a176904cf12861789deaf04d4b0c45
- 'opflex-release-{stream}'
stream:
- - fluorine:
+ - neon:
branch: 'master'
libuv-version: '1.8.0'
rapidjson-version: '1.0.2'
openvswitch-version: '2.6.0'
+ - fluorine:
+ branch: 'stable/fluorine'
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
- oxygen:
branch: 'stable/oxygen'
libuv-version: '1.8.0'
---
+- project:
+ name: ovil-neon
+ jobs:
+ - odl-maven-jobs
+ - gerrit-tox-verify
+
+ stream: neon
+ project: ovil
+ project-name: ovil
+ branch: 'master'
+ mvn-settings: ovil-settings
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+
+ dependencies: ''
+ email-upstream: '[ovil]'
+
+ # Used by the release job
+ staging-profile-id: 7b48866c207d8
+
- project:
name: ovil-fluorine
jobs:
stream: fluorine
project: ovil
project-name: ovil
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: ovil-settings
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
- 'ovsdb-daily-full-integration-{stream}'
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
project: 'ovsdb'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
feature:
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
- netvirt:
csit-list: >
netvirt-csit-1node-{os-std-topo}-openstack-{os-branch}-gate-stateful-{stream}
triggers:
- timed: '{schedule-saturday}'
- - gerrit-trigger-patch-sonar:
- gerrit-server-name: '{gerrit-server-name}'
- name: 'ovsdb'
+ - gerrit:
+ server-name: '{gerrit-server-name}'
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: 'run-sonar$'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/master'
+ skip-vote:
+ successful: true
+ failed: true
+ unstable: true
+ notbuilt: true
builders:
- shell: !include-raw-escape: setup-docker.sh
---
+- project:
+ name: ovsdb-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-maven-javadoc-jobs'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: ovsdb
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/opendaylight-ovsdb/35667/
+ rtd-token: 46030df8681cf7fc857aa80c1a7695f46ed252be
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'ovsdb'
+ project-name: 'ovsdb'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'ovsdb-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[ovsdb] [odlparent] [controller] [yangtools]'
+
+ # Used by the release job
+ staging-profile-id: a68b188166958
+
- project:
name: ovsdb-fluorine
jobs:
stream: fluorine
project: 'ovsdb'
project-name: 'ovsdb'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'ovsdb-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+++ /dev/null
----
-- project:
- name: p4plugin-csit-basic
- jobs:
- - inttest-csit-1node
-
- # The project name
- project: 'p4plugin'
-
- # The functionality under test
- functionality: 'basic'
-
- # Project branches
- stream:
- - fluorine:
- branch: 'master'
- - oxygen:
- branch: 'stable/oxygen'
-
- install:
- - all:
- scope: 'all'
-
- # Features to install
- install-features: 'odl-p4plugin-all'
-
- # Robot custom options
- robot-options: ''
---
+- project:
+ name: p4plugin-neon
+ jobs:
+ - '{project-name}-maven-javadoc-jobs'
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'p4plugin'
+ project-name: 'p4plugin'
+ branch: 'master'
+ mvn-settings: 'p4plugin-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[p4plugin]'
+
+ # Used by the release job
+ staging-profile-id: a68bf26e208d4
+
- project:
name: p4plugin-fluorine
jobs:
stream: fluorine
project: 'p4plugin'
project-name: 'p4plugin'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'p4plugin-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
- job-template:
name: '{project-name}-test-rpm-{stream}'
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-2g
project-type: freestyle
build-timeout: '{build-timeout}'
builders:
- - shell: !include-raw: test-ansible-rpm.sh
- - shell: !include-raw: test-ansible-odl-user.sh
+ - shell: !include-raw: setup-ansible-rpm.sh
+ - shell: !include-raw: test-ansible-rpm-default-config.sh
+ - shell: !include-raw: test-ansible-rpm-custom-config.sh
triggers:
- timed: '@daily'
build-timeout: '{build-timeout}'
builders:
- - shell: !include-raw: test-ansible-deb.sh
+ - shell: !include-raw: setup-ansible-deb.sh
+ - shell: !include-raw: test-ansible-deb-default-config.sh
+ - shell: !include-raw: test-ansible-deb-custom-config.sh
triggers:
- timed: '@daily'
VERSION_MAJOR=8
elif [ "$STREAM" == "fluorine" ]; then
VERSION_MAJOR=9
+elif [ "$STREAM" == "neon" ]; then
+ VERSION_MAJOR=10
else
echo "Unable to convert stream to major version"
exit 1
--changelog_name "$CHANGELOG_NAME" \
--changelog_email "$CHANGELOG_EMAIL" \
direct \
- --download_url "$DOWNLOAD_URL"
+ --download_url "$DOWNLOAD_URL" \
+ --pkg_version "$PKG_VERSION_OVERRIDE"
# Always allow push to scratch repos, only push to CD repos in RelEng Jenkins
if [ "$DEPLOY_TO_REPO" == "opendaylight-epel-7-x86_64-devel" ]; then
# Integration/Packaging macros
---
+- builder:
+ name: install-rpm
+ builders:
+ - shell: !include-raw: install-rpm.sh
+
+- builder:
+ name: install-repo-cfg-rpm
+ builders:
+ - shell: |
+ # shellcheck disable=SC2154
+ repo_file="${REPO_CFG_FILE_URL##*/}"
+ sudo curl -s -o /etc/yum.repos.d/"$repo_file" "$REPO_CFG_FILE_URL"
+
+- builder:
+ name: start-odl
+ builders:
+ - shell: !include-raw: start-odl.sh
+
+- builder:
+ name: test-odl
+ builders:
+ - shell: |
+ # Install expect to interact with Karaf shell
+ # Install nmap to check status of ODL's SSH port
+ sudo yum install -y expect nmap
+ - shell: !include-raw: test-ports-nofeature.sh
+ - shell: !include-raw: test-karaf-oxygensafe.expect
+ # Disable this test until ODLPARENT-139 is fixed
+ # - shell: !include-raw: test-rest-ok.sh
+
+- builder:
+ name: stop-odl
+ builders:
+ - shell: !include-raw: stop-odl.sh
+
+- builder:
+ name: uninstall-rpm
+ builders:
+ - shell: !include-raw: uninstall-rpm.sh
+
+- builder:
+ name: upgrade-odl
+ builders:
+ - shell: |
+ sudo yum upgrade -y opendaylight
+
+- builder:
+ name: install-start-test-stop-rpm
+ builders:
+ - install-rpm
+ - start-odl
+ - test-odl
+ - stop-odl
+
+- builder:
+ name: install-start-test-stop-uninstall-rpm
+ builders:
+ - install-start-test-stop-rpm
+ - uninstall-rpm
+
+- builder:
+ name: installrepcfg-upgrade-start-test-stop-rpm
+ builders:
+ - install-repo-cfg-rpm
+ - upgrade-odl
+ - start-odl
+ - test-odl
+ - stop-odl
+
- builder:
name: install-test-uninstall-rpm
builders:
- shell: !include-raw: stop-odl.sh
- shell: !include-raw: uninstall-rpm.sh
- shell: |
- # Remove old host key so future installs don't fail to SSH
- rm /home/jenkins/.ssh/known_hosts || echo "No known_hosts file"
+ # Remove old host key (if exists) so future installs don't fail SSH
+ rm /home/jenkins/.ssh/known_hosts || \
+ echo "No known_hosts file to clean up, which is fine"
- builder:
name: install-test-uninstall-deb
- shell: !include-raw: stop-odl.sh
- shell: !include-raw: uninstall-deb.sh
- shell: |
- # Remove old host key so future installs don't fail to SSH
- rm /home/jenkins/.ssh/known_hosts || echo "No known_hosts file"
+ # Remove old host key (if exists) so future installs don't fail SSH
+ rm /home/jenkins/.ssh/known_hosts || \
+ echo "No known_hosts file to clean up, which is fine"
project: 'integration/packaging'
stream:
+ - neon
- fluorine
- oxygen
distro:
- job-template:
name: 'packaging-build-rpm-{stream}'
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-2g
project-type: freestyle
name: DEPLOY_TO_REPO
default: 'opendaylight-{stream}-epel-7-x86_64-devel'
description: 'Repository to deploy resulting package to'
+ - string:
+ name: PKG_VERSION_OVERRIDE
+ default: ''
+ description: 'Override autodetected package component of RPM version (maj.min.pat-pkg)'
scm:
- integration-gerrit-scm:
- job-template:
name: 'packaging-build-rpm-{distro}-snap-{stream}'
- node: centos7-docker-2c-8g
+ node: centos7-docker-2c-2g
project-type: freestyle
- job-template:
name: 'packaging-verify-rpm-master'
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-2g
project-type: freestyle
build-timeout: '{build-timeout}'
builders:
- # Test Oxygen SR2 release tarball
+ # Test Oxygen SR3 release tarball
- inject:
# yamllint disable-line rule:line-length
- properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.8.2/karaf-0.8.2.tar.gz'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.8.3/karaf-0.8.3.tar.gz'
- shell: !include-raw-escape: build-rpm.sh
- install-test-uninstall-rpm
- # Test latest Oxygen snapshot
+ # Test Fluorine ('Managed Release Common Distro') release tarball
- inject:
- properties-content: 'STREAM=oxygen'
- - shell: !include-raw: build-rpm-snap.sh
+ # yamllint disable-line rule:line-length
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/opendaylight/0.9.0/opendaylight-0.9.0.tar.gz'
+ - shell: !include-raw-escape: build-rpm.sh
- install-test-uninstall-rpm
- # Test Fluorine pre-release autorelease tarball
+ # Test Neon pre-release autorelease tarball
# NB: This will need to be updated as old builds expire
- inject:
# yamllint disable-line rule:line-length
- properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2265/org/opendaylight/integration/karaf/0.9.0/karaf-0.9.0.tar.gz'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2393/org/opendaylight/integration/karaf/0.10.0/karaf-0.10.0.tar.gz'
- shell: !include-raw-escape: build-rpm.sh
- install-test-uninstall-rpm
- # Test Fluorine multipatch zip (no parallel tarball available)
+ # Test Neon multipatch zip (no parallel tarball available)
# NB: This will need to be updated as old builds expire
- inject:
# yamllint disable-line rule:line-length
- properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.0-SNAPSHOT/karaf-0.9.0-20180802.041004-76.zip'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.10.0-SNAPSHOT/karaf-0.10.0-20181011.124523-10.zip'
- shell: !include-raw-escape: build-rpm.sh
- install-test-uninstall-rpm
- # Test latest Fluorine snapshot
+ # Test latest Neon snapshot
- inject:
- properties-content: 'STREAM=fluorine'
+ properties-content: 'STREAM=neon'
- shell: !include-raw: build-rpm-snap.sh
- install-test-uninstall-rpm
- job-template:
name: 'packaging-verify-full-rpm-master'
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-2g
project-type: freestyle
build-timeout: '{build-timeout}'
builders:
- # Test Oxygen SR2 release tarball
+ # Test Oxygen SR3 release tarball
- inject:
# yamllint disable-line rule:line-length
- properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.8.2/karaf-0.8.2.tar.gz'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/karaf/0.8.3/karaf-0.8.3.tar.gz'
- shell: !include-raw-escape: build-rpm.sh
- install-test-uninstall-rpm
# NB: This will need to be updated as old builds expire
- inject:
# yamllint disable-line rule:line-length
- properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2261/org/opendaylight/integration/karaf/0.8.3/karaf-0.8.3.tar.gz'
- - shell: !include-raw-escape: build-rpm.sh
- - install-test-uninstall-rpm
-
- # Test Oxygen multipatch zip (no parallel tarball available)
- # NB: This will need to be updated as old builds expire
- - inject:
- # yamllint disable-line rule:line-length
- properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.8.3-SNAPSHOT/karaf-0.8.3-20180726.143755-1.zip'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2395/org/opendaylight/integration/karaf/0.8.4/karaf-0.8.4.tar.gz'
- shell: !include-raw-escape: build-rpm.sh
- install-test-uninstall-rpm
- shell: !include-raw: build-rpm-snap.sh
- install-test-uninstall-rpm
+ # Test Fluorine ('Managed Release Common Distro') release tarball
+ - inject:
+ # yamllint disable-line rule:line-length
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/opendaylight/0.9.0/opendaylight-0.9.0.tar.gz'
+ - shell: !include-raw-escape: build-rpm.sh
+ - install-test-uninstall-rpm
+
# Test Fluorine pre-release autorelease tarball
# NB: This will need to be updated as old builds expire
- inject:
# yamllint disable-line rule:line-length
- properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2265/org/opendaylight/integration/karaf/0.9.0/karaf-0.9.0.tar.gz'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2394/org/opendaylight/integration/karaf/0.9.1/karaf-0.9.1.tar.gz'
- shell: !include-raw-escape: build-rpm.sh
- install-test-uninstall-rpm
# NB: This will need to be updated as old builds expire
- inject:
# yamllint disable-line rule:line-length
- properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.0-SNAPSHOT/karaf-0.9.0-20180802.041004-76.zip'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.9.1-SNAPSHOT/karaf-0.9.1-20181015.150828-5.zip'
- shell: !include-raw-escape: build-rpm.sh
- install-test-uninstall-rpm
- shell: !include-raw: build-rpm-snap.sh
- install-test-uninstall-rpm
+ # Test Neon pre-release autorelease tarball
+ # NB: This will need to be updated as old builds expire
+ - inject:
+ # yamllint disable-line rule:line-length
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/autorelease-2393/org/opendaylight/integration/karaf/0.10.0/karaf-0.10.0.tar.gz'
+ - shell: !include-raw-escape: build-rpm.sh
+ - install-test-uninstall-rpm
+
+ # Test Neon multipatch zip (no parallel tarball available)
+ # NB: This will need to be updated as old builds expire
+ - inject:
+ # yamllint disable-line rule:line-length
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.10.0-SNAPSHOT/karaf-0.10.0-20181011.124523-10.zip'
+ - shell: !include-raw-escape: build-rpm.sh
+ - install-test-uninstall-rpm
+
+ # Test latest Neon snapshot
+ - inject:
+ properties-content: 'STREAM=neon'
+ - shell: !include-raw: build-rpm-snap.sh
+ - install-test-uninstall-rpm
+
triggers:
- timed: '@daily'
- gerrit:
- job-template:
name: 'packaging-test-rpm-master'
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-2g
parameters:
- opendaylight-infra-parameters:
- job-template:
name: 'packaging-test-rpm-upgrade-master'
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-2g
parameters:
- opendaylight-infra-parameters:
branch: '{branch}'
refspec: 'refs/heads/{branch}'
artifacts: '{archive-artifacts}'
- - string:
- name: URL
- # yamllint disable-line rule:line-length
- default: 'https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-8-release.repo'
- description: 'Link to .repo or .rpm file'
- - string:
- name: UPGRADE_URL
- # yamllint disable-line rule:line-length
- default: 'https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-8-devel.repo'
- description: 'Link to .repo or .rpm file'
scm:
- integration-gerrit-scm:
build-timeout: '{build-timeout}'
builders:
- - shell: !include-raw-escape: install-rpm.sh
- - shell: !include-raw: start-odl.sh
- - shell: |
- # Install expect to interact with Karaf shell
- sudo yum install -y expect
- # Install nmap to check status of ODL's SSH port
- sudo yum install -y nmap
- - shell: !include-raw: test-karaf-oxygensafe.expect
- - shell: !include-raw: stop-odl.sh
- - shell: !include-raw: test-rpm-upgrade.sh
- - shell: !include-raw: start-odl.sh
- - shell: !include-raw: test-karaf-oxygensafe.expect
- - shell: !include-raw: stop-odl.sh
- - shell: !include-raw: uninstall-rpm.sh
+ # Tests (current and future):
+ # * Install latest release, stop/uninstall, install latest CD
+ # * Upgrade from latest release latest CD
+ # * TODO: Upgrade from latest release to proposed packaging/** logic
+ # * TODO: Upgrade from CD to proposed packaging/** logic
+ # * TODO: Upgrade from proposed packaging/** logic (older ODL) to
+ # proposed packaging logic (latest ODL)
+
+ # Test 1: Install latest release, stop/uninstall, install latest CD
+ - inject:
+ # yamllint disable-line rule:line-length
+ properties-content: 'URL=https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-90-release.repo'
+ - install-start-test-stop-uninstall-rpm
+ - inject:
+ # yamllint disable-line rule:line-length
+ properties-content: 'URL=https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-9-devel.repo'
+ - install-start-test-stop-uninstall-rpm
+
+ # Test 2: Install latest release, stop, upgrade to latest CD
+ - inject:
+ # yamllint disable-line rule:line-length
+ properties-content: 'URL=https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-90-release.repo'
+ - install-start-test-stop-rpm
+ - inject:
+ # yamllint disable-line rule:line-length
+ properties-content: 'REPO_CFG_FILE_URL=https://raw.githubusercontent.com/opendaylight/integration-packaging/master/packages/rpm/example_repo_configs/opendaylight-9-devel.repo'
+ - installrepcfg-upgrade-start-test-stop-rpm
+
+ triggers:
+ - gerrit-trigger-patch-submitted:
+ gerrit-server-name: '{gerrit-server-name}'
+ project: '{project}'
+ branch: '{branch}'
+ files: 'packages/**'
+ forbidden-files: ''
publishers:
- lf-infra-publish
name: CHANGELOG_EMAIL
default: 'jenkins-donotreply@opendaylight.org'
description: 'Email of person who defined .deb'
+ - string:
+ name: PKG_VERSION_OVERRIDE
+ default: ''
+ description: 'Override autodetected package component of RPM version (maj.min.pat-pkg)'
scm:
- integration-gerrit-scm:
stream:
- master:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# is called "ansible", which causes the cloned repo name to not match the role
# name "opendaylight". So we need a cp/mv either way and this is simplest.
sudo cp -R $WORKSPACE/ansible /etc/ansible/roles/opendaylight
-
-# Install OpenDaylight via repo using example Ansible playbook
-sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/examples/deb_repo.yml
-
-# Add more tests
# is called "ansible", which causes the cloned repo name to not match the role
# name "opendaylight". So we need a cp/mv either way and this is simplest.
sudo cp -R $WORKSPACE/ansible /etc/ansible/roles/opendaylight
-
-# Install OpenDaylight via repo using example Ansible playbook
-sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/examples/rpm_8_devel.yml
-
-# Add more tests
--- /dev/null
+#!/bin/bash
+
+# Uninstall any previous installation
+sudo apt-get remove opendaylight && sudo apt-get purge opendaylight
+
+# Delete the ODL directory to ensure a clean working enviroment
+sudo rm -rf /opt/opendaylight
+
+# Install OpenDaylight via repo using example Ansible playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/examples/deb_repo_api.yml --extra-vars "@$WORKSPACE/ansible/examples/log_vars.json"
+
+# Create Ansible custom module directories
+sudo mkdir -p /usr/share/ansible/plugins/modules
+
+# Copy the custom module to the directory above
+sudo cp $WORKSPACE/ansible/library/odl_usermod.py /usr/share/ansible/plugins/modules/
+
+# Execute the odl-user-test playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-users.yaml -v
+
+# Test the custom log configurations
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-logs.yaml -e test_log_level=DEBUG -e test_log_mechanism=console -v
--- /dev/null
+#!/bin/bash
+
+# Uninstall any previous installation
+sudo apt-get remove opendaylight && sudo apt-get purge opendaylight
+
+# Delete the ODL directory to ensure a clean working enviroment
+sudo rm -rf /opt/opendaylight
+
+# Install OpenDaylight via repo using example Ansible playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/examples/deb_repo_api.yml
+
+# Create Ansible custom module directories
+sudo mkdir -p /usr/share/ansible/plugins/modules
+
+# Copy the custom module to the directory above
+sudo cp $WORKSPACE/ansible/library/odl_usermod.py /usr/share/ansible/plugins/modules/
+
+# Execute the odl-user-test playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-users.yaml -v
+
+# Test the custom log configurations
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-logs.yaml -e test_log_level=INFO -e test_log_mechanism=file -v
#!/bin/bash
-# Options:
-# -x: Echo commands
-# -e: Fail on errors
-# -o pipefail: Fail on errors in scripts this calls, give stacktrace
-set -ex -o pipefail
-
-# Install required packages
-virtualenv rpm_build
-source rpm_build/bin/activate
-rpm_build/bin/python -m pip install --upgrade pip
-
-# Install Ansible
-sudo yum install -y ansible
-
-# Install local version of ansible-opendaylight to path expected by Ansible.
-# Could almost do this by setting ANSIBLE_ROLES_PATH=$WORKSPACE, but Ansible
-# expects the dir containing the role to have the name of role. The JJB project
-# is called "ansible", which causes the cloned repo name to not match the role
-# name "opendaylight". So we need a cp/mv either way and this is simplest.
-sudo cp -R $WORKSPACE/ansible /etc/ansible/roles/opendaylight
-
-# Install OpenDaylight via repo using example Ansible playbook
-sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/examples/rpm_8_devel.yml
-
# Create Ansible custom module directories
sudo mkdir -p /usr/share/ansible/plugins/modules
# Copy the custom module to the directory above
sudo cp $WORKSPACE/ansible/library/odl_usermod.py /usr/share/ansible/plugins/modules/
-# Execute the tests playnook
-sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-users.yaml -vvv
+# Execute the odl-user-test playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-users.yaml -v
--- /dev/null
+#!/bin/bash
+
+# Uninstall any previous installation
+sudo yum remove opendaylight -y
+
+# Delete the ODL directory to ensure a clean working enviroment
+sudo rm -rf /opt/opendaylight
+
+# Install OpenDaylight with custom config via repo using example Ansible playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/examples/rpm_8_devel_odl_api.yml --extra-vars "@$WORKSPACE/ansible/examples/log_vars.json"
+
+# Create Ansible custom module directories
+sudo mkdir -p /usr/share/ansible/plugins/modules
+
+# Copy the custom module to the directory above
+sudo cp $WORKSPACE/ansible/library/odl_usermod.py /usr/share/ansible/plugins/modules/
+
+# Execute the odl-user-test playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-users.yaml -v
+
+# Test the custom log configurations
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-logs.yaml -e test_log_level=DEBUG -e test_log_mechanism=console -v
--- /dev/null
+#!/bin/bash
+
+# Uninstall any previous installation
+sudo yum remove opendaylight -y
+
+# Delete the ODL directory to ensure a clean working enviroment
+sudo rm -rf /opt/opendaylight
+
+# Install OpenDaylight with custom config via repo using example Ansible playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/examples/rpm_8_devel_odl_api.yml
+
+# Create Ansible custom module directories
+sudo mkdir -p /usr/share/ansible/plugins/modules
+
+# Copy the custom module to the directory above
+sudo cp $WORKSPACE/ansible/library/odl_usermod.py /usr/share/ansible/plugins/modules/
+
+# Execute the odl-user-test playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-users.yaml -v
+
+# Test the custom log configurations
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-logs.yaml -e test_log_level=INFO -e test_log_mechanism=file -v
exec bash -c "while ! nmap -Pn -p8101 localhost | grep -q open; do sleep 0.1; done"
# SSH into Karaf shell
+send_user "SSH into ODL Karaf shell\n"
spawn ssh -p 8101 -o StrictHostKeyChecking=no karaf@127.0.0.1
# Auth to Karaf shell
send "$password\r"
# Show features to make debugging easier
+# Check for "No features available" error message
expect "$prompt"
send "feature:list\r"
+expect {{
+ timeout {{
+ send_user "\nFeatures seem to be available\n"
+ }}
+ "No features available" {{
+ send_user "\nNo features available, error\n"
+ exit 1
+ }}
+}}
# Verify that a major feature is present
expect "$prompt"
# send_user "\nTest feature installed successfully\n"
# }}
# }}
+
+send_user "End of Karaf shell tests\n"
--- /dev/null
+#!/bin/bash
+
+# Execute the test ODL logs playbook
+sudo ansible-playbook -i "localhost," -c local $WORKSPACE/ansible/tests/test-odl-logs.yaml -v
sudo docker exec $docker_id /bin/bash $scripts_path/test-ports-nofeature.sh
# Don't install test feature and check REST for Oxygen, ODLPARENT-139 breaks it
-if [ "$STREAM" == "oxygen" ] || [ "$STREAM" == "fluorine" ]; then
+if [ "$STREAM" == "oxygen" ] || [ "$STREAM" == "fluorine" ] || [ "$STREAM" == "neon" ]; then
sudo docker exec $docker_id /usr/bin/expect $scripts_path/test-karaf-oxygensafe.expect
else
sudo docker exec $docker_id /usr/bin/expect $scripts_path/test-karaf.expect
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: packetcable-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'packetcable'
+ project-name: 'packetcable'
+ branch: 'master'
+ mvn-settings: 'packetcable-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[packetcable]'
+
+ # Used by the release job
+ staging-profile-id: a68ca4a24655c
+
- project:
name: packetcable-fluorine
jobs:
stream: fluorine
project: 'packetcable'
project-name: 'packetcable'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'packetcable-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
+++ /dev/null
----
-- project:
- name: persistence-fluorine
- jobs:
- - odl-maven-jobs
-
- stream: fluorine
- project: 'persistence'
- project-name: 'persistence'
- branch: 'master'
- jdk: openjdk7
- mvn-settings: 'persistence-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[persistence]'
-
- # Used by the release job
- staging-profile-id: a68d3c2bb44d1
-
-- project:
- name: persistence-oxygen
- jobs:
- - odl-maven-jobs
-
- stream: oxygen
- project: 'persistence'
- project-name: 'persistence'
- branch: 'stable/oxygen'
- jdk: openjdk7
- mvn-settings: 'persistence-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[persistence]'
-
- # Used by the release job
- staging-profile-id: a68d3c2bb44d1
-
-- project:
- name: persistence-sonar
- jobs:
- - gerrit-maven-sonar
- project: 'persistence'
- project-name: 'persistence'
- branch: 'master'
- mvn-settings: 'persistence-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
-- view:
- name: persistence
- description: 'List of persistence jobs'
- regex: '^persistence-.*'
- <<: *releng_view_common
rtd-token: e9fa62bd60a39c22de631791309ccacc37a9929e
- gerrit-jenkins-cfg-merge:
jenkins-silos: releng sandbox
+ - gerrit-jenkins-sandbox-cleanup
- gerrit-jjb-deploy-job
- gerrit-jjb-merge:
build-node: centos7-builder-4c-4g
- timed: '0,30 * * * *'
builders:
- - odl-openstack-install
+ - lf-infra-pre-build
+ - shell: |
+ #!/bin/bash -l
+ pip install --user --upgrade lftools[openstack]~=0.17.1
# Servers
- odl-openstack-cleanup-stale-stacks
- odl-openstack-cleanup-stale-nodes
gerrit-build-unstable-codereview-value: 0
gerrit-build-notbuilt-codereview-value: 0
-# TODO: Unify argument names across gerrit-trigger-* macros.
-- trigger:
- name: gerrit-trigger-patch-sonar
- triggers:
- - gerrit:
- server-name: '{gerrit-server-name}'
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: 'run-sonar'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: '{name}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/master'
- skip-vote:
- successful: true
- failed: true
- unstable: true
- notbuilt: true
-
- publisher:
name: email-notification
publishers:
- shell: !include-raw: opendaylight-infra-stack.sh
- shell: !include-raw-escape: opendaylight-infra-copy-ssh-keys.sh
+- builder:
+ name: opendaylight-apex-stack
+ # opendaylight-apex-stack.sh has a required variable {stack-template} that
+ # must be passed into this macro.
+ builders:
+ - shell: !include-raw: opendaylight-infra-stack.sh
+
- builder:
name: distribute-build-url
# Place URL of the current run of a build job to a file at given path.
- UNSTABLE
build-steps:
- shell: |
- #!/bin/bash
+ #!/bin/bash -l
echo "Deleting $STACK_NAME"
- source "/tmp/v/openstack/bin/activate"
openstack stack delete --yes "$STACK_NAME"
mark-unstable-if-failed: false
build-timeout: 90
cron: '00 H 1 * *'
- templates: devstack
platforms: centos-7
+ templates: devstack
- project:
name: packer-devstack-pre-pip-pike-jobs
build-timeout: 75
cron: '00 H 1 * *'
- templates: devstack-pre-pip-pike
platforms: centos-7
+ templates: devstack-pre-pip-pike
- project:
name: packer-devstack-pre-pip-queens-jobs
build-timeout: 75
cron: '00 H 1 * *'
- templates: devstack-pre-pip-queens
platforms: centos-7
+ templates: devstack-pre-pip-queens
- project:
name: packer-docker-jobs
build-timeout: 60
cron: '00 H 1 * *'
- platforms: centos-7
+ platforms:
+ - centos-7
+ - ubuntu-16.04
templates: docker
- project:
build-timeout: 90
cron: '00 H 1 * *'
- templates: gbp
platforms:
- ubuntu-14.04
- ubuntu-16.04
+ - ubuntu-18.04
+ templates: gbp
- project:
name: packer-mininet-ovs-2.5-jobs
build-timeout: 60
cron: '00 H 1 * *'
+ platforms:
+ - ubuntu-16.04
+ - ubuntu-18.04
templates: mininet-ovs-2.5
- platforms: ubuntu-16.04
- project:
name: packer-mininet-ovs-2.6-jobs
build-timeout: 75
cron: '00 H 1 * *'
+ platforms:
+ - ubuntu-16.04
+ - ubuntu-18.04
templates: mininet-ovs-2.6
- platforms: ubuntu-16.04
- project:
name: packer-mininet-ovs-2.8-jobs
build-timeout: 90
cron: '00 H 1 * *'
+ platforms:
+ - ubuntu-16.04
+ - ubuntu-18.04
templates: mininet-ovs-2.8
- platforms: ubuntu-16.04
- project:
name: packer-robot-jobs
build-timeout: 90
cron: '00 H 1 * *'
- platforms: ubuntu-16.04
+ platforms:
+ - ubuntu-16.04
+ - ubuntu-18.04
templates: kubernetes
name: odl-maven-jobs
jobs:
- - gerrit-maven-clm
+ - gerrit-maven-clm:
+ nexus-iq-namespace: odl-
# TODO: Figure out what's wrong with the gerrit-maven-merge job.
# - gerrit-maven-merge:
build-timeout: 180
mvn-goals: clean install -V -Dmaven.compile.fork=true -Dintegrationtests -Dvtn.build.jobs=2
- - gerrit-maven-release
+ - gerrit-maven-stage
- gerrit-maven-verify
- gerrit-maven-verify-dependencies:
build-timeout: 180
**/target/**/feature.xml
**/target/failsafe-reports/failsafe-summary.xml
**/target/surefire-reports/*-output.txt
- cron: 'H H * * 0'
+ cron: '@daily'
mvn-opts: ''
mvn-version: mvn35
java-version: openjdk8
- robot-list
recurse: false
+- view:
+ name: '00-Empty View'
+ description: >
+ Empty job view. This is used as the default landing view to keep the
+ Jenkins UI responding better while a) under high load and b) when there
+ are a lot of jobs defined in the system'
+ view-type: list
+ filter-executors: false
+ filter-queue: false
+ recurse: false
+ regex: ''
+
- view:
name: 01-Recent
regex: '.*'
+++ /dev/null
----
-- project:
- name: reservation-fluorine
- jobs:
- - odl-maven-jobs
-
- stream: fluorine
- project: 'reservation'
- project-name: 'reservation'
- branch: 'master'
- mvn-settings: 'reservation-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[reservation]'
-
- # Used by the release job
- staging-profile-id: a68d9bc504037
-
-- project:
- name: reservation-oxygen
- jobs:
- - odl-maven-jobs
-
- stream: oxygen
- project: 'reservation'
- project-name: 'reservation'
- branch: 'stable/oxygen'
- mvn-settings: 'reservation-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[reservation]'
-
- # Used by the release job
- staging-profile-id: a68d9bc504037
-
-- project:
- name: reservation-sonar
- jobs:
- - gerrit-maven-sonar
- project: 'reservation'
- project-name: 'reservation'
- branch: 'master'
- mvn-settings: 'reservation-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
-- view:
- name: reservation
- description: 'List of reservation jobs'
- regex: '^reservation-.*'
- <<: *releng_view_common
+++ /dev/null
----
-- project:
- name: sdninterfaceapp-csit-basic
- jobs:
- - inttest-csit-1node
- - inttest-csit-verify-1node
-
- # The project name
- project: 'sdninterfaceapp'
-
- # The functionality under test
- functionality: 'basic'
-
- # Project branches
- stream:
- - fluorine:
- branch: 'master'
- - oxygen:
- branch: 'stable/oxygen'
-
- install:
- - only:
- scope: 'only'
-
- # Features to install
- install-features: 'odl-restconf,odl-sdninterfaceapp-all'
-
- # Robot custom options
- robot-options: ''
---
+- project:
+ name: sdninterfaceapp-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'sdninterfaceapp'
+ project-name: 'sdninterfaceapp'
+ branch: 'master'
+ build-node: centos7-builder-2c-8g
+ mvn-settings: 'sdninterfaceapp-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'bgpcep-merge-{stream}'
+ email-upstream: '[sdninterfaceapp] [bgpcep]'
+
+ # Used by the release job
+ staging-profile-id: a68e3d1ff55e3
+
- project:
name: sdninterfaceapp-fluorine
jobs:
stream: fluorine
project: 'sdninterfaceapp'
project-name: 'sdninterfaceapp'
- branch: 'master'
+ branch: 'stable/fluorine'
build-node: centos7-builder-2c-8g
mvn-settings: 'sdninterfaceapp-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
project: 'serviceutils'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
- odl-maven-jobs
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- 'gerrit-tox-verify'
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: sfc-neon
+ jobs:
+ - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: sfc
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-sfc/38996/
+ rtd-token: 2fa6c2900bbe181b0427ad65df3dc494ac749edb
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'sfc'
+ project-name: 'sfc'
+ branch: 'master'
+ mvn-settings: 'sfc-settings'
+ mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
+ build-timeout: 120
+ dependencies: 'openflowplugin-merge-{stream},ovsdb-merge-{stream},lispflowmapping-merge-{stream}'
+ email-upstream: '[sfc] [openflowplugin] [ovsdb] [lispflowmapping]'
+ build-node: centos7-builder-8c-8g
+
+ # Used by the release job
+ staging-profile-id: a68eb361ca48a
+
- project:
name: sfc-fluorine
jobs:
stream: fluorine
project: 'sfc'
project-name: 'sfc'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'sfc-settings'
mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
build-timeout: 120
---
+- project:
+ name: snbi-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'snbi'
+ project-name: 'snbi'
+ branch: 'master'
+ mvn-settings: 'snbi-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[snbi]'
+
+ # Used by the release job
+ staging-profile-id: a68f328cefed6
+
- project:
name: snbi-fluorine
jobs:
stream: fluorine
project: 'snbi'
project-name: 'snbi'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'snbi-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
---
+- project:
+ name: snmp-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'snmp'
+ project-name: 'snmp'
+ branch: 'master'
+ mvn-settings: 'snmp-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream}'
+ email-upstream: '[snmp] [odlparent]'
+
+ # Used by the release job
+ staging-profile-id: a68fb236b93a6
+
- project:
name: snmp-fluorine
jobs:
stream: fluorine
project: 'snmp'
project-name: 'snmp'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'snmp-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream}'
---
+- project:
+ name: snmp4sdn-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'snmp4sdn'
+ project-name: 'snmp4sdn'
+ branch: 'master'
+ mvn-settings: 'snmp4sdn-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[snmp4sdn] [odlparent] [controller] [yangtools]'
+
+ # Used by the release job
+ staging-profile-id: a69034a4b6ef5
+
- project:
name: snmp4sdn-fluorine
jobs:
stream: fluorine
project: 'snmp4sdn'
project-name: 'snmp4sdn'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'snmp4sdn-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.sxp/features-sxp/1.7.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
- oxygen:
branch: 'stable/oxygen'
--- /dev/null
+---
+- project:
+ name: sxp-csit-binding-origin
+ jobs:
+ - inttest-csit-1node
+
+ # The project name
+ project: 'sxp'
+
+ # The functionality under test
+ functionality: 'binding-origin'
+
+ # Project branches
+ stream:
+ - neon:
+ branch: 'master'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
+
+ install:
+ - all:
+ scope: 'all'
+
+ # Features to install
+ install-features: 'odl-restconf,odl-sxp-controller'
+
+ # Robot custom options
+ robot-options: ''
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.sxp/features-sxp/1.7.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.sxp/features-sxp/1.7.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.sxp/features-sxp/1.7.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.sxp/features-sxp/1.7.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.sxp/features-sxp/1.7.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.sxp/features-sxp//xml/features'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: sxp-neon
+ jobs:
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: sxp
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-sxp/47573/
+ rtd-token: 4a78556e59ce3ef35e61e2fa19ebae049acf6d5d
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'sxp'
+ project-name: 'sxp'
+ branch: 'master'
+ mvn-settings: 'sxp-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
+ email-upstream: '[sxp] [odlparent] [controller] [yangtools]'
+
+ # Used by the release job
+ staging-profile-id: a6909c75719b7
+
- project:
name: sxp-fluorine
jobs:
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: sxp
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-sxp/47573/
+ rtd-token: 4a78556e59ce3ef35e61e2fa19ebae049acf6d5d
- odl-maven-jobs
stream: fluorine
project: 'sxp'
project-name: 'sxp'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'sxp-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
---
+- project:
+ name: systemmetrics-neon
+ jobs:
+ - odl-maven-jobs
+
+ project: 'systemmetrics'
+ project-name: 'systemmetrics'
+ stream: neon
+ branch: 'master'
+ mvn-settings: 'systemmetrics-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[systemmetrics] [odlparent] [yangtools] [controller]'
+
+ # Used by the release job
+ staging-profile-id: a69113575458e
+
- project:
name: systemmetrics-fluorine
jobs:
project: 'systemmetrics'
project-name: 'systemmetrics'
stream: fluorine
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'systemmetrics-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
---
+- project:
+ name: telemetry-neon
+ jobs:
+ - 'odl-maven-jobs'
+ - '{project-name}-integration-{stream}'
+
+ stream: neon
+ project: 'telemetry'
+ project-name: 'telemetry'
+ branch: 'master'
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: 'mvn33'
+ mvn-settings: 'telemetry-settings'
+ mvn-goals: 'clean install'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[telemetry]'
+ archive-artifacts: ''
+
+ # Used by the release job
+ staging-profile-id: 8ed9c52266504
+
- project:
name: telemetry-fluorine
jobs:
stream: fluorine
project: 'telemetry'
project-name: 'telemetry'
- branch: 'master'
+ branch: 'stable/fluorine'
jdks:
- openjdk8
maven:
+++ /dev/null
----
-- project:
- name: topoprocessing-fluorine
- jobs:
- - odl-maven-jobs
-
- stream: fluorine
- project: 'topoprocessing'
- project-name: 'topoprocessing'
- branch: 'master'
- mvn-settings: 'topoprocessing-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
- email-upstream: '[topoprocessing] [odlparent] [controller] [yangtools]'
-
- # Used by the release job
- staging-profile-id: a691bbe2328cb
-
-- project:
- name: topoprocessing-oxygen
- jobs:
- - '{project-name}-distribution-check-{stream}'
- - odl-maven-jobs
-
- stream: oxygen
- project: 'topoprocessing'
- project-name: 'topoprocessing'
- branch: 'stable/oxygen'
- mvn-settings: 'topoprocessing-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
- email-upstream: '[topoprocessing] [odlparent] [controller] [yangtools]'
-
- # Used by the release job
- staging-profile-id: a691bbe2328cb
-
-- project:
- name: topoprocessing-sonar
- jobs:
- - gerrit-maven-sonar
- project: 'topoprocessing'
- project-name: 'topoprocessing'
- branch: 'master'
- mvn-settings: 'topoprocessing-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
-- view:
- name: topoprocessing
- description: 'List of topoprocessing jobs'
- regex: '^topoprocessing-.*'
- <<: *releng_view_common
---
+- project:
+ name: transportpce-neon
+ jobs:
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: transportpce
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-transportpce/47688/
+ rtd-token: 6f37ba63226bdcc6c823ee455e62237cf68813fd
+ - odl-maven-jobs
+
+ project: 'transportpce'
+ project-name: 'transportpce'
+ stream: neon
+ branch: 'master'
+ mvn-settings: 'transportpce-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[transportpce] [odlparent] [yangtools] [controller]'
+
+ # Used by the release job
+ staging-profile-id: a6927323fa3d4
+
- project:
name: transportpce-fluorine
jobs:
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: transportpce
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-transportpce/47688/
+ rtd-token: 6f37ba63226bdcc6c823ee455e62237cf68813fd
- odl-maven-jobs
project: 'transportpce'
project-name: 'transportpce'
stream: fluorine
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'transportpce-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr/1.6.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr//xml/features'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr/1.6.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr//xml/features'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr/1.6.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr//xml/features'
- oxygen:
branch: 'stable/oxygen'
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
+ # yamllint disable-line rule:line-length
+ repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr//xml/features'
+ - fluorine:
+ branch: 'stable/fluorine'
+ trigger-jobs: '{project}-merge-{stream}'
+ karaf-version: 'odl'
# yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr/1.6.0-SNAPSHOT/xml/features'
+ repo-url: 'mvn:org.opendaylight.tsdr/features-tsdr//xml/features'
- oxygen:
branch: 'stable/oxygen'
---
+- project:
+ name: tsdr-neon
+ jobs:
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: tsdr
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/opendaylight-tsdr/47532/
+ rtd-token: 96c97641155132afcc5900bafc68af3364d91c99
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'tsdr'
+ project-name: 'tsdr'
+ branch: 'master'
+ mvn-settings: 'tsdr-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: ''
+ email-upstream: '[tsdr]'
+
+ # Used by the release job
+ staging-profile-id: a69373036303c
+
- project:
name: tsdr-fluorine
jobs:
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: tsdr
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/opendaylight-tsdr/47532/
+ rtd-token: 96c97641155132afcc5900bafc68af3364d91c99
- odl-maven-jobs
stream: fluorine
project: 'tsdr'
project-name: 'tsdr'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'tsdr-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: ''
---
+- project:
+ name: ttp-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'ttp'
+ project-name: 'ttp'
+ branch: 'master'
+ mvn-settings: 'ttp-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream}'
+ email-upstream: '[ttp] [odlparent]'
+
+ # Used by the release job
+ staging-profile-id: a693f948563d5
+
- project:
name: ttp-fluorine
jobs:
stream: fluorine
project: 'ttp'
project-name: 'ttp'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'ttp-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream}'
---
- project:
- name: unimgr-fluorine
+ name: unimgr-neon
jobs:
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: unimgr
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-unimgr/49748/
+ rtd-token: e12225e9b9ac67f5439c1619dcad342393b7ea31
- odl-maven-jobs
- stream: fluorine
+ stream: neon
project: 'unimgr'
project-name: 'unimgr'
branch: 'master'
staging-profile-id: a695d0a0b8d51
- project:
- name: unimgr-oxygen
+ name: unimgr-fluorine
jobs:
- - '{project-name}-distribution-check-{stream}'
+ - '{project-name}-rtd-jobs':
+ build-node: centos7-builder-2c-2g
+ project-pattern: unimgr
+ rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-unimgr/49748/
+ rtd-token: e12225e9b9ac67f5439c1619dcad342393b7ea31
- odl-maven-jobs
- stream: oxygen
+ stream: fluorine
project: 'unimgr'
project-name: 'unimgr'
- branch: 'stable/oxygen'
+ branch: 'stable/fluorine'
mvn-settings: 'unimgr-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'ovsdb-merge-{stream}'
+++ /dev/null
----
-- project:
- name: usc-csit-channel
- jobs:
- - inttest-csit-1node
- - inttest-csit-verify-1node
-
- # The project name
- project: 'usc'
-
- # The functionality under test
- functionality: 'channel'
-
- # Project branches
- stream:
- - fluorine:
- branch: 'master'
- trigger-jobs: '{project}-merge-{stream}'
- # yamllint disable-line rule:line-length
- repo-url: 'mvn:org.opendaylight.usc/usc-features/1.6.0-SNAPSHOT/xml/features'
- - oxygen:
- branch: 'stable/oxygen'
-
- install:
- - all:
- scope: 'all'
-
- # Features to install
- install-features: 'odl-restconf,odl-mdsal-apidocs,odl-usc-channel-ui'
-
- # Robot custom options
- robot-options: ''
# Project branches
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
# yamllint disable-line rule:line-length
repo-url: 'mvn:org.opendaylight.usc/usc-features/1.6.0-SNAPSHOT/xml/features'
- oxygen:
---
+- project:
+ name: usc-neon
+ jobs:
+ - '{project-name}-maven-javadoc-jobs'
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'usc'
+ project-name: 'usc'
+ branch: 'master'
+ mvn-settings: 'usc-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'controller-merge-{stream},yangtools-merge-{stream},odlparent-merge-{stream}'
+ email-upstream: '[usc] [controller] [yangtools] [odlparent]'
+
+ # Used by the release job
+ staging-profile-id: a697b633b3ffe
+
- project:
name: usc-fluorine
jobs:
stream: fluorine
project: 'usc'
project-name: 'usc'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'usc-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'controller-merge-{stream},yangtools-merge-{stream},odlparent-merge-{stream}'
+++ /dev/null
----
-- project:
- name: usecplugin-csit-basic
- jobs:
- - inttest-csit-1node
- - inttest-csit-verify-1node
-
- # The project name
- project: 'usecplugin'
-
- # The functionality under test
- functionality: 'basic'
-
- # Project branches
- stream:
- - fluorine:
- branch: 'master'
- - oxygen:
- branch: 'stable/oxygen'
-
- install:
- - all:
- scope: 'all'
-
- # Features to install
- install-features: 'odl-restconf,odl-usecplugin-aaa,odl-usecplugin-openflow'
-
- # Robot custom options
- robot-options: ''
---
+- project:
+ name: usecplugin-neon
+ jobs:
+ - odl-maven-jobs
+
+ stream: neon
+ project: 'usecplugin'
+ project-name: 'usecplugin'
+ branch: 'master'
+ mvn-settings: 'usecplugin-settings'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'openflowplugin-merge-{stream}'
+ email-upstream: '[usecplugin] [openflowplugin]'
+
+ # Used by the release job
+ staging-profile-id: a69902281e037
+
- project:
name: usecplugin-fluorine
jobs:
stream: fluorine
project: 'usecplugin'
project-name: 'usecplugin'
- branch: 'master'
+ branch: 'stable/fluorine'
mvn-settings: 'usecplugin-settings'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'openflowplugin-merge-{stream}'
+++ /dev/null
----
-- project:
- name: yang-push-fluorine
- jobs:
- - odl-maven-jobs
-
- stream: fluorine
- project: 'yang-push'
- project-name: 'yang-push'
- branch: 'master'
- mvn-settings: 'yang-push-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[yang-push]'
-
- # Used by the release job
- staging-profile-id: a69aae2832869
-
-- project:
- name: yang-push-oxygen
- jobs:
- - '{project-name}-distribution-check-{stream}'
- - odl-maven-jobs
-
- stream: oxygen
- project: 'yang-push'
- project-name: 'yang-push'
- branch: 'stable/oxygen'
- mvn-settings: 'yang-push-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: ''
- email-upstream: '[yang-push]'
-
- # Used by the release job
- staging-profile-id: a69aae2832869
-
-- project:
- name: yang-push-sonar
- jobs:
- - gerrit-maven-sonar
- project: 'yang-push'
- project-name: 'yang-push'
- branch: 'master'
- mvn-settings: 'yang-push-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
-- view:
- name: yang-push
- description: 'List of yang-push jobs'
- regex: '^yang-push-.*'
- <<: *releng_view_common
+++ /dev/null
----
-- project:
- name: yangide-releng
- jobs:
- - '{project-name}-publish-p2repo'
- - '{project-name}-release-java'
-
- project: yangide
- project-name: 'yangide'
- stage-id: 'fba306956f98'
- mvn-settings: 'yangide-settings'
+++ /dev/null
----
-- project:
- name: yangide-fluorine
- jobs:
- - odl-maven-jobs
-
- stream: fluorine
- project: 'yangide'
- project-name: 'yangide'
- branch: 'master'
- mvn-settings: 'yangide-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
- email-upstream: '[yangide] [odlparent] [yangtools]'
-
- # Used by the release job
- staging-profile-id: fba306956f98
-
-- project:
- name: yangide-oxygen
- jobs:
- - odl-maven-jobs
-
- stream: oxygen
- project: 'yangide'
- project-name: 'yangide'
- branch: 'stable/oxygen'
- mvn-settings: 'yangide-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream}'
- email-upstream: '[yangide] [odlparent] [yangtools]'
-
- # Used by the release job
- staging-profile-id: fba306956f98
-
-- project:
- name: yangide-sonar
- jobs:
- - gerrit-maven-sonar
-
- project: 'yangide'
- project-name: 'yangide'
- branch: 'master'
- mvn-settings: 'yangide-settings'
- mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-
-- view:
- name: yangide
- description: 'List of yangide jobs'
- regex: '^yangide-.*'
- <<: *releng_view_common
# Project branches.
stream:
- - fluorine:
+ - neon:
branch: 'master'
+ - fluorine:
+ branch: 'stable/fluorine'
- oxygen:
branch: 'stable/oxygen'
project: 'yangtools'
stream:
- - fluorine:
+ - neon:
branch: 'master'
os-branch: 'queens'
+ - fluorine:
+ branch: 'stable/fluorine'
+ os-branch: 'queens'
- oxygen:
branch: 'stable/oxygen'
os-branch: 'queens'
- genius:
csit-list: >
- genius-csit-1node-gate-all-{stream}
+ genius-csit-1node-gate-only-{stream}
mvn-settings: 'yangtools-settings'
mvn-opts: '-Xmx1024m'
+ sign-artifacts: true
dependencies: ''
email-upstream: '[yangtools]'
mvn-settings: 'yangtools-settings'
mvn-opts: '-Xmx1024m'
+ sign-artifacts: true
dependencies: ''
email-upstream: '[yangtools]'
mvn-settings: 'yangtools-settings'
mvn-opts: '-Xmx1024m'
+ sign-artifacts: true
dependencies: ''
email-upstream: '[yangtools]'
- project:
name: yangtools-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: 'yangtools'
project-name: 'yangtools'
--- /dev/null
+---
+heat_template_version: 2016-04-08
+
+parameters:
+ job_name:
+ type: string
+ description: Name of job running this template
+ silo:
+ type: string
+ default: vm
+ description: |
+ String to identify a Jenkins Master
+
+ Useful in scenarios where multiple Jenkins Masters might be
+ creating VMs in the same cloud to uniquely distinguish them.
+
+ TODO we should move to using tags once OpenStack Ocata which is
+ available to us with support for server tags properties.
+ index:
+ type: number
+ group:
+ type: number
+ default: "0"
+ vm_flavor:
+ type: string
+ default: v1-standard-4
+ description: OpenStack Flavor to use
+ vm_image:
+ type: string
+ description: VM Image to spin up
+ vm_network:
+ type: string
+ description: VM network
+
+resources:
+ instance:
+ type: "OS::Nova::Server"
+ properties:
+ image: {get_param: vm_image}
+ flavor: {get_param: vm_flavor}
+ name:
+ str_replace:
+ template: SILO-JOB_NAME-GROUP-VM_TYPE-INDEX
+ params:
+ "SILO": {get_param: silo}
+ "JOB_NAME": {get_param: job_name}
+ "VM_TYPE":
+ str_split:
+ - ' - '
+ - {get_param: vm_image}
+ - 2
+ "GROUP": {get_param: group}
+ "INDEX": {get_param: index}
+ networks:
+ - network: {get_param: vm_network}
--- /dev/null
+---
+heat_template_version: 2016-04-08
+
+parameters:
+ job_name:
+ type: string
+ description: Name of job running this template
+ silo:
+ type: string
+ description: Jenkins Silo job is running in (typically releng|sandbox)
+ vm_0_count:
+ type: number
+ description: Number of VMs for 1st VM type
+ vm_0_flavor:
+ type: string
+ default: v1-standard-1
+ description: Flavor to run instance on for 1st VM type
+ vm_0_image:
+ type: string
+ description: Image to run instance on for 1st VM type
+ vm_1_count:
+ type: number
+ description: Number of VMs for 2nd VM type
+ vm_1_flavor:
+ type: string
+ default: v1-standard-1
+ description: Flavor to run instance on for 2nd VM type
+ vm_1_image:
+ type: string
+ description: Image to run instance on for 2nd VM type
+ vm_2_count:
+ type: number
+ description: Number of VMs for 3rd VM type
+ vm_2_flavor:
+ type: string
+ default: v1-standard-1
+ description: Flavor to run instance on for 3rd VM type
+ vm_2_image:
+ type: string
+ description: Image to run instance on for 3rd VM type
+
+resources:
+ 192_network:
+ type: OS::Neutron::Net
+ properties:
+ name:
+ str_replace:
+ template: SILO-JOB_NAME-NET
+ params:
+ "SILO": {get_param: silo}
+ "JOB_NAME": {get_param: job_name}
+ "NET": 'APEX_192_network'
+ port_security_enabled: false
+
+ 192_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name:
+ str_replace:
+ template: SILO-JOB_NAME-SUBNET
+ params:
+ "SILO": {get_param: silo}
+ "JOB_NAME": {get_param: job_name}
+ "SUBNET": 'APEX_192_subnet'
+ network_id: {get_resource: 192_network}
+ cidr: 192.0.2.0/24
+ gateway_ip: 192.0.2.1
+ allocation_pools:
+ - start: 192.0.2.51
+ end: 192.0.2.99
+
+ vm_0_group:
+ type: "OS::Heat::ResourceGroup"
+ properties:
+ count: {get_param: vm_0_count}
+ resource_def:
+ type: apex-server.yaml
+ properties:
+ job_name: {get_param: job_name}
+ silo: {get_param: silo}
+ index: "%index%"
+ group: "0"
+ vm_flavor: {get_param: vm_0_flavor}
+ vm_image: {get_param: vm_0_image}
+ vm_network: {get_resource: 192_network}
+
+ vm_1_group:
+ type: "OS::Heat::ResourceGroup"
+ properties:
+ count: {get_param: vm_1_count}
+ resource_def:
+ type: apex-server.yaml
+ properties:
+ job_name: {get_param: job_name}
+ silo: {get_param: silo}
+ index: "%index%"
+ group: "1"
+ vm_flavor: {get_param: vm_1_flavor}
+ vm_image: {get_param: vm_1_image}
+ vm_network: {get_resource: 192_network}
+
+ vm_2_group:
+ type: "OS::Heat::ResourceGroup"
+ properties:
+ count: {get_param: vm_2_count}
+ resource_def:
+ type: apex-server.yaml
+ properties:
+ job_name: {get_param: job_name}
+ silo: {get_param: silo}
+ index: "%index%"
+ group: "2"
+ vm_flavor: {get_param: vm_2_flavor}
+ vm_image: {get_param: vm_2_image}
+ vm_network: {get_resource: 192_network}
do
echo "Waiting until devvexx.opendaylight.org is resolvable..."
done
- git clone git://devvexx.opendaylight.org/mirror/releng/builder /builder
- /builder/jenkins-scripts/jenkins-init-script.sh
+ git clone --recurse-submodules git://devvexx.opendaylight.org/mirror/releng/builder /opt/ciman
+ /opt/ciman/jjb/global-jjb/jenkins-init-scripts/init.sh
outputs:
ip:
-Subproject commit e0319f3a5796486e27933827cb2b0c075c04dd70
+Subproject commit ec01814071eaea55ea7b025308b58d3923897eb6
# force any errors to cause the script and job to end in failure
set -xeu -o pipefail
-# add in a test copr repo
-wget http://copr.fedoraproject.org/coprs/tykeal/odl-updates/repo/epel-7/tykeal-odl-updates-epel-7.repo -O /etc/yum.repos.d/tykeal-odl-updates-epel-7.repo
# Install xpath
-yum install -y perl-XML-XPath python-pip python-six
+yum install -y perl-XML-XPath python-pip
# install crudini command line tool for editing config files
yum install -y crudini
# force any errors to cause the script and job to end in failure
set -xeu -o pipefail
-# add in a test copr repo
-wget http://copr.fedoraproject.org/coprs/tykeal/odl-updates/repo/epel-7/tykeal-odl-updates-epel-7.repo -O /etc/yum.repos.d/tykeal-odl-updates-epel-7.repo
# Install xpath
-yum install -y perl-XML-XPath python-pip python-six
+yum install -y perl-XML-XPath python-pip
# install crudini command line tool for editing config files
yum install -y crudini
elastic_search_version: 1.7.5
hbase_checksum: sha256:9cd990939403fd43dfb665b14603e3772ca3ed813a6e21a81de1778583b35eb8
hbase_version: 0.94.27
+ openjdk10_checksum: 'sha256:f3b26abc9990a0b8929781310e14a339a7542adfd6596afb842fa0dd7e3848b2'
+ openjdk10_url: https://download.java.net/java/GA/jdk10/{{openjdk10_version}}/19aef61b38124481863b1413dce1855f/13/openjdk-{{openjdk10_version}}_linux-x64_bin.tar.gz
+ openjdk10_version: 10.0.2
+ openjdk11_checksum: 'sha256:3784cfc4670f0d4c5482604c7c513beb1a92b005f569df9bf100e8bef6610f2e'
+ openjdk11_url: https://download.java.net/java/ga/jdk11/openjdk-{{openjdk11_version}}_linux-x64_bin.tar.gz
+ openjdk11_version: 11
pre_tasks:
- include_role: name=lfit.system-update
- lfit.mono-install
tasks:
+ - name: 'Install OpenJDK {{openjdk10_version}}'
+ block:
+ - name: 'Fetch OpenJDK {{openjdk10_version}} to /tmp/jdk-{{openjdk10_version}}_linux-x64_bin.tar.gz'
+ get_url:
+ url: "{{openjdk10_url}}"
+ dest: '/tmp/jdk-{{openjdk10_version}}_linux-x64_bin.tar.gz'
+ checksum: '{{openjdk10_checksum}}'
+ - name: 'Untar OpenJDK {{openjdk10_version}} in /opt/'
+ unarchive:
+ src: '/tmp/jdk-{{openjdk10_version}}_linux-x64_bin.tar.gz'
+ dest: /opt/
+ mode: 0755
+ remote_src: true
+ become: true
+ - name: 'Setup Java master and slave links for OpenJDK {{openjdk10_version}}'
+ command: 'alternatives --install "/usr/bin/java" "java" "/opt/jdk-{{openjdk10_version}}/bin/java" 10 \
+ --slave "/usr/bin/jar" "jar" "/opt/jdk-{{openjdk10_version}}/bin/jar" \
+ --slave "/usr/bin/jarsigner" "jarsigner" "/opt/jdk-{{openjdk10_version}}/bin/jarsigner" \
+ --slave "/usr/bin/javac" "javac" "/opt/jdk-{{openjdk10_version}}/bin/javac" \
+ --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk-{{openjdk10_version}}/bin/javadoc" \
+ --slave "/usr/bin/javah" "javah" "/opt/jdk-{{openjdk10_version}}/bin/javah" \
+ --slave "/usr/bin/javap" "javap" "/opt/jdk-{{openjdk10_version}}/bin/javap" \
+ --slave "/usr/bin/javaws" "javaws" "/opt/jdk-{{openjdk10_version}}/bin/javaws"'
+ become: true
+ - name: 'Install OpenJDK {{openjdk11_version}}'
+ block:
+ - name: 'Fetch OpenJDK 11 to /tmp/jdk-{{openjdk11_version}}_linux-x64_bin.tar.gz'
+ get_url:
+ url: "{{openjdk11_url}}"
+ dest: '/tmp/jdk-{{openjdk11_version}}_linux-x64_bin.tar.gz'
+ checksum: '{{openjdk11_checksum}}'
+ - name: 'Untar OpenJDK {{openjdk11_version}} in /opt/'
+ unarchive:
+ src: '/tmp/jdk-{{openjdk11_version}}_linux-x64_bin.tar.gz'
+ dest: /opt/
+ mode: 0755
+ remote_src: true
+ become: true
+ - name: 'Setup Java master and slave links for OpenJDK {{openjdk11_version}}'
+ command: 'alternatives --install "/usr/bin/java" "java" "/opt/jdk-{{openjdk11_version}}/bin/java" 10 \
+ --slave "/usr/bin/jar" "jar" "/opt/jdk-{{openjdk11_version}}/bin/jar" \
+ --slave "/usr/bin/jarsigner" "jarsigner" "/opt/jdk-{{openjdk11_version}}/bin/jarsigner" \
+ --slave "/usr/bin/javac" "javac" "/opt/jdk-{{openjdk11_version}}/bin/javac" \
+ --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk-{{openjdk11_version}}/bin/javadoc" \
+ --slave "/usr/bin/javah" "javah" "/opt/jdk-{{openjdk11_version}}/bin/javah" \
+ --slave "/usr/bin/javap" "javap" "/opt/jdk-{{openjdk11_version}}/bin/javap" \
+ --slave "/usr/bin/javaws" "javaws" "/opt/jdk-{{openjdk11_version}}/bin/javaws"'
+ become: true
- name: Install Cassandra Server
block:
- name: 'Fetch Cassandra Server to /tmp/apache-cassandra-{{cassandra_version}}-bin.tar.gz'