ignore = .git/**,
.tox/**,
jjb/global-jjb/**,
- jjb/integration/**,
jenkins-scripts/*-local-env.sh
shell = bash
indent_size = 4
Following are the list of published images available to be used with Jenkins jobs.
+* ZZCI - CentOS 7 - builder - 20180109-0417
* ZZCI - CentOS 7 - devstack - 20171208-1648
* ZZCI - CentOS 7 - devstack-ocata - 20171208-1649
* ZZCI - CentOS 7 - devstack-pike - 20171208-1649
* ZZCI - CentOS 7 - docker - 20171209-0317
+* ZZCI - CentOS 7 - docker - 20180109-0346
* ZZCI - CentOS 7 - java-builder - 20171206-1842
* ZZCI - CentOS 7 - java-builder - 20171209-0032
* ZZCI - CentOS 7 - robot - 20171207-1911
- CPUs
- Memory
- * - v1-performance-1
+ * - v2-standard-1
- 1
- 4
- * - v1-performance-2
+ * - v2-standard-2
- 2
- 8
- * - v1-performance-4
+ * - v2-standard-4
- 4
- 16
- * - v1-performance-8
+ * - v2-standard-8
- 8
- 32
- * - v1-performance-16
+ * - v2-standard-16
- 16
- 64
+ * - v2-highcpu-1
+ - 1
+ - 1
+
+ * - v2-highcpu-2
+ - 2
+ - 2
+
+ * - v2-highcpu-4
+ - 4
+ - 4
+
+ * - v2-highcpu-8
+ - 8
+ - 8
+
+ * - v2-highcpu-16
+ - 16
+ - 16
+
+ * - v2-highcpu-32
+ - 32
+ - 32
+
Pool: ODLVEX
^^^^^^^^^^^^
[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 :
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: oxygen
project: 'aaa'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: nitrogen
project: 'aaa'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: carbon
project: 'aaa'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'alto'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'alto'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'alto'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'atrium'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'atrium'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'atrium'
name: autorelease-projects
jobs:
- 'autorelease-generate-release-notes-{stream}'
- - 'autorelease-release-{stream}'
+ - 'autorelease-release-{stream}':
+ build-node: centos7-autorelease-8c-16g
- 'autorelease-update-validate-jobs-{stream}'
- 'autorelease-version-bump-{stream}'
- - '{project-name}-validate-autorelease-{stream}':
- build-node: centos7-builder-2c-8g
+ - '{project-name}-validate-autorelease-{stream}'
- gerrit-tox-verify
# todo: After Carbon EOL remove next-release-tag and directy pass
# Defaults #
############
+ build-node: centos7-autorelease-8c-16g
java-version: openjdk8
mvn-version: mvn33
extra-mvn-opts: ''
#####################
project-type: freestyle
- node: centos7-builder-4c-16g
+ node: '{build-node}'
jdk: '{java-version}'
cron: 'H 0 * * *'
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
- maven-target:
maven-version: mvn33
pom: pom.xml
# This script parses the console log to discover which project has caused a
# build failure and notify the project as appropriate.
+echo "---> notify-build-failure.sh"
+
NEWLINE=$'\n'
RELEASE_EMAIL="release@lists.opendaylight.org"
ARCHIVES_DIR="$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER"
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'bgpcep'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'bgpcep'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'bgpcep'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'bier'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'bier'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'bier'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'capwap'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'capwap'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'capwap'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'cardinal'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'cardinal'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'cardinal'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'centinel'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'centinel'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'centinel'
+++ /dev/null
----
-- project:
- name: coe-csit-openstack-integration
- jobs:
- - '{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}'
-
- project: 'coe'
-
- topology:
- - 1node:
- openstack_system_count: 3
- odl_system_count: 1
- enable-haproxy: 'no'
- install-features: 'odl-netvirt-openstack'
- - 3node:
- openstack_system_count: 4
- odl_system_count: 3
- enable-haproxy: 'yes'
- install-features: 'odl-jolokia,odl-netvirt-openstack'
-
- testplan: '{project}-{topology}-openstack.txt'
-
- functionality: 'kubernetes'
-
- stream:
- - oxygen:
- branch: 'master'
- - nitrogen:
- branch: 'stable/nitrogen'
-
- openstack:
- - ocata:
- openstack-branch: 'stable/ocata'
- odl-ml2-branch: 'stable/ocata'
- odl-ml2-driver-version: 'v2'
- openstack_system_image: '{openstack_system_image_ocata}'
-
- create-initial-networks: 'True'
-
- enable-openstack-plugins: 'networking-odl,kuryr-kubernetes,neutron-lbaas'
-
- enable-openstack-services: >
- legacy_etcd,docker,q-lbaasv2,kubernetes-api,
- kubernetes-controller-manager,kubernetes-scheduler,kubelet,kuryr-kubernetes
-
- disable-openstack-services: 'etcd3'
-
- lbaas-service-provider: >
- 'LOADBALANCERV2:opendaylight:networking_odl.lbaas.driver_v2.OpenDaylightLbaasDriverV2:default'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'coe'
project-name: 'coe'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'coe'
project-name: 'coe'
name: coe-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'coe'
project-name: 'coe'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: oxygen
project: 'controller'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: nitrogen
project: 'controller'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: carbon
project: 'controller'
--- /dev/null
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2017 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+# Allows folks to copy sandbox logs over to releng for longer storage
+#
+# In some cases folks would like to save sandbox logs for a longer period of
+# time in order to troubleshoot difficult tasks. This script can be used to
+# trigger Jenkins production to copy specific logs over for longer storage.
+#
+# This is triggered via Gerrit comment.
+# Usage: copy-logs: JOB_NAME/BUILD_NUMBER
+echo "---> copy-sandbox-logs.sh"
+
+build_path="$(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep 'copy-logs:' | awk -F: '{print $2}' | tr -d '[:space:]')"
+fetch_url="https://logs.opendaylight.org/sandbox/vex-yul-odl-jenkins-2/$build_path"
+
+COPY_DIR="$WORKSPACE/archives"
+mkdir -p "$COPY_DIR"
+pushd "$COPY_DIR" || exit
+
+# Ensure that the repo_url has a trailing slash as wget needs it to work
+case "$fetch_url" in
+ */)
+ ;;
+ *)
+ fetch_url="$fetch_url/"
+ ;;
+esac
+
+echo "Fetching artifacts from $fetch_url..."
+wget -nv --recursive --execute robots=off --no-parent \
+ --no-host-directories --cut-dirs=2 --level=15 \
+ "$fetch_url"
+
+echo "Removing files that do not need to be cloned..."
+mapfile -t remove_files < <(find . -type f -name "*index.html*")
+for f in "${remove_files[@]}"; do
+ rm "$f"
+done
+popd || exit
name: coretutorials-oxygen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'coretutorials'
dependencies: ''
email-upstream: '[coretutorials]'
archive-artifacts: ''
+ build-timeout: 120
# Used by the release job
staging-profile-id: 96cd299563ec6
name: coretutorials-nitrogen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'coretutorials'
dependencies: ''
email-upstream: '[coretutorials]'
archive-artifacts: ''
+ build-timeout: 120
# Used by the release job
staging-profile-id: 96cd299563ec6
name: coretutorials-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'coretutorials'
dependencies: ''
email-upstream: '[coretutorials]'
archive-artifacts: ''
+ build-timeout: 120
# Used by the release job
staging-profile-id: 96cd299563ec6
mvn-settings: 'coretutorials-settings'
mvn-goals: 'clean install'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ build-timeout: 120
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'daexim'
project-name: 'daexim'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'daexim'
project-name: 'daexim'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'didm'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'didm'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'didm'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'dlux'
- mvn33:
mvn-version: 'mvn33'
mvn-settings: 'dlux-settings'
- mvn-goals: 'clean install'
+ mvn-goals: 'clean install -e'
mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
dependencies: 'odlparent-merge-{stream}'
email-upstream: '[dlux] [odlparent]'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'dlux'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'dlux'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'dluxapps'
project-name: 'dluxapps'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'dluxapps'
project-name: 'dluxapps'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'dluxapps'
project-name: 'dluxapps'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'eman'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'eman'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'eman'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'faas'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'faas'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'faas'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'federation'
project-name: 'federation'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'federation'
project-name: 'federation'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'federation'
project-name: 'federation'
- genius:
csit-list: >
genius-csit-1node-gate-all-{stream}
+
+ - cluster:
+ csit-list: >
+ genius-csit-3node-gate-all-{stream}
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'genius'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'genius'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'genius'
-Subproject commit 562c3373545caf7c69524adfec4d3cba7e38c0c5
+Subproject commit a5a5237ab810ab8ad4ff61731f9f8bdc1e1e342e
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'groupbasedpolicy'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'groupbasedpolicy'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'groupbasedpolicy'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'honeycomb/vbd'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'honeycomb/vbd'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'honeycomb/vbd'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'infrautils'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'infrautils'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'infrautils'
--- /dev/null
+#!/bin/bash
+
+# Basic controller configuration settings
+export MAVENCONF=/tmp/${BUNDLEFOLDER}/etc/org.ops4j.pax.url.mvn.cfg
+export FEATURESCONF=/tmp/${BUNDLEFOLDER}/etc/org.apache.karaf.features.cfg
+export CUSTOMPROP=/tmp/${BUNDLEFOLDER}/etc/custom.properties
+export LOGCONF=/tmp/${BUNDLEFOLDER}/etc/org.ops4j.pax.logging.cfg
+export MEMCONF=/tmp/${BUNDLEFOLDER}/bin/setenv
+export CONTROLLERMEM="2048m"
+
+# Cluster specific configuration settings
+export AKKACONF=/tmp/${BUNDLEFOLDER}/configuration/initial/akka.conf
+export MODULESCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/modules.conf
+export MODULESHARDSCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/module-shards.conf
+
+# Setup JAVA_HOME and MAX_MEM Value in ODL startup config file
+function set_java_vars() {
+
+ echo "Configure java home and max memory..."
+ sed -ie 's%^# export JAVA_HOME%export JAVA_HOME="\${JAVA_HOME:-${JAVA_HOME}}"%g' ${MEMCONF}
+ sed -ie 's/JAVA_MAX_MEM="2048m"/JAVA_MAX_MEM="${CONTROLLERMEM}"/g' ${MEMCONF}
+ cat ${MEMCONF}
+
+ echo "Set Java version"
+ sudo /usr/sbin/alternatives --install /usr/bin/java java ${JAVA_HOME}/bin/java 1
+ sudo /usr/sbin/alternatives --set java ${JAVA_HOME}/bin/java
+ echo "JDK default version ..."
+ java -version
+
+ echo "Set JAVA_HOME"
+ export JAVA_HOME="${JAVA_HOME}"
+ # shellcheck disable=SC2037
+ JAVA_RESOLVED=\`readlink -e "\${JAVA_HOME}/bin/java"\`
+ echo "Java binary pointed at by JAVA_HOME: \${JAVA_RESOLVED}"
+} # set_java_vars()
echo "Configuring the startup features..."
FEATURESCONF="${WORKSPACE}/${BUNDLEFOLDER}/etc/org.apache.karaf.features.cfg"
-# Add test feature repo if Karaf 4.
-sed -ie "s%mvn:org.opendaylight.integration/features-index/${BUNDLEVERSION}/xml/features%mvn:org.opendaylight.integration/features-index/${BUNDLEVERSION}/xml/features,mvn:org.opendaylight.integration/features-test/${BUNDLEVERSION}/xml/features%g" "${FEATURESCONF}"
-# Add test feature repo if Karaf 3.
-sed -ie "s%mvn:org.opendaylight.integration/features-integration-index/${BUNDLEVERSION}/xml/features%mvn:org.opendaylight.integration/features-integration-index/${BUNDLEVERSION}/xml/features,mvn:org.opendaylight.integration/features-integration-test/${BUNDLEVERSION}/xml/features%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}/${BUNDLEVERSION}/xml/features,%g" ${FEATURESCONF}
+
# Add actual boot features.
sed -ie "s/\(featuresBoot=\|featuresBoot =\)/featuresBoot = ${ACTUALFEATURES},/g" "${FEATURESCONF}"
cat "${FEATURESCONF}"
echo "redirected karaf console output to karaf_console.log"
export KARAF_REDIRECT="${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf_console.log"
+mkdir -p ${WORKSPACE}/${BUNDLEFOLDER}/data/log
if [ "${JDKVERSION}" == 'openjdk8' ]; then
echo "Setting the JRE Version to 8"
echo "Redirecting karaf console output to karaf_console.log"
export KARAF_REDIRECT="${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf_console.log"
+mkdir -p ${WORKSPACE}/${BUNDLEFOLDER}/data/log
echo "Starting controller..."
${WORKSPACE}/${BUNDLEFOLDER}/bin/start
ps axf | grep karaf | grep -v grep | awk '{print "kill -9 " $1}' | sh
echo "Bug 4628: Detecting misplaced config files"
-pushd "${WORKSPACE}/${BUNDLEFOLDER}"
+pushd "${WORKSPACE}/${BUNDLEFOLDER}" || exit
XMLS_FOUND="$(echo *.xml)"
-popd
+popd || exit
if [ "$XMLS_FOUND" != "*.xml" ]; then
echo "Bug 4628 confirmed."
## TODO: Uncomment the following when ODL is fixed, to guard against regression.
echo "Configuring the startup features..."
FEATURESCONF="${WORKSPACE}/${BUNDLEFOLDER}/etc/org.apache.karaf.features.cfg"
-# Add test feature repo if Karaf 4.
-sed -ie "s%mvn:org.opendaylight.integration/features-index/${BUNDLEVERSION}/xml/features%mvn:org.opendaylight.integration/features-index/${BUNDLEVERSION}/xml/features,mvn:org.opendaylight.integration/features-test/${BUNDLEVERSION}/xml/features%g" "${FEATURESCONF}"
-# Add test feature repo if Karaf 3.
-sed -ie "s%mvn:org.opendaylight.integration/features-integration-index/${BUNDLEVERSION}/xml/features%mvn:org.opendaylight.integration/features-integration-index/${BUNDLEVERSION}/xml/features,mvn:org.opendaylight.integration/features-integration-test/${BUNDLEVERSION}/xml/features%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}/${BUNDLEVERSION}/xml/features,%g" ${FEATURESCONF}
+
# Feature is instaled later.
cat "${FEATURESCONF}"
echo "Redirecting karaf console output to karaf_console.log"
export KARAF_REDIRECT="${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf_console.log"
+mkdir -p ${WORKSPACE}/${BUNDLEFOLDER}/data/log
echo "Starting controller..."
${WORKSPACE}/${BUNDLEFOLDER}/bin/start
unzip -q "${BUNDLE}"
echo "Configuring the startup features..."
-FEATURESCONF=${WORKSPACE}/${BUNDLEFOLDER}/etc/org.apache.karaf.features.cfg
-# Add test feature repo if Karaf 4.
-sed -ie "s%mvn:org.opendaylight.integration/features-index/${BUNDLEVERSION}/xml/features%mvn:org.opendaylight.integration/features-index/${BUNDLEVERSION}/xml/features,mvn:org.opendaylight.integration/features-test/${BUNDLEVERSION}/xml/features%g" "${FEATURESCONF}"
-# Add test feature repo if Karaf 3.
-sed -ie "s%mvn:org.opendaylight.integration/features-integration-index/${BUNDLEVERSION}/xml/features%mvn:org.opendaylight.integration/features-integration-index/${BUNDLEVERSION}/xml/features,mvn:org.opendaylight.integration/features-integration-test/${BUNDLEVERSION}/xml/features%g" "${FEATURESCONF}"
+FEATURESCONF="${WORKSPACE}/${BUNDLEFOLDER}/etc/org.apache.karaf.features.cfg"
+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}/${BUNDLEVERSION}/xml/features,%g" ${FEATURESCONF}
+
# Add actual boot features.
sed -ie "s/\(featuresBoot=\|featuresBoot =\)/featuresBoot = ${ACTUALFEATURES},/g" "${FEATURESCONF}"
cat "${FEATURESCONF}"
echo "Redirecting karaf console output to karaf_console.log"
export KARAF_REDIRECT="${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf_console.log"
+mkdir -p ${WORKSPACE}/${BUNDLEFOLDER}/data/log
echo "Starting controller..."
${WORKSPACE}/${BUNDLEFOLDER}/bin/start
ps axf | grep karaf | grep -v grep | awk '{print "kill -9 " $1}' | sh
echo "Bug 4628: Detecting misplaced config files"
-pushd "${WORKSPACE}/${BUNDLEFOLDER}"
+pushd "${WORKSPACE}/${BUNDLEFOLDER}" || exit
XMLS_FOUND=`echo *.xml`
-popd
+popd || exit
if [ "$XMLS_FOUND" != "*.xml" ]; then
echo "Bug 4628 confirmed."
## TODO: Uncomment the following when ODL is fixed, to guard against regression.
- 'distribution-offline-{stream}'
- 'distribution-check-{stream}'
- gerrit-maven-clm
+ - gerrit-maven-verify-dependencies
- gerrit-tox-verify
project: integration/distribution
echo "## Configure Cluster and Start ##"
echo "#################################################"
-AKKACONF=/tmp/${BUNDLEFOLDER}/configuration/initial/akka.conf
-MODULESCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/modules.conf
-MODULESHARDSCONF=/tmp/${BUNDLEFOLDER}/configuration/initial/module-shards.conf
-MAVENCONF=/tmp/${BUNDLEFOLDER}/etc/org.ops4j.pax.url.mvn.cfg
-FEATURESCONF=/tmp/${BUNDLEFOLDER}/etc/org.apache.karaf.features.cfg
-CUSTOMPROP=/tmp/${BUNDLEFOLDER}/etc/custom.properties
-LOGCONF=/tmp/${BUNDLEFOLDER}/etc/org.ops4j.pax.logging.cfg
-MEMCONF=/tmp/${BUNDLEFOLDER}/bin/setenv
-CONTROLLERMEM="2048m"
-
-
if [ ${CONTROLLERSCOPE} == 'all' ]; then
ACTUALFEATURES="odl-integration-compatible-with-all,${CONTROLLERFEATURES}"
- CONTROLLERMEM="3072m"
+ export CONTROLLERMEM="3072m"
else
ACTUALFEATURES="odl-infrautils-ready,${CONTROLLERFEATURES}"
fi
echo "Configuring the startup features..."
sed -ie "s/\(featuresBoot=\|featuresBoot =\)/featuresBoot = ${ACTUALFEATURES},/g" ${FEATURESCONF}
-sed -ie "s%mvn:org.opendaylight.integration/features-integration-index/${BUNDLEVERSION}/xml/features%mvn:org.opendaylight.integration/features-integration-index/${BUNDLEVERSION}/xml/features,mvn:org.opendaylight.integration/features-integration-test/${BUNDLEVERSION}/xml/features,mvn:org.apache.karaf.decanter/apache-karaf-decanter/1.0.0/xml/features%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}/${BUNDLEVERSION}/xml/features,mvn:org.apache.karaf.decanter/apache-karaf-decanter/1.0.0/xml/features,%g" ${FEATURESCONF}
cat ${FEATURESCONF}
echo "Configuring the log..."
cat ${CUSTOMPROP}
fi
-echo "Configure java home and max memory..."
-sed -ie 's%^# export JAVA_HOME%export JAVA_HOME="\${JAVA_HOME:-${JAVA_HOME}}"%g' ${MEMCONF}
-sed -ie 's/JAVA_MAX_MEM="2048m"/JAVA_MAX_MEM="${CONTROLLERMEM}"/g' ${MEMCONF}
-cat ${MEMCONF}
-
-echo "Set Java version"
-sudo /usr/sbin/alternatives --install /usr/bin/java java ${JAVA_HOME}/bin/java 1
-sudo /usr/sbin/alternatives --set java ${JAVA_HOME}/bin/java
-echo "JDK default version ..."
-java -version
-
-echo "Set JAVA_HOME"
-export JAVA_HOME="${JAVA_HOME}"
-# Did you know that in HERE documents, single quote is an ordinary character, but backticks are still executing?
-JAVA_RESOLVED=\`readlink -e "\${JAVA_HOME}/bin/java"\`
-echo "Java binary pointed at by JAVA_HOME: \${JAVA_RESOLVED}"
+set_java_vars
# Copy shard file if exists
if [ -f /tmp/custom_shard_config.txt ]; then
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
# shellcheck source=${ROBOT_VENV}/bin/activate disable=SC1091
source ${ROBOT_VENV}/bin/activate
-MAVENCONF=/tmp/${BUNDLEFOLDER}/etc/org.ops4j.pax.url.mvn.cfg
-FEATURESCONF=/tmp/${BUNDLEFOLDER}/etc/org.apache.karaf.features.cfg
-CUSTOMPROP=/tmp/${BUNDLEFOLDER}/etc/custom.properties
-LOGCONF=/tmp/${BUNDLEFOLDER}/etc/org.ops4j.pax.logging.cfg
-MEMCONF=/tmp/${BUNDLEFOLDER}/bin/setenv
-CONTROLLERMEM="2048m"
if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
echo "Configure cluster"
if [ ${CONTROLLERSCOPE} == 'all' ]; then
ACTUALFEATURES="odl-integration-compatible-with-all,${CONTROLLERFEATURES}"
- CONTROLLERMEM="3072m"
+ export CONTROLLERMEM="3072m"
COOLDOWN_PERIOD="180"
else
ACTUALFEATURES="odl-infrautils-ready,${CONTROLLERFEATURES}"
# 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}"
if [ -f "${WORKSPACE}/test/csit/scriptplans/${TESTPLAN}" ]; then
echo "scriptplan exists!!!"
sed -ie "s%org.ops4j.pax.url.mvn.repositories=%org.ops4j.pax.url.mvn.repositories=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}
+if [[ "$USEFEATURESBOOT" == "True" ]]; then
+ echo "Configuring the startup features..."
+ sed -ie "s/\(featuresBoot=\|featuresBoot =\)/featuresBoot = ${ACTUALFEATURES},/g" ${FEATURESCONF}
+fi
-FEATURE_INDEX_STRING="features-integration-index"
FEATURE_TEST_STRING="features-integration-test"
if [[ "$KARAF_VERSION" == "karaf4" ]]; then
- FEATURE_INDEX_STRING="features-index"
FEATURE_TEST_STRING="features-test"
fi
-sed -ie "s%mvn:org.opendaylight.integration/\${FEATURE_INDEX_STRING}/${BUNDLEVERSION}/xml/features%mvn:org.opendaylight.integration/\${FEATURE_INDEX_STRING}/${BUNDLEVERSION}/xml/features,mvn:org.opendaylight.integration/\${FEATURE_TEST_STRING}/${BUNDLEVERSION}/xml/features,mvn:org.apache.karaf.decanter/apache-karaf-decanter/1.0.0/xml/features%g" ${FEATURESCONF}
+sed -ie "s%\(featuresRepositories=\|featuresRepositories =\)%featuresRepositories = mvn:org.opendaylight.integration/\${FEATURE_TEST_STRING}/${BUNDLEVERSION}/xml/features,mvn:org.apache.karaf.decanter/apache-karaf-decanter/1.0.0/xml/features,%g" ${FEATURESCONF}
cat ${FEATURESCONF}
if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
fi
cat ${LOGCONF}
-echo "Configure java home and max memory..."
-sed -ie 's%^# export JAVA_HOME%export JAVA_HOME="\${JAVA_HOME:-${JAVA_HOME}}"%g' ${MEMCONF}
-sed -ie 's/JAVA_MAX_MEM="2048m"/JAVA_MAX_MEM="${CONTROLLERMEM}"/g' ${MEMCONF}
-cat ${MEMCONF}
+set_java_vars
echo "Listing all open ports on controller system..."
netstat -pnatu
-echo "Set Java version"
-sudo /usr/sbin/alternatives --install /usr/bin/java java ${JAVA_HOME}/bin/java 1
-sudo /usr/sbin/alternatives --set java ${JAVA_HOME}/bin/java
-echo "JDK default version..."
-java -version
-
-echo "Set JAVA_HOME"
-export JAVA_HOME="${JAVA_HOME}"
-# Did you know that in HERE documents, single quote is an ordinary character, but backticks are still executing?
-JAVA_RESOLVED=\`readlink -e "\${JAVA_HOME}/bin/java"\`
-echo "Java binary pointed at by JAVA_HOME: \${JAVA_RESOLVED}"
-
if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
# Copy shard file if exists
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
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 for controller to come up..."
COUNT="0"
while true; do
echo "Changing the testplan path..."
cat "${testplan_filepath}" | sed "s:integration:${WORKSPACE}:" > testplan.txt
cat testplan.txt
-SUITES=$( egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' ' )
+
+# 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} ..."
pybot -N ${TESTPLAN} --removekeywords wuks -c critical -e exclude -e skip_if_${DISTROSTREAM} -v BUNDLEFOLDER:${BUNDLEFOLDER} -v WORKSPACE:/tmp \
source ${ROBOT_VENV}/bin/activate
PYTHON="${ROBOT_VENV}/bin/python"
SSH="ssh -t -t"
-ADMIN_PASSWORD=admin
+ADMIN_PASSWORD="admin"
# TODO: remove this work to run changes.py if/when it's moved higher up to be visible at the Robot level
echo "showing recent changes that made it in to the distribution used by this job"
[[post-config|/etc/nova/nova.conf]]
[DEFAULT]
force_config_drive = False
+force_raw_images = False
[scheduler]
discover_hosts_in_cells_interval = 30
auth_strategy = keystone
[DEFAULT]
use_neutron = True
+force_raw_images = False
EOF
echo "Compute local.conf created:"
function configure_haproxy_for_neutron_requests() {
MGRIP=$1
+ # shellcheck disable=SC2206
ODL_IPS=(${2//,/ })
cat > ${WORKSPACE}/install_ha_proxy.sh<< EOF
echo -e "/usr/sbin/lsmod | /usr/bin/grep openvswitch\n"
/usr/sbin/lsmod | /usr/bin/grep openvswitch
echo -e "\ngrep ct_ /var/log/openvswitch/ovs-vswitchd.log\n"
-grep ct_ /var/log/openvswitch/ovs-vswitchd.log
-echo -e "\novsdb-tool -mm show-log\n"
-ovsdb-tool -mm show-log
+grep "Datapath supports" /var/log/openvswitch/ovs-vswitchd.log
echo -e "\nsudo netstat -punta\n"
sudo netstat -punta
echo -e "\nsudo getenforce\n"
sudo getenforce
-echo -e "\njournalctl > /tmp/journalctl.log\n"
-sudo journalctl > /tmp/journalctl.log
echo -e "\nsudo systemctl status httpd\n"
sudo systemctl status httpd
echo -e "\nenv\n"
source /opt/stack/devstack/openrc admin admin
echo -e "\nenv after openrc\n"
env
-echo "\nsudo du -hs /opt/stack"
+echo -e "\nsudo du -hs /opt/stack"
sudo du -hs /opt/stack
-echo "\nsudo mount"
+echo -e "\nsudo mount"
sudo mount
+echo -e "\ndmesg -T > /tmp/dmesg.log"
+dmesg -T > /tmp/dmesg.log
+echo -e "\njournalctl > /tmp/journalctl.log\n"
+sudo journalctl > /tmp/journalctl.log
+echo -e "\novsdb-tool -mm show-log > /tmp/ovsdb-tool.log"
+ovsdb-tool -mm show-log > /tmp/ovsdb-tool.log
EOF
# Since this log collection work is happening before the archive build macro which also
echo "collect_logs: for openstack control node ip: ${!OSIP}"
NODE_FOLDER="control_${i}"
mkdir -p ${NODE_FOLDER}
+ scp extra_debug.sh ${!OSIP}:/tmp
+ ${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
scp ${!OSIP}:/etc/dnsmasq.conf ${NODE_FOLDER}
scp ${!OSIP}:/etc/keystone/keystone.conf ${NODE_FOLDER}
scp ${!OSIP}:/etc/keystone/keystone-uwsgi-admin.ini ${NODE_FOLDER}
scp ${!OSIP}:/opt/stack/devstack/openrc ${NODE_FOLDER}
scp ${!OSIP}:/opt/stack/requirements/upper-constraints.txt ${NODE_FOLDER}
scp ${!OSIP}:/opt/stack/tempest/etc/tempest.conf ${NODE_FOLDER}
+ scp ${!OSIP}:/tmp/*.xz ${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/journalctl.log ${NODE_FOLDER}
+ scp ${!OSIP}:/tmp/ovsdb-tool.log ${NODE_FOLDER}
scp ${!OSIP}:/var/log/openvswitch/ovs-vswitchd.log ${NODE_FOLDER}
scp ${!OSIP}:/var/log/openvswitch/ovsdb-server.log ${NODE_FOLDER}
list_files "${!OSIP}" "${NODE_FOLDER}"
rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/messages ${NODE_FOLDER}
rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/rabbitmq ${NODE_FOLDER}
rsync -avhe ssh ${!OSIP}:/opt/stack/logs/* ${NODE_FOLDER} # rsync to prevent copying of symbolic links
- scp extra_debug.sh ${!OSIP}:/tmp
- ${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
- scp ${!OSIP}:/tmp/extra_debug.log ${NODE_FOLDER}
- scp ${!OSIP}:/tmp/journalctl.log ${NODE_FOLDER}
- scp ${!OSIP}:/tmp/*.xz ${NODE_FOLDER}
- ${SSH} ${!CONTROLLERIP} "dmesg -T > /tmp/dmesg.log"
- scp ${!CONTROLLERIP}:/tmp/dmesg.log ${NODE_FOLDER}
mv local.conf_control_${!OSIP} ${NODE_FOLDER}/local.conf
+ # qdhcp files are created by robot tests
mv /tmp/qdhcp ${NODE_FOLDER}
mv ${NODE_FOLDER} ${WORKSPACE}/archives/
done
echo "collect_logs: for openstack compute node ip: ${!OSIP}"
NODE_FOLDER="compute_${i}"
mkdir -p ${NODE_FOLDER}
+ scp extra_debug.sh ${!OSIP}:/tmp
+ ${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
scp ${!OSIP}:/etc/nova/nova.conf ${NODE_FOLDER}
scp ${!OSIP}:/etc/nova/nova-cpu.conf ${NODE_FOLDER}
scp ${!OSIP}:/etc/openstack/clouds.yaml ${NODE_FOLDER}
scp ${!OSIP}:/opt/stack/devstack/nohup.out ${NODE_FOLDER}/stack.log
scp ${!OSIP}:/opt/stack/devstack/openrc ${NODE_FOLDER}
scp ${!OSIP}:/opt/stack/requirements/upper-constraints.txt ${NODE_FOLDER}
+ scp ${!OSIP}:/tmp/*.xz ${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/journalctl.log ${NODE_FOLDER}
+ scp ${!OSIP}:/tmp/ovsdb-tool.log ${NODE_FOLDER}
scp ${!OSIP}:/var/log/openvswitch/ovs-vswitchd.log ${NODE_FOLDER}
scp ${!OSIP}:/var/log/openvswitch/ovsdb-server.log ${NODE_FOLDER}
list_files "${!OSIP}" "${NODE_FOLDER}"
rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/messages ${NODE_FOLDER}
rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/nova-agent.log ${NODE_FOLDER}
rsync -avhe ssh ${!OSIP}:/opt/stack/logs/* ${NODE_FOLDER} # rsync to prevent copying of symbolic links
- scp extra_debug.sh ${!OSIP}:/tmp
- ${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
- scp ${!OSIP}:/tmp/extra_debug.log ${NODE_FOLDER}
- scp ${!OSIP}:/tmp/journalctl.log ${NODE_FOLDER}
- scp ${!OSIP}:/tmp/*.xz ${NODE_FOLDER}/
- ${SSH} ${!OSIP} "dmesg -T > /tmp/dmesg.log"
- scp ${!OSIP}:/tmp/dmesg.log ${NODE_FOLDER}
mv local.conf_compute_${!OSIP} ${NODE_FOLDER}/local.conf
mv ${NODE_FOLDER} ${WORKSPACE}/archives/
done
sed -i 's/wait_for_compute 60/wait_for_compute 1800/g' /opt/stack/devstack/lib/nova
# TODO: modify sleep 1 to sleep 60, search wait_for_compute, then first sleep 1
# that would just reduce the number of logs in the compute stack.log
+
+#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
ssh ${!CONTROLIP} "cd /opt/stack/devstack; nohup ./stack.sh > /opt/stack/devstack/nohup.out 2>&1 &"
ssh ${!CONTROLIP} "ps -ef | grep stack.sh"
ssh ${!CONTROLIP} "ls -lrt /opt/stack/devstack/nohup.out"
- os_node_list+=(${!CONTROLIP})
+ os_node_list+=("${!CONTROLIP}")
# Workaround for stable/newton jobs
# TODO: can this be removed now?
if [ "${ODL_ML2_BRANCH}" == "stable/newton" ]; then
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"
- os_node_list+=(${!COMPUTEIP})
+ os_node_list+=("${!COMPUTEIP}")
done
echo "nodelist: ${os_node_list[*]}"
# 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
--log log_${log_name}.html --report None --output output_${log_name}.xml \
-v BUNDLEFOLDER:${BUNDLEFOLDER} \
-v BUNDLE_URL:${ACTUAL_BUNDLE_URL} \
- -v CONTROLLERFEATURES:${CONTROLLERFEATURES} \
+ -v CONTROLLERFEATURES:"${CONTROLLERFEATURES}" \
-v CONTROLLER_USER:${USER} \
-v DEVSTACK_DEPLOY_PATH:/opt/stack/devstack \
-v HA_PROXY_IP:${HA_PROXY_IP} \
OPENSTACK_VENV="/tmp/v/openstack"
# shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
source $OPENSTACK_VENV/bin/activate
-
+# shellcheck disable=SC2207
ADDR=($(openstack stack show -f json -c outputs "$STACK_NAME" | \
jq -r '.outputs[] | select(.output_key | match("^vm_[0-9]+_ips$")) | .output_value | .[]'))
do
REMHOST=$(ssh "${i}" hostname -s)
case ${REMHOST} in
- *java*)
+ *builder*)
ODL_SYSTEM=( "${ODL_SYSTEM[@]}" "${i}" )
;;
*devstack*)
# The rest of the openstack nodes until NUM_OPENSTACK_SYSTEM are computes
NUM_OPENSTACK_COMPUTE_NODES=$(( NUM_OPENSTACK_SYSTEM - NUM_OPENSTACK_CONTROL_NODES ))
echo "NUM_OPENSTACK_COMPUTE_NODES=${NUM_OPENSTACK_COMPUTE_NODES}" >> slave_addresses.txt
+
+# Order the computes in the list so that the devstack-0 is index 1 and devstack-1 is index 2. Currently they are
+# backwards because of the controller swap earlier.
+if [ ${NUM_OPENSTACK_COMPUTE_NODES} -ge 2 ]; then
+ tmp_addr=${OPENSTACK_SYSTEM[1]}
+ OPENSTACK_SYSTEM[1]=${OPENSTACK_SYSTEM[2]}
+ OPENSTACK_SYSTEM[2]=${tmp_addr}
+fi
+
for i in $(seq 0 $((NUM_OPENSTACK_COMPUTE_NODES - 1)))
do
echo "OPENSTACK_COMPUTE_NODE_$((i+1))_IP=${OPENSTACK_SYSTEM[$((openstack_index++))]}" >> slave_addresses.txt
# Module networking-l2gw is required for using l2gw commands with neutron client
# Module python-neutronclient is needed for certain tests run with Openstack Newton
# that does not work with Openstack Client
-pip install python-openstackclient==3.11.0
+# Module pyhon-novaclient is installed as a dependency of openstackclient, but the
+# latest version (v10.0.0) has some problem with "server add floating ip" that is
+# not there with v9.0.0, so pinning it to that for now
+pip install python-openstackclient
pip install networking-l2gw==11.0.0
pip install python-neutronclient==6.1.0
pip install networking-sfc
+pip install --upgrade python-novaclient==9.0.0
# Print installed versions.
pip install --upgrade pipdeptree
- builder:
name: integration-deploy-controller-run-test
builders:
- - shell: !include-raw: integration-deploy-controller-run-test.sh
+ - shell: !include-raw:
+ - common-functions.sh
+ - integration-deploy-controller-run-test.sh
# Macro: integration-configure-clustering
# Operation: this macro configures the clustering
- builder:
name: integration-configure-clustering
builders:
- - shell: !include-raw: integration-configure-clustering.sh
+ - shell: !include-raw:
+ - common-functions.sh
+ - integration-configure-clustering.sh
# Macro: integration-start-cluster-run-test
# Operation: this macro starts the 3-node cluster and runs test
cat "${testplan_filepath}" | sed "s:integration:${WORKSPACE}:" > testplan.txt
cat testplan.txt
-SUITES=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
+# 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} ..."
pybot -N ${TESTPLAN} --removekeywords wuks -c critical -e exclude -e skip_if_${DISTROSTREAM} -v BUNDLEFOLDER:${BUNDLEFOLDER} \
stream-test-plan: '{project}-{functionality}-{stream}.txt'
- integration-test-plan:
test-plan: '{project}-{functionality}.txt'
+ - integration-test-suites:
+ test-suites: '{test-suites}'
- integration-patch-refspec:
branch: 'master'
- integration-jdk-version:
stream-test-plan: '{project}-{functionality}-{stream}.txt'
- integration-test-plan:
test-plan: '{project}-{functionality}.txt'
+ - integration-test-suites:
+ test-suites: '{test-suites}'
- integration-patch-refspec:
branch: 'master'
- integration-jdk-version:
stream-test-plan: '{project}-{functionality}-{verify-stream}.txt'
- integration-test-plan:
test-plan: '{project}-{functionality}.txt'
+ - integration-test-suites:
+ test-suites: '{test-suites}'
- integration-jdk-version:
jdkversion: '{verify-jdkversion}'
- distribution-karaf-version:
stream-test-plan: '{project}-{functionality}-{stream}.txt'
- integration-test-plan:
test-plan: '{project}-{functionality}.txt'
+ - integration-test-suites:
+ test-suites: '{test-suites}'
- integration-patch-refspec:
branch: 'master'
- integration-jdk-version:
stream-test-plan: '{project}-{functionality}-{stream}.txt'
- integration-test-plan:
test-plan: '{project}-{functionality}.txt'
+ - integration-test-suites:
+ test-suites: '{test-suites}'
- integration-patch-refspec:
branch: 'master'
- integration-jdk-version:
csit-sanity-list: '{csit-sanity-list-oxygen}'
csit-weekly-list: '{csit-weekly-list-oxygen}'
csit-high-frequency-list: '{csit-high-frequency-list-oxygen}'
+ mvn-version: 'mvn33'
- nitrogen:
branch: 'stable/nitrogen'
csit-sanity-list: '{csit-sanity-list-nitrogen}'
csit-weekly-list: '{csit-weekly-list-nitrogen}'
csit-high-frequency-list: '{csit-high-frequency-list-nitrogen}'
+ mvn-version: 'mvn33'
- carbon:
branch: 'stable/carbon'
csit-sanity-list: '{csit-sanity-list-carbon}'
csit-weekly-list: '{csit-weekly-list-carbon}'
csit-high-frequency-list: '{csit-high-frequency-list-carbon}'
+ mvn-version: 'mvn33'
# tools system image
tools_system_image: ZZCI - Ubuntu 16.04 - mininet-ovs-25 - 20171208-1847
- job-template:
name: 'integration-multipatch-test-{stream}'
# Goal: Build one or more patches and run all available system test on a distribution containing the change.
- # Operation: This job template checks out and builds each patch provided in job parameters, creates a distribution
- # containing these patches, and triggers the distribution test job which includes most (if not all) available
- # CSIT jobs
- # TODO: Move the following to appropriate readthedocs document.
- # Recommended Sandbox usage:
- # 0. Create this job and a CSIT job you want to run on the new .zip in Sandbox (disable timed triggers).
- # 1. Copy the csit job name to clipboard.
- # 2. Navigate to Sandbox page of this job.
- # 3. Click "Configure".
- # 4. Locate "Trigger/call builds on other projects" (under "Post Steps" tab).
- # 5. Delete the long value of "Projects to build" field and paste the job name from clipboard (ctrl+a, ctrl+v).
- # 6. Click "Save" button.
- # 7. Click "Build with Parameters".
- # yamllint disable-line rule:line-length
- # 8. Start the job with your parameters, see https://wiki.opendaylight.org/view/Integration/Test/Running_System_Tests#Running_System_Tests_Using_Custom_Distribution_Built_From_Multiple_Patches
- # 9. The multipatch job waits for the csit job to finish, so abort csit if you see something went wrong.
- # 10. Navigate to Sandbox page of the csit job, click the run triggered from multipatch.
- # 11. Click Parameters and copy the long value of BUNDLE_URL field to clipboard.
- # 12. Run the same csit job woth different patchset or test options, or other csit jobs, with this BUNDLE_URL value
- # so you do not have to wait for multipatch build. Repeat step 12.
- # 13. Currently, the .zip lasts 24 hours (?) so you may need to jump to step 2 (or 0) after some time.
+ # Operation: This job template checks out and builds in order each patch provided in job parameters, finally
+ # it creates a distribution containing all patches and triggers the distribution test job which includes most
+ # (if not all) available CSIT jobs.
project-type: freestyle
- node: centos7-builder-2c-8g
+ node: centos7-builder-4c-4g
jdk: '{jdk}'
properties:
run-test: 'false'
- integration-distribution-branch:
branch: '{branch}'
+ - integration-distribution-stream:
+ stream: '{stream}'
- distribution-karaf-version:
karaf-version: '{karaf-version}'
- opendaylight-infra-parameters:
builders:
- wipe-org-opendaylight-repo
- - integration-multipatch-builder
+ - lf-maven-install:
+ mvn-version: '{mvn-version}'
- provide-maven-settings:
global-settings-file: 'global-settings'
- settings-file: 'yangtools-settings'
- - maven-target:
- maven-version: mvn33
- pom: patch_tester/pom.xml
- # TODO: Make Maven options configurable. Currently tests are not skipped, everything else is.
- goals: |
- clean install dependency:tree -DoutputFile=dependency_tree.txt
- -Pq
- -Dstream={stream}
- -Dsft.heap.max=4g
- {opendaylight-infra-mvn-opts}
- # TODO: {opendaylight-infra-parallel-mvn-opts}?
- java-opts:
- - '-Xmx3072m -Dmaven.compile.fork=true'
- settings: integration-settings
- settings-type: cfp
- global-settings: global-settings
- global-settings-type: cfp
+ settings-file: 'integration-distribution-settings'
+ - integration-multipatch-builder
- integration-upload-distribution:
dist-pom: patch_tester/distribution/pom.xml
- conditional-step:
# create a fresh empty place to build this custom distribution
BUILD_DIR=${WORKSPACE}/patch_tester
-POM_FILE=${WORKSPACE}/patch_tester/pom.xml
DISTRIBUTION_BRANCH_TO_BUILD=$DISTROBRANCH #renaming variable for clarity
+MAVEN_OPTIONS="$(echo --show-version \
+ --batch-mode \
+ -Djenkins \
+ -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
+ -Dmaven.repo.local=/tmp/r \
+ -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r)"
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
cd $BUILD_DIR || exit 1
-# create a root pom that will contain a module for each project we have a patch for
-echo "<project>" >> $POM_FILE
-echo "<groupId>org.opendaylight.test</groupId>" >> $POM_FILE
-echo "<artifactId>test</artifactId>" >> $POM_FILE
-echo "<version>0.1</version>" >> $POM_FILE
-echo "<modelVersion>4.0.0</modelVersion>" >> $POM_FILE
-echo "<packaging>pom</packaging>" >> $POM_FILE
-echo "<modules>" >> $POM_FILE
-
# Set up git committer name and email, needed for commit creation when cherry-picking.
export EMAIL="sandbox@jenkins.opendaylight.org"
# TODO: Is there a more appropriate e-mail?
PROJECT_SHORTNAME="${PROJECT##*/}" # http://stackoverflow.com/a/3162500
echo "cloning project ${PROJECT}"
git clone "https://git.opendaylight.org/gerrit/p/${PROJECT}"
- echo "<module>${PROJECT_SHORTNAME}</module>" >> ${POM_FILE}
cd ${PROJECT_SHORTNAME} || exit 1
if [ "$(echo -n ${proto_patch} | tail -c 1)" == 'r' ]; then
pure_patch="$(echo -n $proto_patch | head -c -1)"
# Here 'r' means release. Useful for testing Nitrogen Odlparent changes.
find . -name "*.xml" -print0 | xargs -0 sed -i 's/-SNAPSHOT//g'
fi
+ # Build project
+ "$MVN" clean install \
+ -e -Pq \
+ -Dstream=oxygen \
+ -DskipTests=true \
+ --global-settings "$GLOBAL_SETTINGS_FILE" \
+ --settings "$SETTINGS_FILE" \
+ $MAVEN_OPTIONS
cd "${BUILD_DIR}" || exit 1
done
git clone "https://git.opendaylight.org/gerrit/p/integration/distribution"
cd distribution || exit 1
git checkout "${DISTRIBUTION_BRANCH_TO_BUILD}"
+ # Build project
+ "$MVN" clean install \
+ -e -Pq \
+ -Dstream="$DISTROSTREAM" \
+ -DskipTests=true \
+ --global-settings "$GLOBAL_SETTINGS_FILE" \
+ --settings "$SETTINGS_FILE" \
+ $MAVEN_OPTIONS
cd "${BUILD_DIR}" || exit 1
- echo "<module>distribution</module>" >> ${POM_FILE}
fi
-# finish pom file
-echo "</modules>" >> "${POM_FILE}"
-echo "</project>" >> "${POM_FILE}"
search_string="csit"
wget --quiet -O "$jobs_file" https://jenkins.opendaylight.org/$SILO/api/xml
+# shellcheck disable=SC2207
jobs=($(xmlstarlet sel -t -m '//hudson/job' \
-n -v 'name' "$jobs_file" | grep $search_string | grep $STREAM))
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'iotdm'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'iotdm'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'iotdm'
name: jsonrpc-fluorine
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'jsonrpc'
project-name: 'jsonrpc'
name: jsonrpc-oxygen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'jsonrpc'
project-name: 'jsonrpc'
name: jsonrpc-nitrogen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'jsonrpc'
project-name: 'jsonrpc'
name: jsonrpc-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'jsonrpc'
project-name: 'jsonrpc'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'l2switch'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'l2switch'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'l2switch'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'lacp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'lacp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'lacp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'lispflowmapping'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'lispflowmapping'
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: ''
+ archive-artifacts: >
+ **/*.log
+ **/target/surefire-reports/*-output.txt
+
build-node: centos7-builder-4c-16g
# Used by the release job
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'lispflowmapping'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: oxygen
project: 'mdsal'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: nitrogen
project: 'mdsal'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
stream: carbon
project: 'mdsal'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'messaging4transport'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'messaging4transport'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'messaging4transport'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'natapp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'natapp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'natapp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'nemo'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'nemo'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'nemo'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'netconf'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'netconf'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'netconf'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'netide'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'netide'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'netide'
project: 'netvirt'
stream: 'oxygen'
branch: 'master'
- use-features-boot: 'False'
topology:
- 1node:
project: 'netvirt'
stream: 'nitrogen'
branch: 'stable/nitrogen'
- use-features-boot: 'False'
topology:
- 1node:
stream: 'carbon'
branch: 'stable/carbon'
karaf-version: karaf3
- use-features-boot: 'False'
topology:
- 1node:
odl_system_flavor: v1-performance-8
openstack_system_flavor: v1-performance-8
openstack_system2_flavor: v1-performance-4
- use-features-boot: 'False'
topology:
- 1node:
odl_system_flavor: v1-performance-8
openstack_system_flavor: v1-performance-8
openstack_system2_flavor: v1-performance-4
- use-features-boot: 'False'
topology:
- 1node:
odl_system_flavor: v1-performance-8
openstack_system_flavor: v1-performance-8
openstack_system2_flavor: v1-performance-4
- use-features-boot: 'False'
topology:
- 1node:
security-group-mode: 'stateful'
odl_system_flavor: v1-performance-4
openstack_system2_flavor: v1-performance-2
- use-features-boot: 'False'
topology:
- 1node:
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
- gerrit-tox-verify
+ - odl-maven-jobs
stream:
- oxygen:
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'neutron'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'neutron'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'neutron'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'next'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'next'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'next'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'nic'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'nic'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'nic'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'ocpplugin'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'ocpplugin'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'ocpplugin'
- project:
name: odlparent-master
jobs:
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
- gerrit-tox-verify
project: odlparent
- project:
name: odlparent-2.0.x
jobs:
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
- gerrit-tox-verify
project: odlparent
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - gerrit-maven-merge
+ - odl-maven-jobs
- gerrit-tox-verify
stream: carbon
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'of-config'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'of-config'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'of-config'
name: circuitsw-oxygen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'ofextensions/circuitsw'
name: circuitsw-nitrogen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'ofextensions/circuitsw'
name: circuitsw-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'ofextensions/circuitsw'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'openflowjava'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'openflowjava'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'openflowplugin'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'openflowplugin'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'openflowplugin'
- project:
name: ovil
jobs:
- - '{project-name}-merge-{stream}'
- - '{project-name}-maven-jobs'
+ - odl-maven-jobs
- gerrit-tox-verify
project: ovil
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'ovsdb'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'ovsdb'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'ovsdb'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'p4plugin'
sudo yum install -y nmap
- shell: !include-raw: test-karaf.expect
- shell: !include-raw: stop-odl.sh
+ - shell: !include-raw: uninstall-rpm.sh
- lf-infra-deploy-maven-file:
global-settings-file: 'global-settings'
settings-file: 'packaging-settings'
- shell: !include-raw: build-rpm.sh
# Test Carbon 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/distribution-karaf/0.6.3-SNAPSHOT/distribution-karaf-0.6.3-20171128.221258-1.zip'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/distribution-karaf/0.6.3-SNAPSHOT/distribution-karaf-0.6.3-20180115.181738-1.zip'
- shell: !include-raw: build-rpm.sh
# Test latest Carbon snapshot
- shell: !include-raw: build-rpm.sh
# Test Nitrogen 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.7.2-SNAPSHOT/karaf-0.7.2-20171128.223150-2.zip'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.7.2-SNAPSHOT/karaf-0.7.2-20180115.183312-2.zip'
- shell: !include-raw: build-rpm.sh
# Test latest Nitrogen snapshot
- shell: !include-raw: build-rpm-snap.sh
# Test Oxygen 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-2052/org/opendaylight/integration/karaf/0.8.0/karaf-0.8.0.tar.gz'
- shell: !include-raw: build-rpm.sh
# 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.0-SNAPSHOT/karaf-0.8.0-20171128.175421-68.zip'
+ properties-content: 'DOWNLOAD_URL=https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20180111.030942-90.zip'
- shell: !include-raw: build-rpm.sh
# Test latest Oxygen snapshot
sudo yum install -y nmap
- shell: !include-raw: test-karaf.expect
- shell: !include-raw: stop-odl.sh
+ - shell: !include-raw: uninstall-rpm.sh
publishers:
# TODO: Remove the archive publisher
- shell: !include-raw: start-odl.sh
- shell: !include-raw: test-karaf.expect
- shell: !include-raw: stop-odl.sh
+ - shell: !include-raw: uninstall-rpm.sh
publishers:
- lf-infra-publish
--- /dev/null
+#!/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
+
+# Uninstall ODL
+sudo yum remove -y opendaylight
+
+# Verify ODL not installed
+if yum list installed opendaylight; then
+ # Fail if exit code 0, ie ODL is still installed
+ echo "OpenDaylight unexpectedly still installed"
+ exit 1
+else
+ echo "OpenDaylight not installed, as expected"
+fi
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'packetcable'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'packetcable'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'packetcable'
name: persistence-oxygen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'persistence'
name: persistence-nitrogen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'persistence'
name: persistence-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'persistence'
- project:
name: builder-jobs
jobs:
- - '{project-name}-ci-jobs'
+ - '{project-name}-ci-jobs':
+ build-node: centos7-builder-2c-2g
- builder-check-poms
+ - builder-copy-sandbox-logs
- gerrit-tox-verify
# OpenStack Related
- 'builder-verify-image-protection'
project-name: builder
stream: master
branch: master
- build-node: centos7-builder-2c-8g
+ build-node: centos7-builder-2c-1g
archive-artifacts: '**/*.log'
build-timeout: 30
+ jjb-version: 2.0.0
- project:
name: packer-jobs
project-name: builder
branch: master
archive-artifacts: '**/*.log'
- build-node: centos7-builder-2c-8g
+ build-node: centos7-builder-2c-1g
platforms:
- centos
- devstack-pre-pip-pike:
build-timeout: 75
- gbp
- - mininet
- mininet-ovs-2.5:
build-timeout: 60
- mininet-ovs-2.6:
exclude:
- platforms: centos
templates: gbp
- - platforms: centos
- templates: mininet
- platforms: centos
templates: mininet-ovs-2.5
- platforms: centos
templates: devstack-pre-pip-pike
- platforms: ubuntu-16.04
templates: devstack
- - platforms: ubuntu-16.04
- templates: mininet
- - platforms: ubuntu-16.04
- templates: baseline
- - platforms: centos
- templates: baseline
- job-template:
name: builder-check-poms
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-1g
project-type: freestyle
email-prefix: '[releng]'
- lf-infra-publish
+- job-template:
+ name: builder-copy-sandbox-logs
+ node: centos7-builder-2c-1g
+
+ project-type: freestyle
+
+ properties:
+ - opendaylight-infra-properties:
+ build-days-to-keep: 1
+
+ parameters:
+ - opendaylight-infra-parameters:
+ os-cloud: ''
+ project: ''
+ branch: ''
+ refspec: ''
+ artifacts: ''
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: 10
+
+ triggers:
+ - gerrit:
+ server-name: '{gerrit-server-name}'
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: 'copy-logs:'
+ projects:
+ - project-compare-type: ANT
+ project-pattern: '**'
+ branches:
+ - branch-compare-type: ANT
+ branch-pattern: '**'
+
+ builders:
+ - shell: !include-raw-escape: copy-sandbox-logs.sh
+
+ publishers:
+ - lf-infra-publish
+
- job-template:
name: 'builder-verify-image-protection'
project-type: freestyle
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-1g
properties:
- opendaylight-infra-properties:
- job-template:
name: 'builder-cleanup-old-images'
project-type: freestyle
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-1g
properties:
- opendaylight-infra-properties:
- job-template:
name: builder-delete-orphaned-nodes
project-type: freestyle
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-1g
properties:
- opendaylight-infra-properties:
- job-template:
name: 'builder-delete-stale-nodes'
project-type: freestyle
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-1g
properties:
- opendaylight-infra-properties:
- job-template:
name: 'builder-delete-stale-stacks'
project-type: freestyle
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-1g
properties:
- opendaylight-infra-properties:
- job-template:
name: 'builder-update-image-list'
project-type: freestyle
- node: centos7-builder-2c-8g
+ node: centos7-builder-2c-1g
properties:
- opendaylight-infra-properties:
name: PATCHES_TO_BUILD
default: ''
description: |
- Patches to add to distro in CSV project:changeset format (genius:32/53632/9,netvirt:59/50259/47)
+ Ordered list of patches to build in the format of project=changeset (checkout) or
+ project:changeset (cherry-pick) for example: genius=32/53632/9,netvirt:59/50259/47
- parameter:
name: run-test-parameter
branch: master
archive-artifacts: '**/*.log'
- build-node: centos7-builder-2c-8g
- build-timeout: 75
+ build-node: centos7-builder-2c-1g
+ build-timeout: 90
platforms: centos
templates: builder
branch: master
archive-artifacts: '**/*.log'
- build-node: centos7-builder-2c-8g
+ build-node: centos7-builder-2c-1g
build-timeout: 60
platforms: centos
templates: docker
+- project:
+ name: packer-mininet-jobs
+ jobs:
+ - gerrit-packer-merge
+
+ project: releng/builder
+ project-name: builder
+ branch: master
+ archive-artifacts: '**/*.log'
+
+ build-node: centos7-builder-2c-1g
+ build-timeout: 90
+
+ platforms: ubuntu-16.04
+ templates: mininet-ovs-2.8
+
- project:
name: packer-robot-jobs
jobs:
branch: master
archive-artifacts: '**/*.log'
- build-node: centos7-builder-2c-8g
+ build-node: centos7-builder-2c-1g
platforms: centos
templates: robot
---
+- job-group:
+ name: odl-maven-jobs
+
+ jobs:
+ - gerrit-maven-clm
+
+ - gerrit-maven-merge:
+ post_build_trigger:
+ - project:
+ - 'distribution-merge-{stream}'
+ condition: SUCCESS
+ trigger-with-no-params: true
+
+ - gerrit-maven-release
+ - gerrit-maven-verify
+ - gerrit-maven-verify-dependencies
+
- job-template:
name: '{project-name}-integration-{stream}'
name: reservation-oxygen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'reservation'
name: reservation-nitrogen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'reservation'
name: reservation-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'reservation'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'sdninterfaceapp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'sdninterfaceapp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'sdninterfaceapp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'sfc'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'sfc'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'sfc'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'snbi'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'snbi'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'snbi'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'snmp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'snmp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'snmp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'snmp4sdn'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'snmp4sdn'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'snmp4sdn'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'sxp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'sxp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'sxp'
name: systemmetrics-oxygen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'systemmetrics'
project-name: 'systemmetrics'
name: systemmetrics-nitrogen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'systemmetrics'
project-name: 'systemmetrics'
name: systemmetrics-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'systemmetrics'
project-name: 'systemmetrics'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'topoprocessing'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'topoprocessing'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'topoprocessing'
name: transportpce-oxygen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'transportpce'
project-name: 'transportpce'
name: transportpce-nitrogen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'transportpce'
project-name: 'transportpce'
name: transportpce-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: 'transportpce'
project-name: 'transportpce'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'tsdr'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'tsdr'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'tsdr'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'ttp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'ttp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'ttp'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'unimgr'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'unimgr'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'unimgr'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'usc'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'usc'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'usc'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'usecplugin'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'usecplugin'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'usecplugin'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'vtn'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'vtn'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'vtn'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'yang-push'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'yang-push'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'yang-push'
name: yangide-oxygen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: oxygen
project: 'yangide'
name: yangide-nitrogen
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'yangide'
name: yangide-carbon
jobs:
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'yangide'
- project:
name: yangtools-master
jobs:
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
project: yangtools
project-name: yangtools
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: nitrogen
project: 'yangtools'
jobs:
- '{project-name}-distribution-check-{stream}'
- '{project-name}-integration-{stream}'
- - '{project-name}-maven-jobs'
- '{project-name}-maven-javadoc-jobs'
- - '{project-name}-merge-{stream}'
+ - odl-maven-jobs
stream: carbon
project: 'yangtools'
-Subproject commit ba9ed1ef49f7ac3859d5c1b2505116a7610ccfc0
+Subproject commit 0b9b6addb738ea7c483c8cdf75b9ae173480f9cd
shell: /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh -d -b -t
args:
chdir: /tmp/build_quagga/zrpcd
+ executable: /bin/bash
become: true
post_tasks:
--- /dev/null
+---
+- import_playbook: ../common-packer/provision/baseline.yaml
+
+- hosts: all
+ become_user: root
+ become_method: sudo
+ vars:
+ ovs_checksum: sha256:8d1c439e26d7044f0ec823c7fef1b00b7c6465da0b83a7d0cf3191ed1dc43893
+ ovs_version: 2.8.1
+
+ pre_tasks:
+ - include_role: name=system-update
+
+ tasks:
+ - name: 'Install OpenVSwitch {{ovs_version}}'
+ block:
+ - name: Install OpenVSwitch dependencies
+ apt: 'name={{item}} state=present'
+ with_items:
+ - autoconf
+ - automake
+ - bzip2
+ - debhelper
+ - dh-autoreconf
+ - libssl-dev
+ - openssl
+ - pkg-config
+ - procps
+ - python-all
+ - python-qt4
+ - python-twisted-conch
+ - python-zopeinterface
+ become: true
+ - name: 'Fetch OpenVSwitch {{ovs_version}}'
+ get_url:
+ url: 'http://openvswitch.org/releases/openvswitch-{{ovs_version}}.tar.gz'
+ dest: '/tmp/openvswitch-{{ovs_version}}.tar.gz'
+ checksum: '{{ovs_checksum}}'
+ - name: Create /tmp/ovs directory
+ file:
+ path: /tmp/ovs
+ state: directory
+ mode: 0755
+ - name: 'Unarchive OpenVSwitch {{ovs_version}}'
+ unarchive:
+ src: '/tmp/openvswitch-{{ovs_version}}.tar.gz'
+ dest: /tmp/ovs
+ remote_src: true
+ - name: 'Build OpenVSwitch {{ovs_version}}'
+ shell: DEB_BUILD_OPTIONS='parallel=8 nocheck' fakeroot debian/rules binary
+ args:
+ chdir: '/tmp/ovs/openvswitch-{{ovs_version}}'
+ - name: 'Install OpenVSwitch {{ovs_version}}'
+ apt: 'deb={{item}}'
+ with_items:
+ - /tmp/ovs/libopenvswitch_2.8.1-1_amd64.deb
+ - /tmp/ovs/openvswitch-common_2.8.1-1_amd64.deb
+ - /tmp/ovs/openvswitch-switch_2.8.1-1_amd64.deb
+ - /tmp/ovs/python-openvswitch_2.8.1-1_all.deb
+ - /tmp/ovs/openvswitch-vtep_2.8.1-1_amd64.deb
+ become: true
+ - name: Enable openvswitch-switch service
+ systemd:
+ name: openvswitch-switch
+ enabled: true
+ masked: false
+ become: true
+ - name: Enable openvswitch-vtep service
+ systemd:
+ name: openvswitch-vtep
+ enabled: true
+ masked: false
+ become: true
+
+ - name: Install Mininet
+ apt: name=mininet state=present
+ become: true
+
+ - name: Install mtcbench
+ block:
+ - name: Install mtcbench dependencies
+ apt: 'name={{item}} state=present'
+ with_items:
+ - autoconf
+ - automake
+ - build-essential
+ - libconfig-dev
+ - libffi-dev
+ - libpcap-dev
+ - libsnmp-dev
+ - libtool
+ - libssl-doc
+ - make
+ - pkg-config
+ - snmp
+ - snmpd
+ become: true
+ - name: Fetch mtcbench git repo
+ git:
+ repo: https://github.com/intracom-telecom-sdn/mtcbench.git
+ dest: /tmp/mtcbench
+ - name: Run mtcbench/deploy/docker/provision.sh
+ command: /tmp/mtcbench/deploy/docker/provision.sh
+ become: true
+ - name: Build mtcbench
+ # TODO: remove workaround for build issue with mtcbench
+ # when mtcbench dependency build correctly
+ # https://github.com/intracom-telecom-sdn/mtcbench/issues/10
+ shell: /tmp/mtcbench/build_mtcbench.sh || true
+ - name: Run make for cbench
+ command: make
+ args:
+ chdir: /tmp/mtcbench/oflops/cbench
+ - name: Install cbench to /usr/local/bin/cbench
+ copy:
+ src: /tmp/mtcbench/oflops/cbench/cbench
+ dest: /usr/local/bin/cbench
+ mode: 0755
+ owner: root
+ remote_src: yes
+ become: true
+
+ - name: Install exabgp
+ apt: name=exabgp state=present
+ become: true
+
+ - name: Install python-netaddr for custom mininet topologies
+ apt: name=python-netaddr state=present
+ become: true
+
+ - name: Install vlan for vlan based tests in VTN suites
+ apt: name=vlan state=present
+ become: true
+
+ - name: Install Quagga
+ block:
+ - name: Fetch Quagga git repo
+ git:
+ repo: https://github.com/6WIND/zrpcd.git
+ dest: /tmp/build_quagga/zrpcd
+ version: 20170731
+ - name: Set compile script executable
+ file:
+ path: /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh
+ mode: 0755
+ - name: Compile Quagga
+ shell: /tmp/build_quagga/zrpcd/pkgsrc/dev_compile_script.sh -d -b -t
+ args:
+ chdir: /tmp/build_quagga/zrpcd
+ executable: /bin/bash
+ become: true
+
+ post_tasks:
+ - name: System Reseal
+ script: ../common-packer/provision/system-reseal.sh
+ become: true
+++ /dev/null
-#!/bin/bash
-
-# vim: sw=4 ts=4 sts=4 et tw=72 :
-
-# force any errors to cause the script and job to end in failure
-set -xeu -o pipefail
-
-# Ensure that necessary variables are set to enable noninteractive mode in
-# commands.
-export DEBIAN_FRONTEND=noninteractive
-
-# 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
-
-echo '---> Install mininet with OF13 patch'
-cd /tmp
-cat > newOptions.patch <<EOF
---- mininet/node.py 2014-09-12 13:48:03.165628683 +0100
-+++ mininet/node.py 2014-09-12 13:50:39.021630236 +0100
-@@ -952,6 +952,10 @@
- datapath: userspace or kernel mode (kernel|user)"""
- Switch.__init__( self, name, **params )
- self.failMode = failMode
-+ protKey = 'protocols'
-+ if self.params and protKey in self.params:
-+ print 'have protcol params!'
-+ self.opts += protKey + '=' + self.params[protKey]
- self.datapath = datapath
-
- @classmethod
-@@ -1027,8 +1031,9 @@
- if self.datapath == 'user':
- self.cmd( 'ovs-vsctl set bridge', self,'datapath_type=netdev' )
- int( self.dpid, 16 ) # DPID must be a hex string
-+ print 'OVSswitch opts: ',self.opts
- self.cmd( 'ovs-vsctl -- set Bridge', self,
-- 'other_config:datapath-id=' + self.dpid )
-+ self.opts+' other_config:datapath-id=' + self.dpid )
- self.cmd( 'ovs-vsctl set-fail-mode', self, self.failMode )
- for intf in self.intfList():
- if not intf.IP():
-EOF
-
-git clone git://github.com/mininet/mininet
-cd mininet/
-git checkout -b 2.1.0 2.1.0
-git apply -p0 < ../newOptions.patch
-cd ./util
-./install.sh -nfv
-
-echo '---> Installing cbench installation for running openflow performance tests'
-OF_DIR="$HOME/openflow" # Directory that contains OpenFlow code
-OFLOPS_DIR="$HOME/oflops" # Directory that contains oflops repo
-
-apt-get install -y --force-yes libsnmp-dev libpcap-dev libconfig-dev
-
-git clone git://gitosis.stanford.edu/openflow.git "$OF_DIR"
-git clone https://github.com/andi-bigswitch/oflops.git "$OFLOPS_DIR"
-
-cd "$OFLOPS_DIR"
-./boot.sh
-./configure --with-openflow-src-dir="$OF_DIR"
-make
-make install
-
-echo '---> Installing vlan for vlan based tests in VTN suites'
-apt-get install -y --force-yes vlan
-
-# Install netaddr package which is needed by some custom mininet topologies
-apt-get install -y --force-yes -qq python-netaddr
+++ /dev/null
-{
- "variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
- "distro": null,
- "cloud_user_data": null,
- "ssh_proxy_host": ""
- },
- "builders": [
- {
- "type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
- "domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
- "region": "ca-ymq-1",
- "availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
- "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
- "image_name": "ZZCI - {{user `distro`}} - baseline - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
- "flavor": "v1-standard-1",
- "networks": [
- "{{user `public_network`}}"
- ],
- "user_data_file": "{{user `cloud_user_data`}}",
- "metadata": {
- "ci_managed": "yes"
- }
- }
- ],
- "provisioners": [
- {
- "type": "shell",
- "scripts": [
- "provision/baseline.sh",
- "provision/system_reseal_local_env.sh",
- "provision/system_reseal.sh"
- ],
- "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
- }
- ]
-}
{
"variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
+ "base_image": null,
"distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
"cloud_user_data": null,
+ "ssh_user": null,
"ssh_proxy_host": ""
},
"builders": [
{
"type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
"domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
"region": "ca-ymq-1",
"availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
+ "ssh_username": "{{user `ssh_user`}}",
"ssh_proxy_host": "{{user `ssh_proxy_host`}}",
"image_name": "ZZCI - {{user `distro`}} - devstack-newton - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
+ "source_image_name": "{{user `base_image`}}",
"flavor": "v1-standard-1",
"networks": [
- "{{user `public_network`}}"
+ "{{user `cloud_network`}}"
],
"user_data_file": "{{user `cloud_user_data`}}",
"metadata": {
{
"variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
+ "base_image": null,
"distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
"cloud_user_data": null,
+ "ssh_user": null,
"ssh_proxy_host": ""
},
"builders": [
{
"type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
"domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
"region": "ca-ymq-1",
"availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
+ "ssh_username": "{{user `ssh_user`}}",
"ssh_proxy_host": "{{user `ssh_proxy_host`}}",
"image_name": "ZZCI - {{user `distro`}} - devstack-ocata - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
+ "source_image_name": "{{user `base_image`}}",
"flavor": "v1-standard-1",
"networks": [
- "{{user `public_network`}}"
+ "{{user `cloud_network`}}"
],
"user_data_file": "{{user `cloud_user_data`}}",
"metadata": {
{
"variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
+ "base_image": null,
"distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
"cloud_user_data": null,
+ "ssh_user": null,
"ssh_proxy_host": ""
},
"builders": [
{
"type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
"domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
"region": "ca-ymq-1",
"availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
+ "ssh_username": "{{user `ssh_user`}}",
"ssh_proxy_host": "{{user `ssh_proxy_host`}}",
"image_name": "ZZCI - {{user `distro`}} - devstack-pike - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
+ "source_image_name": "{{user `base_image`}}",
"flavor": "v1-standard-1",
"networks": [
- "{{user `public_network`}}"
+ "{{user `cloud_network`}}"
],
"user_data_file": "{{user `cloud_user_data`}}",
"metadata": {
{
"variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
+ "base_image": null,
"distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
"cloud_user_data": null,
+ "ssh_user": null,
"ssh_proxy_host": ""
},
"builders": [
{
"type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
"domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
"region": "ca-ymq-1",
"availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
+ "ssh_username": "{{user `ssh_user`}}",
"ssh_proxy_host": "{{user `ssh_proxy_host`}}",
"image_name": "ZZCI - {{user `distro`}} - devstack - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
+ "source_image_name": "{{user `base_image`}}",
"flavor": "v1-standard-1",
"networks": [
- "{{user `public_network`}}"
+ "{{user `cloud_network`}}"
],
"user_data_file": "{{user `cloud_user_data`}}",
"metadata": {
{
"variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
+ "base_image": null,
"distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
"cloud_user_data": null,
+ "ssh_user": null,
"ssh_proxy_host": ""
},
"builders": [
{
"type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
"domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
"region": "ca-ymq-1",
"availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
+ "ssh_username": "{{user `ssh_user`}}",
"ssh_proxy_host": "{{user `ssh_proxy_host`}}",
"image_name": "ZZCI - {{user `distro`}} - gbp - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
+ "source_image_name": "{{user `base_image`}}",
"flavor": "v1-standard-1",
"networks": [
- "{{user `public_network`}}"
+ "{{user `cloud_network`}}"
],
"user_data_file": "{{user `cloud_user_data`}}",
"metadata": {
{
"variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
+ "base_image": null,
"distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
"cloud_user_data": null,
+ "ssh_user": null,
"ssh_proxy_host": ""
},
"builders": [
{
"type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
"domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
"region": "ca-ymq-1",
"availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
+ "ssh_username": "{{user `ssh_user`}}",
"ssh_proxy_host": "{{user `ssh_proxy_host`}}",
"image_name": "ZZCI - {{user `distro`}} - mininet-ovs-25 - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
+ "source_image_name": "{{user `base_image`}}",
"flavor": "v1-standard-1",
"networks": [
- "{{user `public_network`}}"
+ "{{user `cloud_network`}}"
],
"user_data_file": "{{user `cloud_user_data`}}",
"metadata": {
{
"variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
+ "base_image": null,
"distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
"cloud_user_data": null,
+ "ssh_user": null,
"ssh_proxy_host": ""
},
"builders": [
{
"type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
"domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
"region": "ca-ymq-1",
"availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
+ "ssh_username": "{{user `ssh_user`}}",
"ssh_proxy_host": "{{user `ssh_proxy_host`}}",
"image_name": "ZZCI - {{user `distro`}} - mininet-ovs-26 - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
+ "source_image_name": "{{user `base_image`}}",
"flavor": "v1-standard-1",
"networks": [
- "{{user `public_network`}}"
+ "{{user `cloud_network`}}"
],
"user_data_file": "{{user `cloud_user_data`}}",
"metadata": {
--- /dev/null
+{
+ "variables": {
+ "base_image": null,
+ "distro": null,
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
+ "cloud_user_data": null,
+ "ssh_user": null,
+ "ssh_proxy_host": ""
+ },
+ "builders": [
+ {
+ "name": "vexxhost",
+ "image_name": "ZZCI - {{user `distro`}} - mininet-ovs-28 - {{isotime \"20060102-1504\"}}",
+ "source_image_name": "{{user `base_image`}}",
+ "type": "openstack",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "domain_name": "Default",
+ "region": "ca-ymq-1",
+ "availability_zone": "ca-ymq-2",
+ "networks": [
+ "{{user `cloud_network`}}"
+ ],
+ "user_data_file": "{{user `cloud_user_data`}}",
+ "ssh_username": "{{user `ssh_user`}}",
+ "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
+ "flavor": "v1-standard-1",
+ "metadata": {
+ "ci_managed": "yes"
+ }
+ }
+ ],
+ "provisioners": [
+ {
+ "type": "shell",
+ "scripts": [
+ "common-packer/provision/install-python.sh"
+ ],
+ "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+ },
+ {
+ "type": "ansible",
+ "playbook_file": "provision/mininet-ovs-2.8.yaml",
+ "ansible_env_vars": [
+ "ANSIBLE_NOCOWS=1",
+ "ANSIBLE_PIPELINING=True",
+ "ANSIBLE_ROLES_PATH=../lf-ansible/roles",
+ "ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
+ "ANSIBLE_STDOUT_CALLBACK=debug"
+ ]
+ }
+ ]
+}
+++ /dev/null
-{
- "variables": {
- "public_base_image": null,
- "public_network": null,
- "public_cloud_user": null,
- "public_auth_url": null,
- "public_tenant": null,
- "public_user": null,
- "public_pass": null,
- "distro": null,
- "cloud_user_data": null,
- "ssh_proxy_host": ""
- },
- "builders": [
- {
- "type": "openstack",
- "identity_endpoint": "{{user `public_auth_url`}}",
- "domain_name": "Default",
- "tenant_name": "{{user `public_tenant`}}",
- "username": "{{user `public_user`}}",
- "password": "{{user `public_pass`}}",
- "region": "ca-ymq-1",
- "availability_zone": "ca-ymq-2",
- "ssh_username": "{{user `public_cloud_user`}}",
- "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
- "image_name": "ZZCI - {{user `distro`}} - mininet - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `public_base_image`}}",
- "flavor": "v1-standard-1",
- "networks": [
- "{{user `public_network`}}"
- ],
- "user_data_file": "{{user `cloud_user_data`}}",
- "metadata": {
- "ci_managed": "yes"
- }
- }
- ],
- "provisioners": [
- {
- "type": "shell",
- "scripts": [
- "provision/baseline.sh",
- "provision/mininet.sh",
- "provision/system_reseal_local_env.sh",
- "provision/system_reseal.sh"
- ],
- "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
- }
- ]
-}
{
- "public_base_image": "CentOS 7.1711 (2017-11-05) - LF upload",
- "public_cloud_user": "centos",
"base_image": "LF - CentOS 7.1711 (2017-11-05)",
"distro": "CentOS 7",
"ssh_user": "centos",
{
- "public_base_image": "Ubuntu 14.04.5 LTS (2017-12-05) - LF upload",
- "public_cloud_user": "ubuntu",
"base_image": "LF - Ubuntu 14.04 LTS (2017-12-01)",
"distro": "Ubuntu 14.04",
"ssh_user": "ubuntu",
{
- "public_base_image": "Ubuntu 16.04 LTS (2017-12-01) - LF upload",
- "public_cloud_user": "ubuntu",
"base_image": "LF - Ubuntu 16.04 LTS (2017-12-01)",
"distro": "Ubuntu 16.04",
"ssh_user": "ubuntu",