* CentOS 7 - devstack-ocata - 20170606-0821
* CentOS 7 - devstack-ocata - 20170609-0221
* CentOS 7 - devstack-ocata - 20170808-0528
+* CentOS 7 - devstack-pike - 20170901-2223
* CentOS 7 - docker - 20170117-0003
* CentOS 7 - docker - 20170120-1434
* CentOS 7 - docker - 20170607-0203
* Ubuntu 16.04 - mininet-ovs-25 - 20170609-0221
* Ubuntu 16.04 - mininet-ovs-25 - 20170703-2150
* Ubuntu 16.04 - mininet-ovs-25 - 20170808-0158
+* Ubuntu 16.04 - mininet-ovs-26 - 20170829-0548
* Ubuntu 16.04 LTS (2016-05-03 cloudimg)
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
-v TEST_DURATION_MULTIPLIER_CHANGE_COUNT_MANY:8.0
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
-v TEST_DURATION_MULTIPLIER:4
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
-v TEST_DURATION_MULTIPLIER:4
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
install-features: 'odl-restconf,odl-bgpcep-bgp-all,odl-bgpcep-bgp,odl-netconf-clustered-topology'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
install-features: 'odl-restconf,odl-bgpcep-pcep-all,odl-bgpcep-pcep'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
install-features: 'odl-restconf,odl-bgpcep-pcep-all,odl-bgpcep-pcep'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
robot-options: '-v USE_NETCONF_CONNECTOR:True'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
feature:
- bgp:
csit-list: >
- bgpcep-csit-1node-gate-userfeatures-only-{stream},
- bgpcep-csit-1node-gate-bgp-ingest-mixed-only-{stream}
+ bgpcep-csit-1node-gate-userfeatures-all-{stream},
+ bgpcep-csit-1node-gate-bgp-ingest-mixed-all-{stream}
- pcep:
csit-list: >
- bgpcep-csit-1node-gate-userfeatures-only-{stream},
- bgpcep-csit-1node-gate-throughpcep-only-{stream}
+ bgpcep-csit-1node-gate-userfeatures-all-{stream},
+ bgpcep-csit-1node-gate-throughpcep-all-{stream}
- carbon:
branch: 'stable/carbon'
jre: 'openjdk8'
- karaf-version: karaf3
+ karaf-version: 'karaf3'
- # TODO: Delete the following if suites are compatible with Nitrogen again.
verify-stream: 'nitrogen'
- # TODO: Remove the lines above and below when nitrogen becomes the default csit-verify stream.
- verify-branch: 'master'
+ verify-branch: 'stable/nitrogen'
+ verify-karaf-version: 'karaf4'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
testplan: '{project}-{topology}-openstack.txt'
- functionality:
- - kubernetes:
- schedule: ''
+ functionality: 'kubernetes'
stream:
- oxygen:
- nitrogen:
branch: 'stable/nitrogen'
jre: 'openjdk8'
- - carbon:
- branch: 'stable/carbon'
- jre: 'openjdk8'
- karaf-version: karaf3
openstack:
- ocata:
odl-ml2-driver-version: 'v2'
openstack_system_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
-
create-initial-networks: 'True'
enable-openstack-plugins: 'networking-odl,kuryr-kubernetes,neutron-lbaas'
enable-openstack-services: >
- q-svc,q-dhcp,q-meta,n-cauth,legacy_etcd,docker,q-lbaasv2,kubernetes-api,
+ 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'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
verify-branch: 'stable/carbon'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
- project:
name: docs-rtd
jobs:
- - 'docs-merge-rtd-{stream}'
- - 'docs-verify-rtd-{stream}'
- - '{project-name}-verify-tox-{stream}'
+ - '{project-name}-rtd-jobs'
+ - gerrit-tox-verify
stream:
- oxygen:
- branch: 'master'
- jdk: 'openjdk8'
+ branch: master
- nitrogen:
- branch: 'stable/nitrogen'
- jre: 'openjdk8'
+ branch: stable/nitrogen
- carbon:
- branch: 'stable/carbon'
+ branch: stable/carbon
- boron:
- branch: 'stable/boron'
+ branch: stable/boron
project: docs
project-name: docs
- rtdproject: opendaylight
+ build-node: centos7-java-builder-2c-4g
+ rtd-project: opendaylight
archive-artifacts: ''
- job-template:
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
stream:
- oxygen:
branch: 'master'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
- nitrogen:
branch: 'stable/nitrogen'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
- carbon:
branch: 'stable/carbon'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
karaf-version: karaf3
- boron:
branch: 'stable/boron'
- jdk: 'openjdk8'
+ os-branch: 'newton'
karaf-version: karaf3
+ jdk: 'openjdk8'
+
feature:
- netvirt:
csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-stateful-{stream}
+ netvirt-csit-1node-openstack-{os-branch}-gate-stateful-{stream}
- cluster-netvirt:
csit-list: >
- netvirt-csit-3node-openstack-ocata-gate-stateful-{stream}
+ netvirt-csit-3node-openstack-{os-branch}-gate-stateful-{stream}
- genius:
csit-list: >
- genius-csit-1node-gate-only-{stream},
genius-csit-1node-gate-all-{stream}
-Subproject commit 0ee567bb454432e6e4ca1bc6f45431b68e95bad3
+Subproject commit 21f2869c8f8ac7b2b21130eb16231a8df2904f5c
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
- schedule: 'H H * * *'
-
public-bridge: 'br-int'
enable-openstack-plugins: 'networking-odl'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
aaa-csit-1node-authn-all-boron,
-aaa-csit-1node-authn-only-boron,
aaa-csit-1node-idmlite-all-boron,
-aaa-csit-1node-idmlite-only-boron,
alto-csit-1node-setup-all-boron,
-alto-csit-1node-setup-only-boron,
bgpcep-csit-1node-periodic-bgp-ingest-all-boron,
bgpcep-csit-1node-periodic-bgp-ingest-mixed-all-boron,
-bgpcep-csit-1node-periodic-bgp-ingest-mixed-only-boron,
-bgpcep-csit-1node-periodic-bgp-ingest-only-boron,
bgpcep-csit-1node-periodic-throughpcep-all-boron,
-bgpcep-csit-1node-periodic-throughpcep-only-boron,
bgpcep-csit-1node-userfeatures-all-boron,
-bgpcep-csit-1node-userfeatures-only-boron,
bgpcep-csit-3node-periodic-bgpclustering-all-boron,
bgpcep-csit-3node-periodic-bgpclustering-ha-only-boron,
-bgpcep-csit-3node-periodic-bgpclustering-only-boron,
capwap-csit-1node-ac-all-boron,
-capwap-csit-1node-ac-only-boron,
centinel-csit-1node-basic-all-boron,
-centinel-csit-1node-basic-only-boron,
controller-csit-1node-akka1-all-boron,
-controller-csit-1node-akka1-only-boron,
controller-csit-1node-periodic-benchmark-all-boron,
-controller-csit-1node-periodic-benchmark-only-boron,
controller-csit-1node-rest-cars-perf-all-boron,
-controller-csit-1node-rest-cars-perf-only-boron,
controller-csit-3node-clustering-all-boron,
-controller-csit-3node-clustering-only-boron,
controller-csit-3node-periodic-benchmark-all-boron,
-controller-csit-3node-periodic-benchmark-only-boron,
controller-csit-3node-rest-clust-cars-perf-only-boron,
didm-csit-1node-discovery-only-boron,
distribution-csit-1node-userfeatures-all-boron,
-distribution-csit-1node-userfeatures-only-boron,
genius-csit-1node-upstream-all-boron,
-genius-csit-1node-upstream-only-boron,
genius-csit-3node-upstream-all-boron,
-genius-csit-3node-upstream-only-boron,
groupbasedpolicy-csit-1node-3-node-all-boron,
-groupbasedpolicy-csit-1node-3-node-only-boron,
groupbasedpolicy-csit-1node-6node-all-boron,
-groupbasedpolicy-csit-1node-6node-only-boron,
groupbasedpolicy-csit-1node-openstack-newton-openstack-boron,
groupbasedpolicy-csit-3node-clustering-all-boron,
-groupbasedpolicy-csit-3node-clustering-only-boron,
l2switch-csit-1node-periodic-host-scalability-daily-only-boron,
l2switch-csit-1node-scalability-all-boron,
-l2switch-csit-1node-scalability-only-boron,
l2switch-csit-1node-switch-all-boron,
-l2switch-csit-1node-switch-only-boron,
lacp-csit-1node-lacp-all-boron,
-lacp-csit-1node-lacp-only-boron,
lispflowmapping-csit-1node-msmr-all-boron,
-lispflowmapping-csit-1node-msmr-only-boron,
lispflowmapping-csit-1node-performance-only-boron,
lispflowmapping-csit-3node-msmr-all-boron,
-lispflowmapping-csit-3node-msmr-only-boron,
mdsal-csit-1node-periodic-bindingv1-only-boron,
messaging4transport-csit-1node-basic-all-boron,
-messaging4transport-csit-1node-basic-only-boron,
natapp-csit-1node-basic-all-boron,
-natapp-csit-1node-basic-only-boron,
nemo-csit-1node-engine-all-boron,
-nemo-csit-1node-engine-only-boron,
netconf-csit-1node-periodic-scale-all-boron,
-netconf-csit-1node-periodic-scale-only-boron,
netconf-csit-1node-userfeatures-all-boron,
-netconf-csit-1node-userfeatures-only-boron,
netconf-csit-3node-cluster-stress-all-boron,
-netconf-csit-3node-cluster-stress-only-boron,
netconf-csit-3node-clustering-all-boron,
-netconf-csit-3node-clustering-only-boron,
netconf-csit-3node-periodic-clustering-scale-all-boron,
-netconf-csit-3node-periodic-clustering-scale-only-boron,
netide-csit-1node-basic-all-boron,
-netide-csit-1node-basic-only-boron,
netvirt-csit-1node-openstack-newton-nodl-v2-upstream-learn-boron,
netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-boron,
netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-snat-conntrack-boron,
netvirt-csit-1node-openstack-newton-upstream-stateful-boron,
netvirt-csit-1node-openstack-newton-upstream-stateful-snat-conntrack-boron,
netvirt-csit-1node-openstack-newton-upstream-transparent-boron,
-netvirt-csit-1node-openstack-ocata-upstream-learn-boron,
-netvirt-csit-1node-openstack-ocata-upstream-stateful-boron,
-netvirt-csit-1node-openstack-ocata-upstream-stateful-snat-conntrack-boron,
-netvirt-csit-1node-openstack-ocata-upstream-transparent-boron,
netvirt-csit-3node-openstack-newton-nodl-v2-upstream-learn-boron,
netvirt-csit-3node-openstack-newton-nodl-v2-upstream-stateful-boron,
netvirt-csit-3node-openstack-newton-nodl-v2-upstream-stateful-snat-conntrack-boron,
netvirt-csit-3node-openstack-newton-upstream-stateful-boron,
netvirt-csit-3node-openstack-newton-upstream-stateful-snat-conntrack-boron,
netvirt-csit-3node-openstack-newton-upstream-transparent-boron,
-netvirt-csit-3node-openstack-ocata-upstream-learn-boron,
-netvirt-csit-3node-openstack-ocata-upstream-stateful-boron,
-netvirt-csit-3node-openstack-ocata-upstream-stateful-snat-conntrack-boron,
-netvirt-csit-3node-openstack-ocata-upstream-transparent-boron,
netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-learn-boron,
netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-stateful-boron,
netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-transparent-boron,
netvirt-csit-hwvtep-3node-openstack-newton-upstream-stateful-boron,
netvirt-csit-hwvtep-3node-openstack-newton-upstream-transparent-boron,
netvirt-legacy-csit-1node-openstack-basic-all-boron,
-netvirt-legacy-csit-1node-openstack-basic-only-boron,
netvirt-legacy-csit-1node-openstack-newton-nodl-v2-upstream-boron,
netvirt-legacy-csit-1node-openstack-newton-upstream-boron,
netvirt-legacy-csit-1node-openstack-ocata-upstream-boron,
netvirt-legacy-csit-3node-openstack-newton-upstream-boron,
netvirt-legacy-csit-3node-openstack-ocata-upstream-boron,
nic-csit-1node-basic-all-boron,
-nic-csit-1node-basic-only-boron,
ocpplugin-csit-1node-get-all-boron,
-ocpplugin-csit-1node-get-only-boron,
ocpplugin-csit-1node-scalability-all-boron,
-ocpplugin-csit-1node-scalability-only-boron,
of-config-csit-1node-basic-all-boron,
-of-config-csit-1node-basic-only-boron,
openflowplugin-csit-1node-flow-services-all-boron,
openflowplugin-csit-1node-flow-services-frs-only-boron,
-openflowplugin-csit-1node-flow-services-only-boron,
openflowplugin-csit-1node-periodic-bulkomatic-perf-daily-only-boron,
openflowplugin-csit-1node-periodic-cbench-daily-only-boron,
openflowplugin-csit-1node-periodic-link-scalability-daily-only-boron,
openflowplugin-csit-3node-periodic-bulkomatic-clustering-perf-daily-only-boron,
openflowplugin-csit-3node-periodic-restconf-clustering-perf-daily-only-boron,
ovsdb-csit-1node-upstream-southbound-all-boron,
-ovsdb-csit-1node-upstream-southbound-only-boron,
ovsdb-csit-3node-upstream-clustering-only-boron,
packetcable-csit-1node-pcmm-all-boron,
-packetcable-csit-1node-pcmm-only-boron,
sdninterfaceapp-csit-1node-basic-only-boron,
sfc-csit-3node-rest-basic-all-boron,
-sfc-csit-3node-rest-basic-only-boron,
snmp-csit-1node-basic-all-boron,
-snmp-csit-1node-basic-only-boron,
sxp-csit-1node-basic-all-boron,
-sxp-csit-1node-basic-only-boron,
sxp-csit-1node-filtering-all-boron,
-sxp-csit-1node-filtering-only-boron,
sxp-csit-1node-topology-all-boron,
-sxp-csit-1node-topology-only-boron,
sxp-csit-3node-periodic-clustering-all-boron,
-sxp-csit-3node-periodic-clustering-only-boron,
topoprocessing-csit-1node-topology-operations-all-boron,
-topoprocessing-csit-1node-topology-operations-only-boron,
tsdr-csit-1node-cassandra-datastore-only-boron,
tsdr-csit-1node-hbase-datastore-all-boron,
-tsdr-csit-1node-hbase-datastore-only-boron,
tsdr-csit-1node-hsqldb-datastore-all-boron,
-tsdr-csit-1node-hsqldb-datastore-only-boron,
unimgr-csit-1node-basic-all-boron,
-unimgr-csit-1node-basic-only-boron,
unimgr-csit-1node-legato-all-boron,
-unimgr-csit-1node-legato-only-boron,
usc-csit-1node-channel-all-boron,
-usc-csit-1node-channel-only-boron,
usc-csit-1node-tcp-all-boron,
-usc-csit-1node-tcp-only-boron,
usc-csit-1node-udp-all-boron,
-usc-csit-1node-udp-only-boron,
usecplugin-csit-1node-basic-all-boron,
-usecplugin-csit-1node-basic-only-boron,
vtn-csit-1node-coordinator-only-boron,
vtn-csit-1node-manager-all-boron,
-vtn-csit-1node-manager-only-boron,
vtn-csit-1node-openstack-newton-neutron-boron,
vtn-csit-3node-manager-all-boron,
-vtn-csit-3node-manager-only-boron,
aaa-csit-1node-authn-all-carbon,
-aaa-csit-1node-authn-only-carbon,
aaa-csit-1node-idmlite-all-carbon,
-aaa-csit-1node-idmlite-only-carbon,
aaa-csit-1node-keystone-all-carbon,
-aaa-csit-1node-keystone-only-carbon,
aaa-csit-1node-tls-only-carbon,
alto-csit-1node-setup-all-carbon,
-alto-csit-1node-setup-only-carbon,
bgpcep-csit-1node-periodic-bgp-ingest-all-carbon,
bgpcep-csit-1node-periodic-bgp-ingest-mixed-all-carbon,
-bgpcep-csit-1node-periodic-bgp-ingest-mixed-only-carbon,
-bgpcep-csit-1node-periodic-bgp-ingest-only-carbon,
bgpcep-csit-1node-periodic-throughpcep-all-carbon,
-bgpcep-csit-1node-periodic-throughpcep-only-carbon,
bgpcep-csit-1node-userfeatures-all-carbon,
-bgpcep-csit-1node-userfeatures-only-carbon,
bgpcep-csit-3node-periodic-bgpclustering-all-carbon,
bgpcep-csit-3node-periodic-bgpclustering-ha-only-carbon,
-bgpcep-csit-3node-periodic-bgpclustering-only-carbon,
bier-csit-1node-basic-all-carbon,
-bier-csit-1node-basic-only-carbon,
controller-csit-1node-akka1-all-carbon,
-controller-csit-1node-akka1-only-carbon,
controller-csit-1node-periodic-benchmark-all-carbon,
-controller-csit-1node-periodic-benchmark-only-carbon,
controller-csit-1node-rest-cars-perf-all-carbon,
-controller-csit-1node-rest-cars-perf-only-carbon,
controller-csit-3node-clustering-all-carbon,
-controller-csit-3node-clustering-only-carbon,
controller-csit-3node-periodic-benchmark-all-carbon,
-controller-csit-3node-periodic-benchmark-only-carbon,
controller-csit-3node-rest-clust-cars-perf-only-carbon,
didm-csit-1node-discovery-only-carbon,
distribution-csit-1node-userfeatures-all-carbon,
-distribution-csit-1node-userfeatures-only-carbon,
dluxapps-csit-1node-yangman-all-carbon,
-dluxapps-csit-1node-yangman-only-carbon,
genius-csit-1node-upstream-all-carbon,
-genius-csit-1node-upstream-only-carbon,
genius-csit-3node-upstream-all-carbon,
-genius-csit-3node-upstream-only-carbon,
groupbasedpolicy-csit-1node-3-node-all-carbon,
-groupbasedpolicy-csit-1node-3-node-only-carbon,
groupbasedpolicy-csit-1node-6node-all-carbon,
-groupbasedpolicy-csit-1node-6node-only-carbon,
groupbasedpolicy-csit-1node-openstack-newton-openstack-carbon,
groupbasedpolicy-csit-1node-sxp-only-carbon,
groupbasedpolicy-csit-3node-clustering-all-carbon,
-groupbasedpolicy-csit-3node-clustering-only-carbon,
iotdm-csit-1node-basic-all-carbon,
-iotdm-csit-1node-basic-only-carbon,
l2switch-csit-1node-periodic-host-scalability-daily-only-carbon,
l2switch-csit-1node-scalability-all-carbon,
-l2switch-csit-1node-scalability-only-carbon,
l2switch-csit-1node-switch-all-carbon,
-l2switch-csit-1node-switch-only-carbon,
lacp-csit-1node-lacp-all-carbon,
-lacp-csit-1node-lacp-only-carbon,
lispflowmapping-csit-1node-msmr-all-carbon,
-lispflowmapping-csit-1node-msmr-only-carbon,
lispflowmapping-csit-1node-performance-only-carbon,
lispflowmapping-csit-3node-msmr-all-carbon,
-lispflowmapping-csit-3node-msmr-only-carbon,
mdsal-csit-1node-periodic-bindingv1-only-carbon,
messaging4transport-csit-1node-basic-all-carbon,
-messaging4transport-csit-1node-basic-only-carbon,
natapp-csit-1node-basic-all-carbon,
-natapp-csit-1node-basic-only-carbon,
nemo-csit-1node-engine-all-carbon,
-nemo-csit-1node-engine-only-carbon,
netconf-csit-1node-callhome-only-carbon,
netconf-csit-1node-periodic-scale-all-carbon,
-netconf-csit-1node-periodic-scale-only-carbon,
netconf-csit-1node-userfeatures-all-carbon,
-netconf-csit-1node-userfeatures-only-carbon,
netconf-csit-3node-cluster-stress-all-carbon,
-netconf-csit-3node-cluster-stress-only-carbon,
netconf-csit-3node-clustering-all-carbon,
-netconf-csit-3node-clustering-only-carbon,
netconf-csit-3node-periodic-clustering-scale-all-carbon,
-netconf-csit-3node-periodic-clustering-scale-only-carbon,
netide-csit-1node-basic-all-carbon,
-netide-csit-1node-basic-only-carbon,
-netvirt-csit-1node-openstack-newton-nodl-v2-extensions-sfc-carbon,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-learn-carbon,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-carbon,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-snat-conntrack-carbon,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-transparent-carbon,
-netvirt-csit-1node-openstack-newton-upstream-learn-carbon,
-netvirt-csit-1node-openstack-newton-upstream-stateful-carbon,
-netvirt-csit-1node-openstack-newton-upstream-stateful-snat-conntrack-carbon,
-netvirt-csit-1node-openstack-newton-upstream-transparent-carbon,
-netvirt-csit-1node-openstack-ocata-upstream-learn-carbon,
netvirt-csit-1node-openstack-ocata-upstream-stateful-carbon,
netvirt-csit-1node-openstack-ocata-upstream-stateful-snat-conntrack-carbon,
-netvirt-csit-1node-openstack-ocata-upstream-transparent-carbon,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-learn-carbon,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-stateful-carbon,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-stateful-snat-conntrack-carbon,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-transparent-carbon,
-netvirt-csit-3node-openstack-newton-upstream-learn-carbon,
-netvirt-csit-3node-openstack-newton-upstream-stateful-carbon,
-netvirt-csit-3node-openstack-newton-upstream-stateful-snat-conntrack-carbon,
-netvirt-csit-3node-openstack-newton-upstream-transparent-carbon,
-netvirt-csit-3node-openstack-ocata-upstream-learn-carbon,
+netvirt-csit-1node-openstack-pike-sfc-carbon,
+netvirt-csit-1node-openstack-pike-upstream-stateful-carbon,
+netvirt-csit-1node-openstack-pike-upstream-stateful-snat-conntrack-carbon,
netvirt-csit-3node-openstack-ocata-upstream-stateful-carbon,
netvirt-csit-3node-openstack-ocata-upstream-stateful-snat-conntrack-carbon,
-netvirt-csit-3node-openstack-ocata-upstream-transparent-carbon,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-learn-carbon,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-stateful-carbon,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-transparent-carbon,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-learn-carbon,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-stateful-carbon,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-transparent-carbon,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-learn-carbon,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-stateful-carbon,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-transparent-carbon,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-learn-carbon,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-stateful-carbon,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-transparent-carbon,
+netvirt-csit-3node-openstack-pike-upstream-stateful-carbon,
+netvirt-csit-3node-openstack-pike-upstream-stateful-snat-conntrack-carbon,
+netvirt-csit-hwvtep-1node-openstack-ocata-upstream-stateful-carbon,
+netvirt-csit-hwvtep-1node-openstack-pike-upstream-stateful-carbon,
+netvirt-csit-hwvtep-3node-openstack-ocata-upstream-stateful-carbon,
+netvirt-csit-hwvtep-3node-openstack-pike-upstream-stateful-carbon,
nic-csit-1node-basic-all-carbon,
-nic-csit-1node-basic-only-carbon,
ocpplugin-csit-1node-get-all-carbon,
-ocpplugin-csit-1node-get-only-carbon,
ocpplugin-csit-1node-scalability-all-carbon,
-ocpplugin-csit-1node-scalability-only-carbon,
of-config-csit-1node-basic-all-carbon,
-of-config-csit-1node-basic-only-carbon,
openflowplugin-csit-1node-flow-services-all-carbon,
openflowplugin-csit-1node-flow-services-frs-only-carbon,
-openflowplugin-csit-1node-flow-services-only-carbon,
openflowplugin-csit-1node-periodic-bulkomatic-perf-daily-only-carbon,
openflowplugin-csit-1node-periodic-cbench-daily-only-carbon,
openflowplugin-csit-1node-periodic-link-scalability-daily-only-carbon,
openflowplugin-csit-3node-periodic-bulkomatic-clustering-perf-daily-only-carbon,
openflowplugin-csit-3node-periodic-restconf-clustering-perf-daily-only-carbon,
ovsdb-csit-1node-upstream-southbound-all-carbon,
-ovsdb-csit-1node-upstream-southbound-only-carbon,
ovsdb-csit-3node-upstream-clustering-only-carbon,
packetcable-csit-1node-pcmm-all-carbon,
-packetcable-csit-1node-pcmm-only-carbon,
sdninterfaceapp-csit-1node-basic-only-carbon,
sfc-csit-3node-docker-full-deploy-all-carbon,
-sfc-csit-3node-docker-full-deploy-only-carbon,
sfc-csit-3node-rest-basic-all-carbon,
-sfc-csit-3node-rest-basic-only-carbon,
snmp-csit-1node-basic-all-carbon,
-snmp-csit-1node-basic-only-carbon,
sxp-csit-1node-basic-all-carbon,
-sxp-csit-1node-basic-only-carbon,
sxp-csit-1node-filtering-all-carbon,
-sxp-csit-1node-filtering-only-carbon,
sxp-csit-1node-periodic-performance-all-carbon,
-sxp-csit-1node-periodic-performance-only-carbon,
sxp-csit-1node-topology-all-carbon,
-sxp-csit-1node-topology-only-carbon,
sxp-csit-3node-periodic-clustering-all-carbon,
-sxp-csit-3node-periodic-clustering-only-carbon,
sxp-csit-3node-periodic-routing-all-carbon,
-sxp-csit-3node-periodic-routing-only-carbon,
topoprocessing-csit-1node-topology-operations-all-carbon,
-topoprocessing-csit-1node-topology-operations-only-carbon,
tsdr-csit-1node-cassandra-datastore-only-carbon,
tsdr-csit-1node-elasticsearch-datastore-only-carbon,
tsdr-csit-1node-hbase-datastore-all-carbon,
-tsdr-csit-1node-hbase-datastore-only-carbon,
tsdr-csit-1node-hsqldb-datastore-all-carbon,
-tsdr-csit-1node-hsqldb-datastore-only-carbon,
unimgr-csit-1node-basic-all-carbon,
-unimgr-csit-1node-basic-only-carbon,
unimgr-csit-1node-legato-all-carbon,
-unimgr-csit-1node-legato-only-carbon,
usc-csit-1node-channel-all-carbon,
-usc-csit-1node-channel-only-carbon,
usc-csit-1node-tcp-all-carbon,
-usc-csit-1node-tcp-only-carbon,
usecplugin-csit-1node-basic-all-carbon,
-usecplugin-csit-1node-basic-only-carbon,
vtn-csit-1node-coordinator-only-carbon,
vtn-csit-1node-manager-all-carbon,
-vtn-csit-1node-manager-only-carbon,
vtn-csit-1node-openstack-newton-neutron-carbon,
vtn-csit-3node-manager-all-carbon,
-vtn-csit-3node-manager-only-carbon,
yangtools-csit-1node-periodic-system-only-carbon,
aaa-csit-1node-authn-all-nitrogen,
-aaa-csit-1node-authn-only-nitrogen,
aaa-csit-1node-idmlite-all-nitrogen,
-aaa-csit-1node-idmlite-only-nitrogen,
aaa-csit-1node-keystone-all-nitrogen,
-aaa-csit-1node-keystone-only-nitrogen,
aaa-csit-1node-tls-only-nitrogen,
alto-csit-1node-setup-all-nitrogen,
-alto-csit-1node-setup-only-nitrogen,
bgpcep-csit-1node-periodic-bgp-ingest-all-nitrogen,
bgpcep-csit-1node-periodic-bgp-ingest-mixed-all-nitrogen,
-bgpcep-csit-1node-periodic-bgp-ingest-mixed-only-nitrogen,
-bgpcep-csit-1node-periodic-bgp-ingest-only-nitrogen,
bgpcep-csit-1node-periodic-throughpcep-all-nitrogen,
-bgpcep-csit-1node-periodic-throughpcep-only-nitrogen,
bgpcep-csit-1node-userfeatures-all-nitrogen,
-bgpcep-csit-1node-userfeatures-only-nitrogen,
bgpcep-csit-3node-periodic-bgpclustering-all-nitrogen,
bgpcep-csit-3node-periodic-bgpclustering-ha-only-nitrogen,
-bgpcep-csit-3node-periodic-bgpclustering-only-nitrogen,
bier-csit-1node-basic-all-nitrogen,
-bier-csit-1node-basic-only-nitrogen,
controller-csit-1node-akka1-all-nitrogen,
-controller-csit-1node-akka1-only-nitrogen,
controller-csit-1node-periodic-benchmark-all-nitrogen,
-controller-csit-1node-periodic-benchmark-only-nitrogen,
controller-csit-1node-rest-cars-perf-all-nitrogen,
-controller-csit-1node-rest-cars-perf-only-nitrogen,
controller-csit-3node-clustering-all-nitrogen,
-controller-csit-3node-clustering-only-nitrogen,
controller-csit-3node-periodic-benchmark-all-nitrogen,
-controller-csit-3node-periodic-benchmark-only-nitrogen,
controller-csit-3node-rest-clust-cars-perf-only-nitrogen,
daexim-csit-1node-basic-only-nitrogen,
distribution-csit-1node-userfeatures-all-nitrogen,
-distribution-csit-1node-userfeatures-only-nitrogen,
dluxapps-csit-1node-yangman-all-nitrogen,
-dluxapps-csit-1node-yangman-only-nitrogen,
genius-csit-1node-upstream-all-nitrogen,
-genius-csit-1node-upstream-only-nitrogen,
genius-csit-3node-upstream-all-nitrogen,
-genius-csit-3node-upstream-only-nitrogen,
groupbasedpolicy-csit-1node-3-node-all-nitrogen,
-groupbasedpolicy-csit-1node-3-node-only-nitrogen,
groupbasedpolicy-csit-1node-6node-all-nitrogen,
-groupbasedpolicy-csit-1node-6node-only-nitrogen,
groupbasedpolicy-csit-1node-openstack-newton-openstack-nitrogen,
groupbasedpolicy-csit-1node-sxp-only-nitrogen,
groupbasedpolicy-csit-3node-clustering-all-nitrogen,
-groupbasedpolicy-csit-3node-clustering-only-nitrogen,
l2switch-csit-1node-periodic-host-scalability-daily-only-nitrogen,
l2switch-csit-1node-scalability-all-nitrogen,
-l2switch-csit-1node-scalability-only-nitrogen,
l2switch-csit-1node-switch-all-nitrogen,
-l2switch-csit-1node-switch-only-nitrogen,
lispflowmapping-csit-1node-msmr-all-nitrogen,
-lispflowmapping-csit-1node-msmr-only-nitrogen,
lispflowmapping-csit-1node-performance-only-nitrogen,
lispflowmapping-csit-3node-msmr-all-nitrogen,
-lispflowmapping-csit-3node-msmr-only-nitrogen,
mdsal-csit-1node-periodic-bindingv1-only-nitrogen,
messaging4transport-csit-1node-basic-all-nitrogen,
-messaging4transport-csit-1node-basic-only-nitrogen,
natapp-csit-1node-basic-all-nitrogen,
-natapp-csit-1node-basic-only-nitrogen,
nemo-csit-1node-engine-all-nitrogen,
-nemo-csit-1node-engine-only-nitrogen,
netconf-csit-1node-callhome-only-nitrogen,
netconf-csit-1node-periodic-scale-all-nitrogen,
-netconf-csit-1node-periodic-scale-only-nitrogen,
netconf-csit-1node-userfeatures-all-nitrogen,
-netconf-csit-1node-userfeatures-only-nitrogen,
netconf-csit-3node-cluster-stress-all-nitrogen,
-netconf-csit-3node-cluster-stress-only-nitrogen,
netconf-csit-3node-clustering-all-nitrogen,
-netconf-csit-3node-clustering-only-nitrogen,
netconf-csit-3node-periodic-clustering-scale-all-nitrogen,
-netconf-csit-3node-periodic-clustering-scale-only-nitrogen,
-netvirt-csit-1node-openstack-newton-nodl-v2-extensions-sfc-nitrogen,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-learn-nitrogen,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-nitrogen,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-snat-conntrack-nitrogen,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-transparent-nitrogen,
-netvirt-csit-1node-openstack-newton-upstream-learn-nitrogen,
-netvirt-csit-1node-openstack-newton-upstream-stateful-nitrogen,
-netvirt-csit-1node-openstack-newton-upstream-stateful-snat-conntrack-nitrogen,
-netvirt-csit-1node-openstack-newton-upstream-transparent-nitrogen,
-netvirt-csit-1node-openstack-ocata-upstream-learn-nitrogen,
netvirt-csit-1node-openstack-ocata-upstream-stateful-nitrogen,
netvirt-csit-1node-openstack-ocata-upstream-stateful-snat-conntrack-nitrogen,
-netvirt-csit-1node-openstack-ocata-upstream-transparent-nitrogen,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-learn-nitrogen,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-stateful-nitrogen,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-stateful-snat-conntrack-nitrogen,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-transparent-nitrogen,
-netvirt-csit-3node-openstack-newton-upstream-learn-nitrogen,
-netvirt-csit-3node-openstack-newton-upstream-stateful-nitrogen,
-netvirt-csit-3node-openstack-newton-upstream-stateful-snat-conntrack-nitrogen,
-netvirt-csit-3node-openstack-newton-upstream-transparent-nitrogen,
-netvirt-csit-3node-openstack-ocata-upstream-learn-nitrogen,
+netvirt-csit-1node-openstack-pike-sfc-nitrogen,
+netvirt-csit-1node-openstack-pike-upstream-stateful-nitrogen,
+netvirt-csit-1node-openstack-pike-upstream-stateful-snat-conntrack-nitrogen,
+netvirt-csit-1node-openstack-queens-upstream-stateful-nitrogen,
+netvirt-csit-1node-openstack-queens-upstream-stateful-snat-conntrack-nitrogen,
netvirt-csit-3node-openstack-ocata-upstream-stateful-nitrogen,
netvirt-csit-3node-openstack-ocata-upstream-stateful-snat-conntrack-nitrogen,
-netvirt-csit-3node-openstack-ocata-upstream-transparent-nitrogen,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-learn-nitrogen,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-stateful-nitrogen,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-transparent-nitrogen,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-learn-nitrogen,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-stateful-nitrogen,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-transparent-nitrogen,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-learn-nitrogen,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-stateful-nitrogen,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-transparent-nitrogen,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-learn-nitrogen,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-stateful-nitrogen,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-transparent-nitrogen,
+netvirt-csit-3node-openstack-pike-upstream-stateful-nitrogen,
+netvirt-csit-3node-openstack-pike-upstream-stateful-snat-conntrack-nitrogen,
+netvirt-csit-3node-openstack-queens-upstream-stateful-nitrogen,
+netvirt-csit-3node-openstack-queens-upstream-stateful-snat-conntrack-nitrogen,
+netvirt-csit-hwvtep-1node-openstack-ocata-upstream-stateful-nitrogen,
+netvirt-csit-hwvtep-1node-openstack-pike-upstream-stateful-nitrogen,
+netvirt-csit-hwvtep-1node-openstack-queens-upstream-stateful-nitrogen,
+netvirt-csit-hwvtep-3node-openstack-ocata-upstream-stateful-nitrogen,
+netvirt-csit-hwvtep-3node-openstack-pike-upstream-stateful-nitrogen,
+netvirt-csit-hwvtep-3node-openstack-queens-upstream-stateful-nitrogen,
nic-csit-1node-basic-all-nitrogen,
-nic-csit-1node-basic-only-nitrogen,
ocpplugin-csit-1node-get-all-nitrogen,
-ocpplugin-csit-1node-get-only-nitrogen,
ocpplugin-csit-1node-scalability-all-nitrogen,
-ocpplugin-csit-1node-scalability-only-nitrogen,
of-config-csit-1node-basic-all-nitrogen,
-of-config-csit-1node-basic-only-nitrogen,
openflowplugin-csit-1node-flow-services-all-nitrogen,
openflowplugin-csit-1node-flow-services-frs-only-nitrogen,
-openflowplugin-csit-1node-flow-services-only-nitrogen,
openflowplugin-csit-1node-periodic-bulkomatic-perf-daily-only-nitrogen,
openflowplugin-csit-1node-periodic-cbench-daily-only-nitrogen,
openflowplugin-csit-1node-periodic-link-scalability-daily-only-nitrogen,
openflowplugin-csit-3node-periodic-bulkomatic-clustering-perf-daily-only-nitrogen,
openflowplugin-csit-3node-periodic-restconf-clustering-perf-daily-only-nitrogen,
ovsdb-csit-1node-upstream-southbound-all-nitrogen,
-ovsdb-csit-1node-upstream-southbound-only-nitrogen,
ovsdb-csit-3node-upstream-clustering-only-nitrogen,
packetcable-csit-1node-pcmm-all-nitrogen,
-packetcable-csit-1node-pcmm-only-nitrogen,
sdninterfaceapp-csit-1node-basic-only-nitrogen,
sfc-csit-3node-docker-full-deploy-all-nitrogen,
-sfc-csit-3node-docker-full-deploy-only-nitrogen,
sfc-csit-3node-rest-basic-all-nitrogen,
-sfc-csit-3node-rest-basic-only-nitrogen,
snmp-csit-1node-basic-all-nitrogen,
-snmp-csit-1node-basic-only-nitrogen,
sxp-csit-1node-basic-all-nitrogen,
-sxp-csit-1node-basic-only-nitrogen,
sxp-csit-1node-filtering-all-nitrogen,
-sxp-csit-1node-filtering-only-nitrogen,
sxp-csit-1node-periodic-performance-all-nitrogen,
-sxp-csit-1node-periodic-performance-only-nitrogen,
sxp-csit-1node-topology-all-nitrogen,
-sxp-csit-1node-topology-only-nitrogen,
sxp-csit-3node-periodic-clustering-all-nitrogen,
-sxp-csit-3node-periodic-clustering-only-nitrogen,
sxp-csit-3node-periodic-routing-all-nitrogen,
-sxp-csit-3node-periodic-routing-only-nitrogen,
topoprocessing-csit-1node-topology-operations-all-nitrogen,
-topoprocessing-csit-1node-topology-operations-only-nitrogen,
unimgr-csit-1node-basic-all-nitrogen,
-unimgr-csit-1node-basic-only-nitrogen,
unimgr-csit-1node-legato-all-nitrogen,
-unimgr-csit-1node-legato-only-nitrogen,
usc-csit-1node-channel-all-nitrogen,
-usc-csit-1node-channel-only-nitrogen,
usc-csit-1node-tcp-all-nitrogen,
-usc-csit-1node-tcp-only-nitrogen,
usecplugin-csit-1node-basic-all-nitrogen,
-usecplugin-csit-1node-basic-only-nitrogen,
vtn-csit-1node-coordinator-only-nitrogen,
vtn-csit-1node-manager-all-nitrogen,
-vtn-csit-1node-manager-only-nitrogen,
vtn-csit-1node-openstack-newton-neutron-nitrogen,
vtn-csit-3node-manager-all-nitrogen,
-vtn-csit-3node-manager-only-nitrogen,
yangtools-csit-1node-periodic-system-only-nitrogen,
aaa-csit-1node-authn-all-oxygen,
-aaa-csit-1node-authn-only-oxygen,
aaa-csit-1node-idmlite-all-oxygen,
-aaa-csit-1node-idmlite-only-oxygen,
aaa-csit-1node-keystone-all-oxygen,
-aaa-csit-1node-keystone-only-oxygen,
aaa-csit-1node-tls-only-oxygen,
alto-csit-1node-setup-all-oxygen,
-alto-csit-1node-setup-only-oxygen,
bgpcep-csit-1node-periodic-bgp-ingest-all-oxygen,
-bgpcep-csit-1node-periodic-bgp-ingest-only-oxygen,
bgpcep-csit-1node-periodic-throughpcep-all-oxygen,
-bgpcep-csit-1node-periodic-throughpcep-only-oxygen,
bgpcep-csit-1node-userfeatures-all-oxygen,
-bgpcep-csit-1node-userfeatures-only-oxygen,
bgpcep-csit-3node-periodic-bgpclustering-all-oxygen,
bgpcep-csit-3node-periodic-bgpclustering-ha-only-oxygen,
-bgpcep-csit-3node-periodic-bgpclustering-only-oxygen,
bier-csit-1node-basic-all-oxygen,
-bier-csit-1node-basic-only-oxygen,
controller-csit-1node-akka1-all-oxygen,
-controller-csit-1node-akka1-only-oxygen,
controller-csit-1node-periodic-benchmark-all-oxygen,
-controller-csit-1node-periodic-benchmark-only-oxygen,
controller-csit-1node-rest-cars-perf-all-oxygen,
-controller-csit-1node-rest-cars-perf-only-oxygen,
controller-csit-3node-clustering-all-oxygen,
-controller-csit-3node-clustering-only-oxygen,
controller-csit-3node-periodic-benchmark-all-oxygen,
-controller-csit-3node-periodic-benchmark-only-oxygen,
controller-csit-3node-rest-clust-cars-perf-only-oxygen,
daexim-csit-1node-basic-only-oxygen,
distribution-csit-1node-userfeatures-all-oxygen,
-distribution-csit-1node-userfeatures-only-oxygen,
dluxapps-csit-1node-yangman-all-oxygen,
-dluxapps-csit-1node-yangman-only-oxygen,
genius-csit-1node-upstream-all-oxygen,
-genius-csit-1node-upstream-only-oxygen,
genius-csit-3node-upstream-all-oxygen,
-genius-csit-3node-upstream-only-oxygen,
groupbasedpolicy-csit-1node-3-node-all-oxygen,
-groupbasedpolicy-csit-1node-3-node-only-oxygen,
groupbasedpolicy-csit-1node-6node-all-oxygen,
-groupbasedpolicy-csit-1node-6node-only-oxygen,
groupbasedpolicy-csit-1node-openstack-newton-openstack-oxygen,
groupbasedpolicy-csit-1node-sxp-only-oxygen,
groupbasedpolicy-csit-3node-clustering-all-oxygen,
-groupbasedpolicy-csit-3node-clustering-only-oxygen,
l2switch-csit-1node-periodic-host-scalability-daily-only-oxygen,
l2switch-csit-1node-scalability-all-oxygen,
-l2switch-csit-1node-scalability-only-oxygen,
l2switch-csit-1node-switch-all-oxygen,
-l2switch-csit-1node-switch-only-oxygen,
lispflowmapping-csit-1node-msmr-all-oxygen,
-lispflowmapping-csit-1node-msmr-only-oxygen,
lispflowmapping-csit-1node-performance-only-oxygen,
lispflowmapping-csit-3node-msmr-all-oxygen,
-lispflowmapping-csit-3node-msmr-only-oxygen,
mdsal-csit-1node-periodic-bindingv1-only-oxygen,
messaging4transport-csit-1node-basic-all-oxygen,
-messaging4transport-csit-1node-basic-only-oxygen,
natapp-csit-1node-basic-all-oxygen,
-natapp-csit-1node-basic-only-oxygen,
nemo-csit-1node-engine-all-oxygen,
-nemo-csit-1node-engine-only-oxygen,
netconf-csit-1node-callhome-only-oxygen,
netconf-csit-1node-periodic-scale-all-oxygen,
-netconf-csit-1node-periodic-scale-only-oxygen,
netconf-csit-1node-userfeatures-all-oxygen,
-netconf-csit-1node-userfeatures-only-oxygen,
netconf-csit-3node-cluster-stress-all-oxygen,
-netconf-csit-3node-cluster-stress-only-oxygen,
netconf-csit-3node-clustering-all-oxygen,
-netconf-csit-3node-clustering-only-oxygen,
netconf-csit-3node-periodic-clustering-scale-all-oxygen,
-netconf-csit-3node-periodic-clustering-scale-only-oxygen,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-learn-oxygen,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-oxygen,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-1node-openstack-newton-nodl-v2-upstream-transparent-oxygen,
-netvirt-csit-1node-openstack-newton-upstream-learn-oxygen,
-netvirt-csit-1node-openstack-newton-upstream-stateful-oxygen,
-netvirt-csit-1node-openstack-newton-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-1node-openstack-newton-upstream-transparent-oxygen,
-netvirt-csit-1node-openstack-ocata-upstream-learn-oxygen,
netvirt-csit-1node-openstack-ocata-upstream-stateful-oxygen,
netvirt-csit-1node-openstack-ocata-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-1node-openstack-ocata-upstream-transparent-oxygen,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-learn-oxygen,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-stateful-oxygen,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-3node-openstack-newton-nodl-v2-upstream-transparent-oxygen,
-netvirt-csit-3node-openstack-newton-upstream-learn-oxygen,
-netvirt-csit-3node-openstack-newton-upstream-stateful-oxygen,
-netvirt-csit-3node-openstack-newton-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-3node-openstack-newton-upstream-transparent-oxygen,
-netvirt-csit-3node-openstack-ocata-upstream-learn-oxygen,
+netvirt-csit-1node-openstack-pike-sfc-oxygen,
+netvirt-csit-1node-openstack-pike-upstream-stateful-oxygen,
+netvirt-csit-1node-openstack-pike-upstream-stateful-snat-conntrack-oxygen,
+netvirt-csit-1node-openstack-queens-upstream-stateful-oxygen,
+netvirt-csit-1node-openstack-queens-upstream-stateful-snat-conntrack-oxygen,
netvirt-csit-3node-openstack-ocata-upstream-stateful-oxygen,
netvirt-csit-3node-openstack-ocata-upstream-stateful-snat-conntrack-oxygen,
-netvirt-csit-3node-openstack-ocata-upstream-transparent-oxygen,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-learn-oxygen,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-stateful-oxygen,
-netvirt-csit-hwvtep-1node-openstack-newton-nodl-v2-upstream-transparent-oxygen,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-learn-oxygen,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-stateful-oxygen,
-netvirt-csit-hwvtep-1node-openstack-newton-upstream-transparent-oxygen,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-learn-oxygen,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-stateful-oxygen,
-netvirt-csit-hwvtep-3node-openstack-newton-nodl-v2-upstream-transparent-oxygen,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-learn-oxygen,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-stateful-oxygen,
-netvirt-csit-hwvtep-3node-openstack-newton-upstream-transparent-oxygen,
+netvirt-csit-3node-openstack-pike-upstream-stateful-oxygen,
+netvirt-csit-3node-openstack-pike-upstream-stateful-snat-conntrack-oxygen,
+netvirt-csit-3node-openstack-queens-upstream-stateful-oxygen,
+netvirt-csit-3node-openstack-queens-upstream-stateful-snat-conntrack-oxygen,
+netvirt-csit-hwvtep-1node-openstack-ocata-upstream-stateful-oxygen,
+netvirt-csit-hwvtep-1node-openstack-pike-upstream-stateful-oxygen,
+netvirt-csit-hwvtep-1node-openstack-queens-upstream-stateful-oxygen,
+netvirt-csit-hwvtep-3node-openstack-ocata-upstream-stateful-oxygen,
+netvirt-csit-hwvtep-3node-openstack-pike-upstream-stateful-oxygen,
+netvirt-csit-hwvtep-3node-openstack-queens-upstream-stateful-oxygen,
nic-csit-1node-basic-all-oxygen,
-nic-csit-1node-basic-only-oxygen,
ocpplugin-csit-1node-get-all-oxygen,
-ocpplugin-csit-1node-get-only-oxygen,
ocpplugin-csit-1node-scalability-all-oxygen,
-ocpplugin-csit-1node-scalability-only-oxygen,
of-config-csit-1node-basic-all-oxygen,
-of-config-csit-1node-basic-only-oxygen,
openflowplugin-csit-1node-flow-services-all-oxygen,
openflowplugin-csit-1node-flow-services-frs-only-oxygen,
-openflowplugin-csit-1node-flow-services-only-oxygen,
openflowplugin-csit-1node-periodic-bulkomatic-perf-daily-only-oxygen,
openflowplugin-csit-1node-periodic-cbench-daily-only-oxygen,
openflowplugin-csit-1node-periodic-link-scalability-daily-only-oxygen,
openflowplugin-csit-3node-periodic-bulkomatic-clustering-perf-daily-only-oxygen,
openflowplugin-csit-3node-periodic-restconf-clustering-perf-daily-only-oxygen,
ovsdb-csit-1node-upstream-southbound-all-oxygen,
-ovsdb-csit-1node-upstream-southbound-only-oxygen,
ovsdb-csit-3node-upstream-clustering-only-oxygen,
packetcable-csit-1node-pcmm-all-oxygen,
-packetcable-csit-1node-pcmm-only-oxygen,
sdninterfaceapp-csit-1node-basic-only-oxygen,
sfc-csit-3node-docker-full-deploy-all-oxygen,
-sfc-csit-3node-docker-full-deploy-only-oxygen,
sfc-csit-3node-rest-basic-all-oxygen,
-sfc-csit-3node-rest-basic-only-oxygen,
snmp-csit-1node-basic-all-oxygen,
-snmp-csit-1node-basic-only-oxygen,
sxp-csit-1node-basic-all-oxygen,
-sxp-csit-1node-basic-only-oxygen,
sxp-csit-1node-filtering-all-oxygen,
-sxp-csit-1node-filtering-only-oxygen,
sxp-csit-1node-periodic-performance-all-oxygen,
-sxp-csit-1node-periodic-performance-only-oxygen,
sxp-csit-1node-topology-all-oxygen,
-sxp-csit-1node-topology-only-oxygen,
sxp-csit-3node-periodic-clustering-all-oxygen,
-sxp-csit-3node-periodic-clustering-only-oxygen,
sxp-csit-3node-periodic-routing-all-oxygen,
-sxp-csit-3node-periodic-routing-only-oxygen,
topoprocessing-csit-1node-topology-operations-all-oxygen,
-topoprocessing-csit-1node-topology-operations-only-oxygen,
unimgr-csit-1node-basic-all-oxygen,
-unimgr-csit-1node-basic-only-oxygen,
unimgr-csit-1node-legato-all-oxygen,
-unimgr-csit-1node-legato-only-oxygen,
usc-csit-1node-channel-all-oxygen,
-usc-csit-1node-channel-only-oxygen,
usc-csit-1node-tcp-all-oxygen,
-usc-csit-1node-tcp-only-oxygen,
usecplugin-csit-1node-basic-all-oxygen,
-usecplugin-csit-1node-basic-only-oxygen,
vtn-csit-1node-coordinator-only-oxygen,
vtn-csit-1node-manager-all-oxygen,
-vtn-csit-1node-manager-only-oxygen,
vtn-csit-1node-openstack-newton-neutron-oxygen,
vtn-csit-3node-manager-all-oxygen,
-vtn-csit-3node-manager-only-oxygen,
yangtools-csit-1node-periodic-system-only-oxygen,
echo "Starting controller..."
${WORKSPACE}/${BUNDLEFOLDER}/bin/start
-echo "Sleeping 30 seconds to make sure Karaf ssh has started..."
-sleep 30
+echo "Waiting for controller to come up..."
+# Silence the chatty output during the loop.
+set +x
+COUNT=0
+# Bug 9044 workaround: use bin/client instead of Linux ssh command.
+CLIENT="${WORKSPACE}/${BUNDLEFOLDER}/bin/client"
+while true; do
+ # Is there a way to both print output and store RC without manipulating the e flag?
+ set +e
+ ${CLIENT} "feature:list -i"
+ RC="$?"
+ set -e
+ if [[ "${RC}" == "0" ]]; then
+ echo Karaf is UP
+ break
+ elif (( "${COUNT}" > 600 )); then
+ echo Timeout Karaf DOWN
+ echo "Dumping Karaf log..."
+ cat "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log"
+ echo "Listing all open ports on controller system"
+ netstat -pnatu
+ exit 1
+ else
+ echo "${RC}"
+ COUNT=$(( ${COUNT} + 1 ))
+ sleep 1
+ if [[ $(($COUNT % 5)) == 0 ]]; then
+ echo already waited ${COUNT} seconds...
+ fi
+ fi
+done
+# Un-silence the chatty output.
+set -x
echo "Installing all features..."
-sshpass -p karaf ${WORKSPACE}/${BUNDLEFOLDER}/bin/client -u karaf "feature:install ${ACTUALFEATURES}" || echo $? > "${WORKSPACE}/error.txt"
+$CLIENT feature:install ${ACTUALFEATURES} || echo $? > "${WORKSPACE}/error.txt"
echo "killing karaf process..."
ps axf | grep karaf | grep -v grep | awk '{print "kill -9 " $1}' | sh
cp "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf.log" .
cp "${WORKSPACE}/${BUNDLEFOLDER}/data/log/karaf_console.log" .
-echo "Exit with error"
+echo "Exit if error"
if [ -f "${WORKSPACE}/error.txt" ]; then
echo "Failed to deploy offline"
exit 1
+else
+ echo "Offline test: PASS"
fi
# vim: ts=4 sw=4 sts=4 et ft=sh :
# TODO: Add Beryllium when everything is backported there.
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
# shellcheck source=${ROBOT_VENV}/bin/activate disable=SC1091
source ${ROBOT_VENV}/bin/activate
PYTHON="${ROBOT_VENV}/bin/python"
+SSH="ssh -t -t"
+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"
echo "## Deploy Openstack 3-node ##"
echo "#################################################"
+# Catch command errors and collect logs.
+# This ensures logs are collected when script commands fail rather than simply exiting.
+function trap_handler() {
+ local prog="$0"
+ local lastline="$1"
+ local lasterr="$2"
+ echo "${prog}: line ${lastline}: exit status of last command: ${lasterr}"
+ echo "command: ${BASH_COMMAND}"
+ collect_logs
+ exit 1
+} # trap_handler()
+
+trap 'trap_handler ${LINENO} ${$?}' ERR
+
+function create_etc_hosts() {
+ NODE_IP=$1
+ CTRL_IP=$2
+ : > ${WORKSPACE}/hosts_file
+ for iter in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`
+ do
+ COMPUTE_IP=OPENSTACK_COMPUTE_NODE_${iter}_IP
+ if [ "${!COMPUTE_IP}" == "${NODE_IP}" ]; then
+ CONTROL_HNAME=$(${SSH} ${CTRL_IP} "hostname")
+ echo "${CTRL_IP} ${CONTROL_HNAME}" >> ${WORKSPACE}/hosts_file
+ else
+ COMPUTE_HNAME=$(${SSH} ${!COMPUTE_IP} "hostname")
+ echo "${!COMPUTE_IP} ${COMPUTE_HNAME}" >> ${WORKSPACE}/hosts_file
+ fi
+ done
-SSH="ssh -t -t"
+ echo "Created the hosts file for ${NODE_IP}:"
+ cat ${WORKSPACE}/hosts_file
+} # create_etc_hosts()
-function create_control_node_local_conf {
-HOSTIP=$1
-MGRIP=$2
-ODL_OVS_MANAGERS="$3"
-#Needs to be removed
-if [ "${ODL_ML2_BRANCH}" != "stable/ocata" ]; then
- RECLONE=no
-else
- RECLONE=yes
-fi
-local_conf_file_name=${WORKSPACE}/local.conf_control_${HOSTIP}
-cat > ${local_conf_file_name} << EOF
+# convert commas in csv strings to spaces (ssv)
+function csv2ssv() {
+ local csv=$1
+ if [ -n "${csv}" ]; then
+ ssv=$(echo ${csv} | sed 's/,/ /g' | sed 's/\ \ */\ /g')
+ fi
+
+ echo "${ssv}"
+} # csv2ssv
+
+function create_control_node_local_conf() {
+ HOSTIP=$1
+ MGRIP=$2
+ ODL_OVS_MANAGERS="$3"
+
+ local_conf_file_name=${WORKSPACE}/local.conf_control_${HOSTIP}
+ cat > ${local_conf_file_name} << EOF
[[local|localrc]]
LOGFILE=stack.sh.log
USE_SCREEN=True
SCREEN_LOGDIR=/opt/stack/data/log
LOG_COLOR=False
RECLONE=${RECLONE}
-ETCD_PORT=2379
+
+disable_all_services
EOF
-IFS=,
-for service_name in ${DISABLE_OS_SERVICES}
-do
-cat >> ${local_conf_file_name} << EOF
-disable_service ${service_name}
+ CORE_OS_SERVICES="dstat,g-api,g-reg,key,mysql,n-api,n-cauth,n-cond,n-crt,n-obj,n-sch,odl-compute,odl-neutron,q-dhcp,q-meta,q-svc,rabbit"
+ cat >> ${local_conf_file_name} << EOF
+enable_service $(csv2ssv "${CORE_OS_SERVICES}")
EOF
-done
-for service_name in ${ENABLE_OS_SERVICES}
-do
-cat >> ${local_conf_file_name} << EOF
-enable_service ${service_name}
+ if [ -n "${ENABLE_OS_SERVICES}" ]; then
+ cat >> ${local_conf_file_name} << EOF
+enable_service $(csv2ssv "${ENABLE_OS_SERVICES}")
EOF
-done
-for plugin_name in ${ENABLE_OS_PLUGINS}
-do
-if [ "$plugin_name" == "networking-odl" ]; then
- ENABLE_PLUGIN_ARGS="${ODL_ML2_DRIVER_REPO} ${ODL_ML2_BRANCH}"
-elif [ "$plugin_name" == "kuryr-kubernetes" ]; then
- ENABLE_PLUGIN_ARGS="${DEVSTACK_KUBERNETES_PLUGIN_REPO} master" # note: kuryr-kubernetes only exists in master at the moment
- IS_KUBERNETES_PLUGIN_ENABLED="yes"
-elif [ "$plugin_name" == "neutron-lbaas" ]; then
- ENABLE_PLUGIN_ARGS="${DEVSTACK_LBAAS_PLUGIN_REPO} ${OPENSTACK_BRANCH}"
- IS_LBAAS_PLUGIN_ENABLED="yes"
-elif [ "$plugin_name" == "networking-sfc" ]; then
- ENABLE_PLUGIN_ARGS="${DEVSTACK_NETWORKING_SFC_PLUGIN_REPO} ${OPENSTACK_BRANCH}"
-else
- echo "Error: Invalid plugin $plugin_name, unsupported"
- continue
-fi
-cat >> ${local_conf_file_name} << EOF
-enable_plugin ${plugin_name} ${ENABLE_PLUGIN_ARGS}
+ fi
+ if [ -n "${DISABLE_OS_SERVICES}" ]; then
+ cat >> ${local_conf_file_name} << EOF
+disable_service $(csv2ssv "${DISABLE_OS_SERVICES}")
EOF
-done
-unset IFS
-if [ "${OPENSTACK_BRANCH}" == "master" ] || [ "${OPENSTACK_BRANCH}" == "stable/ocata" ]; then # Ocata+
- # placement is mandatory for nova since Ocata, note that this requires computes to enable placement-client
- # this should be moved into enabled_services for each job (but only for Ocata)
- echo "enable_service placement-api" >> ${local_conf_file_name}
-fi
-if [ "${OPENSTACK_BRANCH}" == "stable/ocata" ]; then # Ocata
- # running kubernetes master against devstack ocata has some issues with etcd3 and this
- # workaround is needed for things to work
- if [ "$IS_KUBERNETES_PLUGIN_ENABLED" == "yes" ]; then
- echo "disable_service etcd3" >> ${local_conf_file_name}
fi
-fi
-cat >> ${local_conf_file_name} << EOF
+
+ cat >> ${local_conf_file_name} << EOF
+
HOST_IP=${HOSTIP}
SERVICE_HOST=\$HOST_IP
-
-NEUTRON_CREATE_INITIAL_NETWORKS=${CREATE_INITIAL_NETWORKS}
-Q_PLUGIN=ml2
Q_ML2_TENANT_NETWORK_TYPE=${TENANT_NETWORK_TYPE}
-Q_OVS_USE_VETH=True
+NEUTRON_CREATE_INITIAL_NETWORKS=${CREATE_INITIAL_NETWORKS}
+#Q_PLUGIN=ml2
+#ENABLE_TENANT_TUNNELS=True
+#LIBVIRT_TYPE=qemu
-ENABLE_TENANT_TUNNELS=True
+ODL_MODE=manual
+ODL_MGR_IP=${MGRIP}
+ODL_PORT=8080
+ODL_PORT_BINDING_CONTROLLER=${ODL_ML2_PORT_BINDING}
+ODL_OVS_MANAGERS=${ODL_OVS_MANAGERS}
MYSQL_HOST=\$SERVICE_HOST
RABBIT_HOST=\$SERVICE_HOST
KEYSTONE_AUTH_HOST=\$SERVICE_HOST
KEYSTONE_SERVICE_HOST=\$SERVICE_HOST
-MYSQL_PASSWORD=mysql
-RABBIT_PASSWORD=rabbit
-SERVICE_TOKEN=service
-SERVICE_PASSWORD=admin
-ADMIN_PASSWORD=admin
-
-ODL_PORT=8080
-ODL_MODE=externalodl
-ODL_PORT_BINDING_CONTROLLER=${ODL_ML2_PORT_BINDING}
-
-LIBVIRT_TYPE=qemu
-ODL_MGR_IP=${MGRIP}
+ADMIN_PASSWORD=${ADMIN_PASSWORD}
+DATABASE_PASSWORD=${ADMIN_PASSWORD}
+RABBIT_PASSWORD=${ADMIN_PASSWORD}
+SERVICE_TOKEN=${ADMIN_PASSWORD}
+SERVICE_PASSWORD=${ADMIN_PASSWORD}
NEUTRON_LBAAS_SERVICE_PROVIDERV2=${LBAAS_SERVICE_PROVIDER} # Only relevant if neutron-lbaas plugin is enabled
NEUTRON_SFC_DRIVERS=${ODL_SFC_DRIVER} # Only relevant if networking-sfc plugin is enabled
NEUTRON_FLOWCLASSIFIER_DRIVERS=${ODL_SFC_DRIVER} # Only relevant if networking-sfc plugin is enabled
+ETCD_PORT=2379
EOF
-if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
-cat >> ${local_conf_file_name} << EOF
+ if [ "${ODL_ML2_DRIVER_VERSION}" == "v2" ]; then
+ echo "ODL_V2DRIVER=True" >> ${local_conf_file_name}
+ fi
-enable_plugin networking-l2gw ${NETWORKING_L2GW_DRIVER} ${ODL_ML2_BRANCH}
-NETWORKING_L2GW_SERVICE_DRIVER=L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
-ENABLED_SERVICES+=,neutron,q-svc,nova,q-meta
+ IFS=,
+ for plugin_name in ${ENABLE_OS_PLUGINS}; do
+ if [ "$plugin_name" == "networking-odl" ]; then
+ ENABLE_PLUGIN_ARGS="${ODL_ML2_DRIVER_REPO} ${ODL_ML2_BRANCH}"
+ elif [ "$plugin_name" == "kuryr-kubernetes" ]; then
+ ENABLE_PLUGIN_ARGS="${DEVSTACK_KUBERNETES_PLUGIN_REPO} master" # note: kuryr-kubernetes only exists in master at the moment
+ elif [ "$plugin_name" == "neutron-lbaas" ]; then
+ ENABLE_PLUGIN_ARGS="${DEVSTACK_LBAAS_PLUGIN_REPO} ${OPENSTACK_BRANCH}"
+ IS_LBAAS_PLUGIN_ENABLED="yes"
+ elif [ "$plugin_name" == "networking-sfc" ]; then
+ ENABLE_PLUGIN_ARGS="${DEVSTACK_NETWORKING_SFC_PLUGIN_REPO} ${OPENSTACK_BRANCH}"
+ else
+ echo "Error: Invalid plugin $plugin_name, unsupported"
+ continue
+ fi
+ cat >> ${local_conf_file_name} << EOF
+enable_plugin ${plugin_name} ${ENABLE_PLUGIN_ARGS}
EOF
-fi
-
-if [ "${ODL_ML2_DRIVER_VERSION}" == "v2" ]; then
- echo "ODL_V2DRIVER=True" >> ${local_conf_file_name}
-fi
+ done
+ unset IFS
-echo "ODL_OVS_MANAGERS=${ODL_OVS_MANAGERS}" >> ${local_conf_file_name}
+ if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
+ cat >> ${local_conf_file_name} << EOF
-# if we are using the old netvirt impl, as determined by the feature name
-# odl-ovsdb-openstack (note: new impl is odl-netvirt-openstack) then we
-# want ODL_L3 to be True. New impl wants it False
-if [[ ${CONTROLLERFEATURES} == *"odl-ovsdb-openstack"* ]]; then
- ODL_L3=True
-else
- ODL_L3=False
-fi
+enable_plugin networking-l2gw ${NETWORKING_L2GW_DRIVER} ${ODL_ML2_BRANCH}
+NETWORKING_L2GW_SERVICE_DRIVER=L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
+EOF
+ fi
-# if we are using the new netvirt impl, as determined by the feature name
-# odl-netvirt-openstack (note: old impl is odl-ovsdb-openstack) then we
-# want PROVIDER_MAPPINGS to be used -- this should be fixed if we want to support
-# external networks in legacy netvirt
-if [[ ${CONTROLLERFEATURES} == *"odl-netvirt-openstack"* ]]; then
- ODL_PROVIDER_MAPPINGS="\${PUBLIC_PHYSICAL_NETWORK}:${PUBLIC_BRIDGE}"
-else
- ODL_PROVIDER_MAPPINGS=
-fi
+ if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
+ cat >> ${local_conf_file_name} << EOF
-if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
-cat >> ${local_conf_file_name} << EOF
PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK}
ML2_VLAN_RANGES=${PUBLIC_PHYSICAL_NETWORK}
ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS}
-
-disable_service q-l3
-PUBLIC_INTERFACE=br100
EOF
-SERVICE_PLUGINS="networking_odl.l3.l3_odl.OpenDaylightL3RouterPlugin"
-if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
- SERVICE_PLUGINS+=", networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin"
-fi #check for ENABLE_NETWORKING_L2GW
-if [ "${IS_LBAAS_PLUGIN_ENABLED}" == "yes" ]; then
- SERVICE_PLUGINS+=", lbaasv2"
-fi #check for ENABLE_LBAAS_PLUGIN
-fi #check for ODL_ENABLE_L3_FWD
+ if [ "${ODL_ML2_DRIVER_VERSION}" == "v2" ]; then
+ SERVICE_PLUGINS="odl-router_v2"
+ else
+ SERVICE_PLUGINS="odl-router"
+ fi
+ if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
+ SERVICE_PLUGINS+=", networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin"
+ fi
+ if [ "${IS_LBAAS_PLUGIN_ENABLED}" == "yes" ]; then
+ SERVICE_PLUGINS+=", lbaasv2"
+ fi
+ fi #check for ODL_ENABLE_L3_FWD
+
+ cat >> ${local_conf_file_name} << EOF
-cat >> ${local_conf_file_name} << EOF
[[post-config|\$NEUTRON_CONF]]
[DEFAULT]
service_plugins = ${SERVICE_PLUGINS}
-EOF
-cat >> ${local_conf_file_name} << EOF
[[post-config|/etc/neutron/plugins/ml2/ml2_conf.ini]]
[agent]
minimize_polling=True
physical_network_mtus = ${PUBLIC_PHYSICAL_NETWORK}:1440
path_mtu = 1490
+# workaround for port-status not working due to https://bugs.opendaylight.org/show_bug.cgi?id=9092
+[ml2_odl]
+odl_features=nothing
+
[[post-config|/etc/neutron/dhcp_agent.ini]]
[DEFAULT]
force_metadata = True
[DEFAULT]
force_config_drive = False
+[scheduler]
+discover_hosts_in_cells_interval = 30
EOF
-echo "local.conf Created...."
-cat ${local_conf_file_name}
-}
-
-function create_compute_node_local_conf {
-HOSTIP=$1
-SERVICEHOST=$2
-MGRIP=$3
-ODL_OVS_MANAGERS="$4"
-#Needs to be removed
-if [ "${ODL_ML2_BRANCH}" != "stable/ocata" ]; then
- RECLONE=no
-else
- RECLONE=yes
-fi
-if [ "${OPENSTACK_BRANCH}" == "master" ] || [ "${OPENSTACK_BRANCH}" == "stable/ocata" ]; then # Ocata+
- # placement is mandatory for nova since Ocata, note that this requires controller to enable placement-api
- ENABLED_SERVICES="n-cpu,placement-client"
-else
- ENABLED_SERVICES="n-cpu"
-fi
+ echo "Control local.conf created:"
+ cat ${local_conf_file_name}
+} # create_control_node_local_conf()
-local_conf_file_name=${WORKSPACE}/local.conf_compute_${HOSTIP}
-cat > ${local_conf_file_name} << EOF
+function create_compute_node_local_conf() {
+ HOSTIP=$1
+ SERVICEHOST=$2
+ MGRIP=$3
+ ODL_OVS_MANAGERS="$4"
+
+ local_conf_file_name=${WORKSPACE}/local.conf_compute_${HOSTIP}
+ cat > ${local_conf_file_name} << EOF
[[local|localrc]]
LOGFILE=stack.sh.log
LOG_COLOR=False
SCREEN_LOGDIR=/opt/stack/data/log
RECLONE=${RECLONE}
-NOVA_VNC_ENABLED=True
-MULTI_HOST=1
-ENABLED_SERVICES=${ENABLED_SERVICES}
+disable_all_services
+EOF
+
+ CORE_OS_SERVICES="n-cpu,odl-compute"
+ cat >> ${local_conf_file_name} << EOF
+enable_service $(csv2ssv "${CORE_OS_SERVICES}")
+EOF
+ if [ -n "${ENABLE_OS_COMPUTE_SERVICES}" ]; then
+ cat >> ${local_conf_file_name} << EOF
+enable_service $(csv2ssv "${ENABLE_OS_COMPUTE_SERVICES}")
+EOF
+ fi
+ if [ -n "${DISABLE_OS_SERVICES}" ]; then
+ cat >> ${local_conf_file_name} << EOF
+disable_service $(csv2ssv "${DISABLE_OS_SERVICES}")
+EOF
+ fi
+
+ cat >> ${local_conf_file_name} << EOF
+
HOST_IP=${HOSTIP}
SERVICE_HOST=${SERVICEHOST}
+Q_ML2_TENANT_NETWORK_TYPE=${TENANT_NETWORK_TYPE}
+#Q_PLUGIN=ml2
+#ENABLE_TENANT_TUNNELS=True
+#LIBVIRT_TYPE=qemu
+#MULTI_HOST=1
-Q_PLUGIN=ml2
-ENABLE_TENANT_TUNNELS=True
-Q_ML2_TENANT_NETWORK_TYPE=vxlan
+ODL_MODE=manual
+ODL_MGR_IP=${MGRIP}
+ODL_PORT=8080
+ODL_PORT_BINDING_CONTROLLER=${ODL_ML2_PORT_BINDING}
+ODL_OVS_MANAGERS=${ODL_OVS_MANAGERS}
Q_HOST=\$SERVICE_HOST
MYSQL_HOST=\$SERVICE_HOST
KEYSTONE_AUTH_HOST=\$SERVICE_HOST
KEYSTONE_SERVICE_HOST=\$SERVICE_HOST
-MYSQL_PASSWORD=mysql
-RABBIT_PASSWORD=rabbit
-SERVICE_TOKEN=service
-SERVICE_PASSWORD=admin
-ADMIN_PASSWORD=admin
-
-ODL_MODE=compute
-ODL_PORT_BINDING_CONTROLLER=${ODL_ML2_PORT_BINDING}
-LIBVIRT_TYPE=qemu
-ODL_MGR_IP=${MGRIP}
+ADMIN_PASSWORD=${ADMIN_PASSWORD}
+DATABASE_PASSWORD=${ADMIN_PASSWORD}
+RABBIT_PASSWORD=${ADMIN_PASSWORD}
+SERVICE_TOKEN=${ADMIN_PASSWORD}
+SERVICE_PASSWORD=${ADMIN_PASSWORD}
EOF
-if [[ "${ENABLE_OS_PLUGINS}" =~ networking-odl ]]; then
-cat >> ${local_conf_file_name} << EOF
+ if [[ "${ENABLE_OS_PLUGINS}" =~ networking-odl ]]; then
+ cat >> ${local_conf_file_name} << EOF
+
enable_plugin networking-odl ${ODL_ML2_DRIVER_REPO} ${ODL_ML2_BRANCH}
EOF
-fi
-
-echo "ODL_OVS_MANAGERS=${ODL_OVS_MANAGERS}" >> ${local_conf_file_name}
+ fi
-# if we are using the new netvirt impl, as determined by the feature name
-# odl-netvirt-openstack (note: old impl is odl-ovsdb-openstack) then we
-# want PROVIDER_MAPPINGS to be used -- this should be fixed if we want to support
-# external networks in legacy netvirt
-if [[ ${CONTROLLERFEATURES} == *"odl-netvirt-openstack"* ]]; then
- ODL_PROVIDER_MAPPINGS="\${PUBLIC_PHYSICAL_NETWORK}:${PUBLIC_BRIDGE}"
-else
- ODL_PROVIDER_MAPPINGS=
-fi
+ if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
+ cat >> ${local_conf_file_name} << EOF
-if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
-cat >> ${local_conf_file_name} << EOF
-# Uncomment lines below if odl-compute is to be used for l3 forwarding
-Q_L3_ENABLED=True
-ODL_L3=${ODL_L3}
-PUBLIC_INTERFACE=br100 # FIXME do we use br100 at all?
PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK}
ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS}
+Q_L3_ENABLED=True
+ODL_L3=${ODL_L3}
EOF
-fi
-echo "local.conf Created...."
-cat ${local_conf_file_name}
-}
+ fi
-function configure_haproxy_for_neutron_requests () {
-MGRIP=$1
-ODL_IPS=(${2//,/ })
+ cat >> ${local_conf_file_name} << EOF
-cat > ${WORKSPACE}/install_ha_proxy.sh<< EOF
+[[post-config|/etc/nova/nova.conf]]
+[api]
+auth_strategy = keystone
+[DEFAULT]
+use_neutron = True
+EOF
+
+ echo "Compute local.conf created:"
+ cat ${local_conf_file_name}
+} # create_compute_node_local_conf()
+
+function configure_haproxy_for_neutron_requests() {
+ MGRIP=$1
+ ODL_IPS=(${2//,/ })
+
+ cat > ${WORKSPACE}/install_ha_proxy.sh<< EOF
sudo systemctl stop firewalld
sudo yum -y install policycoreutils-python haproxy
EOF
balance source
EOF
-odlindex=1
-for odlip in ${ODL_IPS[*]}
-do
-cat >> ${WORKSPACE}/haproxy.cfg << EOF
+ odlindex=1
+ for odlip in ${ODL_IPS[*]}; do
+ cat >> ${WORKSPACE}/haproxy.cfg << EOF
server controller-${odlindex} ${odlip}:8080 check fall 5 inter 2000 rise 2
EOF
-odlindex=$((odlindex+1))
-done
+ odlindex=$((odlindex+1))
+ done
-cat >> ${WORKSPACE}/haproxy.cfg << EOF
+ cat >> ${WORKSPACE}/haproxy.cfg << EOF
listen opendaylight_rest
bind ${MGRIP}:8181
balance source
EOF
-odlindex=1
-for odlip in ${ODL_IPS[*]}
-do
-cat >> ${WORKSPACE}/haproxy.cfg << EOF
+ odlindex=1
+ for odlip in ${ODL_IPS[*]}; do
+ cat >> ${WORKSPACE}/haproxy.cfg << EOF
server controller-rest-${odlindex} ${odlip}:8181 check fall 5 inter 2000 rise 2
EOF
-odlindex=$((odlindex+1))
-done
+ odlindex=$((odlindex+1))
+ done
-echo "Dump haproxy.cfg"
-cat ${WORKSPACE}/haproxy.cfg
+ echo "Dump haproxy.cfg"
+ cat ${WORKSPACE}/haproxy.cfg
-cat > ${WORKSPACE}/deploy_ha_proxy.sh<< EOF
+ cat > ${WORKSPACE}/deploy_ha_proxy.sh<< EOF
sudo chown haproxy:haproxy /tmp/haproxy.cfg
sudo sed -i 's/\\/etc\\/haproxy\\/haproxy.cfg/\\/tmp\\/haproxy.cfg/g' /usr/lib/systemd/system/haproxy.service
sudo /usr/sbin/semanage permissive -a haproxy_t
sudo systemctl status haproxy
true
EOF
-scp ${WORKSPACE}/install_ha_proxy.sh ${MGRIP}:/tmp
-${SSH} ${MGRIP} "sudo bash /tmp/install_ha_proxy.sh"
-scp ${WORKSPACE}/haproxy.cfg ${MGRIP}:/tmp
-scp ${WORKSPACE}/deploy_ha_proxy.sh ${MGRIP}:/tmp
-${SSH} ${MGRIP} "sudo bash /tmp/deploy_ha_proxy.sh"
-}
-
-function collect_logs_and_exit () {
-set +e # We do not want to create red dot just because something went wrong while fetching logs.
-for i in `seq 1 ${NUM_ODL_SYSTEM}`
-do
- CONTROLLERIP=ODL_SYSTEM_${i}_IP
- echo "Lets's take the karaf thread dump again..."
- KARAF_PID=$(ssh ${!CONTROLLERIP} "ps aux | grep ${KARAF_ARTIFACT} | grep -v grep | tr -s ' ' | cut -f2 -d' '")
- ssh ${!CONTROLLERIP} "jstack $KARAF_PID"> ${WORKSPACE}/karaf_${i}_threads_after.log || true
- echo "killing karaf process..."
- ${SSH} "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh'
-done
-cat > extra_debug.sh << EOF
+ scp ${WORKSPACE}/install_ha_proxy.sh ${MGRIP}:/tmp
+ ${SSH} ${MGRIP} "sudo bash /tmp/install_ha_proxy.sh"
+ scp ${WORKSPACE}/haproxy.cfg ${MGRIP}:/tmp
+ scp ${WORKSPACE}/deploy_ha_proxy.sh ${MGRIP}:/tmp
+ ${SSH} ${MGRIP} "sudo bash /tmp/deploy_ha_proxy.sh"
+} # configure_haproxy_for_neutron_requests()
+
+function collect_logs () {
+ set +e # We do not want to create red dot just because something went wrong while fetching logs.
+ for i in `seq 1 ${NUM_ODL_SYSTEM}`; do
+ CONTROLLERIP=ODL_SYSTEM_${i}_IP
+ echo "Lets's take the karaf thread dump again..."
+ KARAF_PID=$(ssh ${!CONTROLLERIP} "ps aux | grep ${KARAF_ARTIFACT} | grep -v grep | tr -s ' ' | cut -f2 -d' '")
+ ssh ${!CONTROLLERIP} "jstack $KARAF_PID"> ${WORKSPACE}/karaf_${i}_threads_after.log || true
+ echo "killing karaf process..."
+ ${SSH} "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh'
+ done
+
+ cat > extra_debug.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"
journalctl > /tmp/journalctl.log
EOF
-sleep 5
-# FIXME: Do not create .tar and gzip before copying.
-for i in `seq 1 ${NUM_ODL_SYSTEM}`
-do
- CONTROLLERIP=ODL_SYSTEM_${i}_IP
- ${SSH} "${!CONTROLLERIP}" "cp -r /tmp/${BUNDLEFOLDER}/data/log /tmp/odl_log"
- ${SSH} "${!CONTROLLERIP}" "tar -cf /tmp/odl${i}_karaf.log.tar /tmp/odl_log/*"
- scp "${!CONTROLLERIP}:/tmp/odl${i}_karaf.log.tar" "${WORKSPACE}/odl${i}_karaf.log.tar"
- ${SSH} "${!CONTROLLERIP}" "tar -cf /tmp/odl${i}_zrpcd.log.tar /tmp/zrpcd.init.log"
- scp "${!CONTROLLERIP}:/tmp/odl${i}_zrpcd.log.tar" "${WORKSPACE}/odl${i}_zrpcd.log.tar"
- tar -xvf ${WORKSPACE}/odl${i}_karaf.log.tar -C . --strip-components 2 --transform s/karaf/odl${i}_karaf/g
- grep "ROBOT MESSAGE\| ERROR " odl${i}_karaf.log > odl${i}_err.log
- grep "ROBOT MESSAGE\|Exception" odl${i}_karaf.log > odl${i}_exception.log
- grep "ROBOT MESSAGE\| ERROR \| WARN \|Exception" odl${i}_karaf.log > odl${i}_err_warn_exception.log
- rm ${WORKSPACE}/odl${i}_karaf.log.tar
-done
+ sleep 5
+ # FIXME: Do not create .tar and gzip before copying.
+ for i in `seq 1 ${NUM_ODL_SYSTEM}`; do
+ CONTROLLERIP=ODL_SYSTEM_${i}_IP
+ ${SSH} "${!CONTROLLERIP}" "cp -r /tmp/${BUNDLEFOLDER}/data/log /tmp/odl_log"
+ ${SSH} "${!CONTROLLERIP}" "tar -cf /tmp/odl${i}_karaf.log.tar /tmp/odl_log/*"
+ scp "${!CONTROLLERIP}:/tmp/odl${i}_karaf.log.tar" "${WORKSPACE}/odl${i}_karaf.log.tar"
+ ${SSH} "${!CONTROLLERIP}" "tar -cf /tmp/odl${i}_zrpcd.log.tar /tmp/zrpcd.init.log"
+ scp "${!CONTROLLERIP}:/tmp/odl${i}_zrpcd.log.tar" "${WORKSPACE}/odl${i}_zrpcd.log.tar"
+ tar -xvf ${WORKSPACE}/odl${i}_karaf.log.tar -C . --strip-components 2 --transform s/karaf/odl${i}_karaf/g
+ grep "ROBOT MESSAGE\| ERROR " odl${i}_karaf.log > odl${i}_err.log
+ grep "ROBOT MESSAGE\|Exception" odl${i}_karaf.log > odl${i}_exception.log
+ grep "ROBOT MESSAGE\| ERROR \| WARN \|Exception" odl${i}_karaf.log > odl${i}_err_warn_exception.log
+ rm ${WORKSPACE}/odl${i}_karaf.log.tar
+ done
-# Since this log collection work is happening before the archive build macro which also
-# creates the ${WORKSPACE}/archives dir, we have to do it here first. The mkdir in the
-# archives build step will essentially be a noop.
-mkdir -p ${WORKSPACE}/archives
-
-# Control Node
-for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`
-do
- OS_CTRL_IP=OPENSTACK_CONTROL_NODE_${i}_IP
- OS_CTRL_FOLDER="control_${i}"
- mkdir -p ${OS_CTRL_FOLDER}
- scp ${!OS_CTRL_IP}:/opt/stack/devstack/nohup.out ${OS_CTRL_FOLDER}/stack.log
- scp ${!OS_CTRL_IP}:/var/log/openvswitch/ovs-vswitchd.log ${OS_CTRL_FOLDER}/ovs-vswitchd.log
- scp ${!OS_CTRL_IP}:/var/log/openvswitch/ovsdb-server.log ${OS_CTRL_FOLDER}/ovsdb-server.log
- scp ${!OS_CTRL_IP}:/etc/neutron/neutron.conf ${OS_CTRL_FOLDER}/neutron.conf
- scp ${!OS_CTRL_IP}:/etc/nova/nova.conf ${OS_CTRL_FOLDER}/nova.conf
- scp ${!OS_CTRL_IP}:/etc/kuryr/kuryr.conf ${OS_CTRL_FOLDER}/kuryr.conf
- scp ${!OS_CTRL_IP}:/etc/neutron/neutron_lbaas.conf ${OS_CTRL_FOLDER}/neutron-lbaas.conf
- scp ${!OS_CTRL_IP}:/etc/neutron/services/loadbalancer/haproxy/lbaas_agent.ini ${OS_CTRL_FOLDER}/lbaas-agent.ini
- rsync -avhe ssh ${!OS_CTRL_IP}:/opt/stack/logs/* ${OS_CTRL_FOLDER} # rsync to prevent copying of symbolic links
- # Use rsync with sudo to get access to the log dir.
- rsync --rsync-path="sudo rsync" -avhe ssh ${!OS_CTRL_IP}:/var/log/audit/audit.log ${OS_CTRL_FOLDER}
- scp extra_debug.sh ${!OS_CTRL_IP}:/tmp
- ${SSH} ${!OS_CTRL_IP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
- scp ${!OS_CTRL_IP}:/tmp/extra_debug.log ${OS_CTRL_FOLDER}/extra_debug.log
- scp ${!OS_CTRL_IP}:/tmp/journalctl.log ${OS_CTRL_FOLDER}
- rsync --rsync-path="sudo rsync" -avhe ssh ${!OS_CTRL_IP}:/var/log/messages ${OS_CTRL_FOLDER}
- scp ${!OS_CTRL_IP}:/tmp/*.xz ${OS_CTRL_FOLDER}/
- mv local.conf_control_${!OS_CTRL_IP} ${OS_CTRL_FOLDER}/local.conf
- mv ${OS_CTRL_FOLDER} ${WORKSPACE}/archives/
-done
+ # Since this log collection work is happening before the archive build macro which also
+ # creates the ${WORKSPACE}/archives dir, we have to do it here first. The mkdir in the
+ # archives build step will essentially be a noop.
+ mkdir -p ${WORKSPACE}/archives
+
+ # Control Node
+ for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do
+ OS_CTRL_IP=OPENSTACK_CONTROL_NODE_${i}_IP
+ OS_CTRL_FOLDER="control_${i}"
+ mkdir -p ${OS_CTRL_FOLDER}
+ scp ${!OS_CTRL_IP}:/opt/stack/devstack/nohup.out ${OS_CTRL_FOLDER}/stack.log
+ scp ${!OS_CTRL_IP}:/var/log/openvswitch/ovs-vswitchd.log ${OS_CTRL_FOLDER}/ovs-vswitchd.log
+ scp ${!OS_CTRL_IP}:/etc/neutron/plugins/ml2/ml2_conf.ini ${OS_CTRL_FOLDER}
+ scp ${!OS_CTRL_IP}:/etc/neutron/dhcp_agent.ini ${OS_CTRL_FOLDER}
+ scp ${!OS_CTRL_IP}:/etc/neutron/neutron.conf ${OS_CTRL_FOLDER}/neutron.conf
+ scp ${!OS_CTRL_IP}:/etc/nova/nova.conf ${OS_CTRL_FOLDER}/nova.conf
+ scp ${!OS_CTRL_IP}:/etc/kuryr/kuryr.conf ${OS_CTRL_FOLDER}/kuryr.conf
+ scp ${!OS_CTRL_IP}:/etc/neutron/neutron_lbaas.conf ${OS_CTRL_FOLDER}/neutron-lbaas.conf
+ scp ${!OS_CTRL_IP}:/etc/neutron/services/loadbalancer/haproxy/lbaas_agent.ini ${OS_CTRL_FOLDER}/lbaas-agent.ini
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OS_CTRL_IP}:/usr/lib/systemd/system/haproxy.service ${OS_CTRL_FOLDER}
+ rsync -avhe ssh ${!OS_CTRL_IP}:/opt/stack/logs/* ${OS_CTRL_FOLDER} # rsync to prevent copying of symbolic links
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OS_CTRL_IP}:/etc/hosts ${OS_CTRL_FOLDER}/hosts.log
+ # Use rsync with sudo to get access to the log dir.
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OS_CTRL_IP}:/var/log/audit/audit.log ${OS_CTRL_FOLDER}
+ scp ${!OS_CTRL_IP}:/tmp/get_devstack.sh.txt ${OS_CTRL_FOLDER}
+ scp extra_debug.sh ${!OS_CTRL_IP}:/tmp
+ ${SSH} ${!OS_CTRL_IP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
+ scp ${!OS_CTRL_IP}:/tmp/extra_debug.log ${OS_CTRL_FOLDER}/extra_debug.log
+ scp ${!OS_CTRL_IP}:/tmp/journalctl.log ${OS_CTRL_FOLDER}
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OS_CTRL_IP}:/var/log/messages ${OS_CTRL_FOLDER}
+ scp ${!OS_CTRL_IP}:/tmp/*.xz ${OS_CTRL_FOLDER}/
+ mv local.conf_control_${!OS_CTRL_IP} ${OS_CTRL_FOLDER}/local.conf
+ mv ${OS_CTRL_FOLDER} ${WORKSPACE}/archives/
+ done
-# Compute Nodes
-for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`
-do
- OSIP=OPENSTACK_COMPUTE_NODE_${i}_IP
- OS_COMPUTE_FOLDER="compute_${i}"
- mkdir -p ${OS_COMPUTE_FOLDER}
- scp ${!OSIP}:/opt/stack/devstack/nohup.out ${OS_COMPUTE_FOLDER}/stack.log
- scp ${!OSIP}:/var/log/openvswitch/ovs-vswitchd.log ${OS_COMPUTE_FOLDER}/ovs-vswitchd.log
- scp ${!OSIP}:/var/log/openvswitch/ovsdb-server.log ${OS_COMPUTE_FOLDER}/ovsdb-server.log
- scp ${!OSIP}:/var/log/libvirt/libvirtd.log* ${OS_COMPUTE_FOLDER}
- scp ${!OSIP}:/var/log/libvirt/qeum/*.log ${OS_COMPUTE_FOLDER}
- scp ${!OSIP}:/etc/nova/nova.conf ${OS_COMPUTE_FOLDER}/nova.conf
- rsync -avhe ssh ${!OSIP}:/opt/stack/logs/* ${OS_COMPUTE_FOLDER} # rsync to prevent copying of symbolic links
- # Use rsync with sudo to get access to the log dir. Also can't use wildcard because the dirs only have
- # exec permissions which doesn't allow ls.
- rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/libvirt ${OS_COMPUTE_FOLDER}
- rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/audit/audit.log ${OS_COMPUTE_FOLDER}
- scp extra_debug.sh ${!OSIP}:/tmp
- ${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
- scp ${!OSIP}:/tmp/extra_debug.log ${OS_COMPUTE_FOLDER}/extra_debug.log
- scp ${!OSIP}:/tmp/journalctl.log ${OS_COMPUTE_FOLDER}
- rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/messages ${OS_COMPUTE_FOLDER}
- scp ${!OSIP}:/tmp/*.xz ${OS_COMPUTE_FOLDER}/
- mv local.conf_compute_${!OSIP} ${OS_COMPUTE_FOLDER}/local.conf
- mv ${OS_COMPUTE_FOLDER} ${WORKSPACE}/archives/
-done
+ # Compute Nodes
+ for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`; do
+ OSIP=OPENSTACK_COMPUTE_NODE_${i}_IP
+ OS_COMPUTE_FOLDER="compute_${i}"
+ mkdir -p ${OS_COMPUTE_FOLDER}
+ scp ${!OSIP}:/opt/stack/devstack/nohup.out ${OS_COMPUTE_FOLDER}/stack.log
+ scp ${!OSIP}:/var/log/openvswitch/ovs-vswitchd.log ${OS_COMPUTE_FOLDER}/ovs-vswitchd.log
+ scp ${!OSIP}:/var/log/openvswitch/ovsdb-server.log ${OS_COMPUTE_FOLDER}/ovsdb-server.log
+ scp ${!OSIP}:/var/log/libvirt/libvirtd.log* ${OS_COMPUTE_FOLDER}
+ scp ${!OSIP}:/var/log/libvirt/qeum/*.log ${OS_COMPUTE_FOLDER}
+ scp ${!OSIP}:/etc/nova/nova.conf ${OS_COMPUTE_FOLDER}/nova.conf
+ rsync -avhe ssh ${!OSIP}:/opt/stack/logs/* ${OS_COMPUTE_FOLDER} # rsync to prevent copying of symbolic links
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/etc/hosts ${OS_COMPUTE_FOLDER}/hosts.log
+ # Use rsync with sudo to get access to the log dir. Also can't use wildcard because the dirs only have
+ # exec permissions which doesn't allow ls.
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/libvirt ${OS_COMPUTE_FOLDER}
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/audit/audit.log ${OS_COMPUTE_FOLDER}
+ scp ${!OSIP}:/tmp/get_devstack.sh.txt ${OS_COMPUTE_FOLDER}
+ scp extra_debug.sh ${!OSIP}:/tmp
+ ${SSH} ${!OSIP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
+ scp ${!OSIP}:/tmp/extra_debug.log ${OS_COMPUTE_FOLDER}/extra_debug.log
+ scp ${!OSIP}:/tmp/journalctl.log ${OS_COMPUTE_FOLDER}
+ rsync --rsync-path="sudo rsync" -avhe ssh ${!OSIP}:/var/log/messages ${OS_COMPUTE_FOLDER}
+ scp ${!OSIP}:/tmp/*.xz ${OS_COMPUTE_FOLDER}/
+ mv local.conf_compute_${!OSIP} ${OS_COMPUTE_FOLDER}/local.conf
+ mv ${OS_COMPUTE_FOLDER} ${WORKSPACE}/archives/
+ done
+
+ # Tempest
+ DEVSTACK_TEMPEST_DIR="/opt/stack/tempest"
+ TESTREPO=".stestr"
+ # Look for tempest test results in the $TESTREPO dir and copy if found
+ if ${SSH} ${OPENSTACK_CONTROL_NODE_1_IP} "sudo sh -c '[ -f ${DEVSTACK_TEMPEST_DIR}/${TESTREPO}/0 ]'"; then
+ ${SSH} ${OPENSTACK_CONTROL_NODE_1_IP} "for I in \$(sudo ls ${DEVSTACK_TEMPEST_DIR}/${TESTREPO}/ | grep -E '^[0-9]+$'); do sudo sh -c \"${DEVSTACK_TEMPEST_DIR}/.tox/tempest/bin/subunit-1to2 < ${DEVSTACK_TEMPEST_DIR}/${TESTREPO}/\${I} >> ${DEVSTACK_TEMPEST_DIR}/subunit_log.txt\"; done"
+ ${SSH} ${OPENSTACK_CONTROL_NODE_1_IP} "sudo sh -c '${DEVSTACK_TEMPEST_DIR}/.tox/tempest/bin/python ${DEVSTACK_TEMPEST_DIR}/.tox/tempest/lib/python2.7/site-packages/os_testr/subunit2html.py ${DEVSTACK_TEMPEST_DIR}/subunit_log.txt ${DEVSTACK_TEMPEST_DIR}/tempest_results.html'"
+ TEMPEST_LOGS_DIR=${WORKSPACE}/archives/tempest
+ mkdir -p ${TEMPEST_LOGS_DIR}
+ scp ${OPENSTACK_CONTROL_NODE_1_IP}:${DEVSTACK_TEMPEST_DIR}/tempest_results.html ${TEMPEST_LOGS_DIR}
+ scp ${OPENSTACK_CONTROL_NODE_1_IP}:${DEVSTACK_TEMPEST_DIR}/tempest.log ${TEMPEST_LOGS_DIR}
+ mv ${WORKSPACE}/tempest_output* ${TEMPEST_LOGS_DIR}
+ else
+ echo "tempest results not found in ${DEVSTACK_TEMPEST_DIR}/${TESTREPO}/0"
+ fi
+} # collect_logs()
-find local.conf* -print0 | xargs -0 -I % mv % %.log
-
-# Tempest
-DEVSTACK_TEMPEST_DIR="/opt/stack/tempest"
-if ssh ${OPENSTACK_CONTROL_NODE_1_IP} "sudo sh -c '[ -f ${DEVSTACK_TEMPEST_DIR}/.testrepository/0 ]'"; then # if Tempest results exist
- ssh ${OPENSTACK_CONTROL_NODE_1_IP} "for I in \$(sudo ls ${DEVSTACK_TEMPEST_DIR}/.testrepository/ | grep -E '^[0-9]+$'); do sudo sh -c \"${DEVSTACK_TEMPEST_DIR}/.tox/tempest/bin/subunit-1to2 < ${DEVSTACK_TEMPEST_DIR}/.testrepository/\${I} >> ${DEVSTACK_TEMPEST_DIR}/subunit_log.txt\"; done"
- ssh ${OPENSTACK_CONTROL_NODE_1_IP} "sudo sh -c '${DEVSTACK_TEMPEST_DIR}/.tox/tempest/bin/python ${DEVSTACK_TEMPEST_DIR}/.tox/tempest/lib/python2.7/site-packages/os_testr/subunit2html.py ${DEVSTACK_TEMPEST_DIR}/subunit_log.txt ${DEVSTACK_TEMPEST_DIR}/tempest_results.html'"
- TEMPEST_LOGS_DIR=${WORKSPACE}/archives/tempest
- mkdir -p ${TEMPEST_LOGS_DIR}
- scp ${OPENSTACK_CONTROL_NODE_1_IP}:${DEVSTACK_TEMPEST_DIR}/tempest_results.html ${TEMPEST_LOGS_DIR}
- scp ${OPENSTACK_CONTROL_NODE_1_IP}:${DEVSTACK_TEMPEST_DIR}/tempest.log ${TEMPEST_LOGS_DIR}
- mv ${WORKSPACE}/tempest_output* ${TEMPEST_LOGS_DIR}
+# if we are using the new netvirt impl, as determined by the feature name
+# odl-netvirt-openstack (note: old impl is odl-ovsdb-openstack) then we
+# want PROVIDER_MAPPINGS to be used -- this should be fixed if we want to support
+# external networks in legacy netvirt
+if [[ ${CONTROLLERFEATURES} == *"odl-netvirt-openstack"* ]]; then
+ ODL_PROVIDER_MAPPINGS="\${PUBLIC_PHYSICAL_NETWORK}:${PUBLIC_BRIDGE}"
+else
+ ODL_PROVIDER_MAPPINGS=
+fi
+
+# if we are using the old netvirt impl, as determined by the feature name
+# odl-ovsdb-openstack (note: new impl is odl-netvirt-openstack) then we
+# want ODL_L3 to be True. New impl wants it False
+if [[ ${CONTROLLERFEATURES} == *"odl-ovsdb-openstack"* ]]; then
+ ODL_L3=True
+else
+ ODL_L3=False
fi
-}
cat > ${WORKSPACE}/disable_firewall.sh << EOF
sudo systemctl stop firewalld
cat > ${WORKSPACE}/get_devstack.sh << EOF
sudo systemctl stop firewalld
sudo yum install bridge-utils python-pip -y
-sudo systemctl stop NetworkManager
+#sudo systemctl stop NetworkManager
#Disable NetworkManager and kill dhclient and dnsmasq
sudo systemctl stop NetworkManager
sudo killall dhclient
sudo killall dnsmasq
#Workaround for mysql failure
-echo "127.0.0.1 localhost \${HOSTNAME}" > /tmp/hosts
-echo "::1 localhost \${HOSTNAME}" >> /tmp/hosts
+echo "127.0.0.1 localhost \${HOSTNAME}" >> /tmp/hosts
+echo "::1 localhost \${HOSTNAME}" >> /tmp/hosts
sudo mv /tmp/hosts /etc/hosts
-sudo /usr/sbin/brctl addbr br100
-#sudo ifconfig eth0 mtu 2000
sudo mkdir /opt/stack
sudo chmod 777 /opt/stack
cd /opt/stack
-git clone https://git.openstack.org/openstack-dev/devstack
+echo "git clone https://git.openstack.org/openstack-dev/devstack --branch ${OPENSTACK_BRANCH}"
+git clone https://git.openstack.org/openstack-dev/devstack --branch ${OPENSTACK_BRANCH}
cd devstack
-git checkout $OPENSTACK_BRANCH
-#To fix the recent tempest/tox issues which blocks stacking
-sudo pip install tox==2.7.0
+if [ -n "${DEVSTACK_HASH}" ]; then
+ echo "git checkout ${DEVSTACK_HASH}"
+ git checkout ${DEVSTACK_HASH}
+fi
+git --no-pager log --pretty=format:'%h %<(13)%ar%<(13)%cr %<(20,trunc)%an%d %s\n%b' -n20
EOF
cat > "${WORKSPACE}/setup_host_cell_mapping.sh" << EOF
sudo nova-manage cell_v2 discover_hosts
EOF
-[ "$NUM_OPENSTACK_SITES" ] || NUM_OPENSTACK_SITES=1
+NUM_OPENSTACK_SITES=${NUM_OPENSTACK_SITES:-1}
compute_index=1
odl_index=1
os_node_list=()
os_interval=$(( ${NUM_OPENSTACK_SYSTEM} / ${NUM_OPENSTACK_SITES} ))
ha_proxy_index=${os_interval}
-cat > "${WORKSPACE}/manual_install_package.sh" << EOF
-cd /opt/stack
-git clone "\$1"
-cd "\$2"
-git checkout "\$3"
-sudo python setup.py install
-EOF
-
-for i in `seq 1 ${NUM_OPENSTACK_SITES}`
-do
+for i in `seq 1 ${NUM_OPENSTACK_SITES}`; do
if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
echo "Configure HAProxy"
ODL_HAPROXYIP_PARAM=OPENSTACK_HAPROXY_${i}_IP
ODL_IP_PARAM3=ODL_SYSTEM_$((odl_index++))_IP
ODLMGRIP[$i]=${!ODL_HAPROXYIP_PARAM} # ODL Northbound uses HAProxy VIP
ODL_OVS_MGRS[$i]="${!ODL_IP_PARAM1},${!ODL_IP_PARAM2},${!ODL_IP_PARAM3}" # OVSDB connects to all ODL IPs
-
configure_haproxy_for_neutron_requests ${!ODL_HAPROXYIP_PARAM} "${ODL_OVS_MGRS[$i]}"
else
ODL_IP_PARAM=ODL_SYSTEM_${i}_IP
fi
done
-for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`
-do
- echo "Stack the Control Node"
+# Begin stacking the nodes, starting with the controller(s) and then the compute(s)
+
+for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do
CONTROLIP=OPENSTACK_CONTROL_NODE_${i}_IP
+ echo "Stack the control node ${i} of ${NUM_OPENSTACK_CONTROL_NODES}: ${CONTROLIP}"
+ create_etc_hosts ${!CONTROLIP}
+ scp ${WORKSPACE}/hosts_file ${!CONTROLIP}:/tmp/hosts
scp ${WORKSPACE}/get_devstack.sh ${!CONTROLIP}:/tmp
- ${SSH} ${!CONTROLIP} "bash /tmp/get_devstack.sh"
+ ${SSH} ${!CONTROLIP} "bash /tmp/get_devstack.sh > /tmp/get_devstack.sh.txt 2>&1"
create_control_node_local_conf ${!CONTROLIP} ${ODLMGRIP[$i]} "${ODL_OVS_MGRS[$i]}"
scp ${WORKSPACE}/local.conf_control_${!CONTROLIP} ${!CONTROLIP}:/opt/stack/devstack/local.conf
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})
-
- #Workaround for stable/newton jobs
+ # Workaround for stable/newton jobs
+ # TODO: can this be removed now?
if [ "${ODL_ML2_BRANCH}" == "stable/newton" ]; then
ssh ${!CONTROLIP} "cd /opt/stack; git clone https://git.openstack.org/openstack/requirements; cd requirements; git checkout stable/newton; sed -i /appdirs/d upper-constraints.txt"
fi
done
-for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`
-do
- echo "Stack the Compute Node"
+for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`; do
NUM_COMPUTES_PER_SITE=$((NUM_OPENSTACK_COMPUTE_NODES / NUM_OPENSTACK_SITES))
SITE_INDEX=$((((i - 1) / NUM_COMPUTES_PER_SITE) + 1)) # We need the site index to infer the control node IP for this compute
COMPUTEIP=OPENSTACK_COMPUTE_NODE_${i}_IP
CONTROLIP=OPENSTACK_CONTROL_NODE_${SITE_INDEX}_IP
+ echo "Stack the compute node ${i} of ${NUM_OPENSTACK_COMPUTE_NODES}: ${COMPUTEIP}"
+ create_etc_hosts ${!COMPUTEIP} ${!CONTROLIP}
+ scp ${WORKSPACE}/hosts_file ${!COMPUTEIP}:/tmp/hosts
scp ${WORKSPACE}/get_devstack.sh ${!COMPUTEIP}:/tmp
- ${SSH} ${!COMPUTEIP} "bash /tmp/get_devstack.sh"
+ ${SSH} ${!COMPUTEIP} "bash /tmp/get_devstack.sh > /tmp/get_devstack.sh.txt 2>&1"
create_compute_node_local_conf ${!COMPUTEIP} ${!CONTROLIP} ${ODLMGRIP[$SITE_INDEX]} "${ODL_OVS_MGRS[$SITE_INDEX]}"
scp ${WORKSPACE}/local.conf_compute_${!COMPUTEIP} ${!COMPUTEIP}:/opt/stack/devstack/local.conf
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})
+ # Workaround for https://review.openstack.org/#/c/491032/
+ # Modify upper-constraints to use libvirt-python 3.2.0
+ if [ "${ODL_ML2_BRANCH}" == "stable/ocata" ]; then
+ ${SSH} ${!COMPUTEIP} "
+ cd /opt/stack;
+ git clone https://git.openstack.org/openstack/requirements;
+ cd requirements;
+ git checkout stable/ocata;
+ sed -i s/libvirt-python===2.5.0/libvirt-python===3.2.0/ upper-constraints.txt
+ "
+ fi
done
-echo ${os_node_list[*]}
+echo "nodelist: ${os_node_list[*]}"
+# This script runs on the openstack nodes. It greps for a string that devstack writes when stacking is complete.
+# The script then writes a status depending on the grep output that is later scraped by the robot vm to control
+# the status polling.
cat > ${WORKSPACE}/check_stacking.sh << EOF
> /tmp/stack_progress
ps -ef | grep "stack.sh" | grep -v grep
ret=\$?
if [ \${ret} -eq 1 ]; then
- grep "This is your host IP address:" /opt/stack/devstack/nohup.out
- if [ \$? -eq 0 ]; then
- echo "Stacking Complete" > /tmp/stack_progress
- else
- echo "Stacking Failed" > /tmp/stack_progress
- fi
+ grep "This is your host IP address:" /opt/stack/devstack/nohup.out
+ if [ \$? -eq 0 ]; then
+ echo "Stacking Complete" > /tmp/stack_progress
+ else
+ echo "Stacking Failed" > /tmp/stack_progress
+ fi
elif [ \${ret} -eq 0 ]; then
- echo "Still Stacking" > /tmp/stack_progress
+ echo "Still Stacking" > /tmp/stack_progress
fi
EOF
-#the checking is repeated for an hour
+# Check if the stacking is finished. Poll all nodes every 60s for one hour.
iteration=0
in_progress=1
while [ ${in_progress} -eq 1 ]; do
-iteration=$(($iteration + 1))
-for index in "${!os_node_list[@]}"
-do
-echo "Check the status of stacking in ${os_node_list[index]}"
-scp ${WORKSPACE}/check_stacking.sh ${os_node_list[index]}:/tmp
-${SSH} ${os_node_list[index]} "bash /tmp/check_stacking.sh"
-scp ${os_node_list[index]}:/tmp/stack_progress .
-#debug
-cat stack_progress
-stacking_status=`cat stack_progress`
-if [ "$stacking_status" == "Still Stacking" ]; then
- continue
-elif [ "$stacking_status" == "Stacking Failed" ]; then
- collect_logs_and_exit
- exit 1
-elif [ "$stacking_status" == "Stacking Complete" ]; then
- unset 'os_node_list[index]'
- if [ ${#os_node_list[@]} -eq 0 ]; then
- in_progress=0
- fi
-fi
-done
- echo "sleep for a minute before the next check"
- sleep 60
- if [ ${iteration} -eq 60 ]; then
- collect_logs_and_exit
- exit 1
- fi
+ iteration=$(($iteration + 1))
+ for index in "${!os_node_list[@]}"; do
+ echo "node $index ${os_node_list[index]}: checking stacking status attempt ${iteration} of 60"
+ scp ${WORKSPACE}/check_stacking.sh ${os_node_list[index]}:/tmp
+ ${SSH} ${os_node_list[index]} "bash /tmp/check_stacking.sh"
+ scp ${os_node_list[index]}:/tmp/stack_progress .
+ cat stack_progress
+ stacking_status=`cat stack_progress`
+ if [ "$stacking_status" == "Still Stacking" ]; then
+ continue
+ elif [ "$stacking_status" == "Stacking Failed" ]; then
+ echo "node $index ${os_node_list[index]}: stacking has failed"
+ collect_logs
+ exit 1
+ elif [ "$stacking_status" == "Stacking Complete" ]; then
+ echo "node $index ${os_node_list[index]}: stacking complete"
+ unset 'os_node_list[index]'
+ if [ ${#os_node_list[@]} -eq 0 ]; then
+ in_progress=0
+ fi
+ fi
+ done
+ echo "sleep for a minute before the next check"
+ sleep 60
+ if [ ${iteration} -eq 60 ]; then
+ echo "stacking has failed - took longer than 60m"
+ collect_logs
+ exit 1
+ fi
done
+# Further configuration now that stacking is complete.
NUM_COMPUTES_PER_SITE=$((NUM_OPENSTACK_COMPUTE_NODES / NUM_OPENSTACK_SITES))
-for i in `seq 1 ${NUM_OPENSTACK_SITES}`
-do
+for i in `seq 1 ${NUM_OPENSTACK_SITES}`; do
echo "Configure the Control Node"
CONTROLIP=OPENSTACK_CONTROL_NODE_${i}_IP
+ # Gather Compute IPs for the site
+ for j in `seq 1 ${NUM_COMPUTES_PER_SITE}`; do
+ COMPUTE_INDEX=$(((i-1) * NUM_COMPUTES_PER_SITE + j))
+ IP_VAR=OPENSTACK_COMPUTE_NODE_${COMPUTE_INDEX}_IP
+ COMPUTE_IPS[$((j-1))]=${!IP_VAR}
+ done
+
+ # Need to disable firewalld and iptables in compute nodes as well
+ for ip in ${COMPUTE_IPS[*]}; do
+ scp ${WORKSPACE}/disable_firewall.sh "${ip}:/tmp"
+ ${SSH} "${ip}" "sudo bash /tmp/disable_firewall.sh"
+ done
#Need to disable firewalld and iptables in control node
echo "Stop Firewall in Control Node for compute nodes to be able to reach the ports and add to hypervisor-list"
echo "sleep for 60s and print hypervisor-list"
sleep 60
+ # In Ocata if we do not enable the n-cpu in control node then
+ # we need to discover hosts manually and ensure that they are mapped to cells.
+ # reference: https://ask.openstack.org/en/question/102256/how-to-configure-placement-service-for-compute-node-on-ocata/
+ if [ "${OPENSTACK_BRANCH}" == "stable/ocata" ]; then
+ scp ${WORKSPACE}/setup_host_cell_mapping.sh ${!CONTROLIP}:/tmp
+ ${SSH} ${!CONTROLIP} "sudo bash /tmp/setup_host_cell_mapping.sh"
+ fi
${SSH} ${!CONTROLIP} "cd /opt/stack/devstack; source openrc admin admin; nova hypervisor-list"
# in the case that we are doing openstack (control + compute) all in one node, then the number of hypervisors
# will be the same as the number of openstack systems. However, if we are doing multinode openstack then the
num_hypervisors=$(${SSH} ${!CONTROLIP} "cd /opt/stack/devstack; source openrc admin admin; openstack hypervisor list -f value | wc -l" | tail -1 | tr -d "\r")
if ! [ "${num_hypervisors}" ] || ! [ ${num_hypervisors} -eq ${expected_num_hypervisors} ]; then
echo "Error: Only $num_hypervisors hypervisors detected, expected $expected_num_hypervisors"
- collect_logs_and_exit
+ collect_logs
exit 1
fi
- # For Ocata, if we do not enable the n-cpu in control node
- # We need to discover hosts manually and ensure that they are mapped to cells.
- # reference: https://ask.openstack.org/en/question/102256/how-to-configure-placement-service-for-compute-node-on-ocata/
- if [ "${OPENSTACK_BRANCH}" == "stable/ocata" ]; then
- scp ${WORKSPACE}/setup_host_cell_mapping.sh ${!CONTROLIP}:/tmp
- ${SSH} ${!CONTROLIP} "sudo bash /tmp/setup_host_cell_mapping.sh"
- fi
-
# upgrading pip, urllib3 and httplib2 so that tempest tests can be run on openstack control node
# this needs to happen after devstack runs because it seems devstack is pulling in specific versions
# of these libs that are not working for tempest.
${SSH} ${!CONTROLIP} "sudo pip install httplib2 --upgrade"
# Gather Compute IPs for the site
- for j in `seq 1 ${NUM_COMPUTES_PER_SITE}`
- do
+ for j in `seq 1 ${NUM_COMPUTES_PER_SITE}`; do
COMPUTE_INDEX=$(((i-1) * NUM_COMPUTES_PER_SITE + j))
IP_VAR=OPENSTACK_COMPUTE_NODE_${COMPUTE_INDEX}_IP
COMPUTE_IPS[$((j-1))]=${!IP_VAR}
done
# Need to disable firewalld and iptables in compute nodes as well
- for ip in ${COMPUTE_IPS[*]}
- do
+ for ip in ${COMPUTE_IPS[*]}; do
scp ${WORKSPACE}/disable_firewall.sh "${ip}:/tmp"
${SSH} "${ip}" "sudo bash /tmp/disable_firewall.sh"
done
echo "prepare external networks by adding vxlan tunnels between all nodes on a separate bridge..."
# FIXME Should there be a unique gateway IP and devstack index for each site?
devstack_index=1
- for ip in ${!CONTROLIP} ${COMPUTE_IPS[*]}
- do
+ for ip in ${!CONTROLIP} ${COMPUTE_IPS[*]}; do
# FIXME - Workaround, ODL (new netvirt) currently adds PUBLIC_BRIDGE as a port in br-int since it doesn't see such a bridge existing when we stack
${SSH} $ip "sudo ovs-vsctl --if-exists del-port br-int $PUBLIC_BRIDGE"
${SSH} $ip "sudo ovs-vsctl --may-exist add-br $PUBLIC_BRIDGE -- set bridge $PUBLIC_BRIDGE other-config:disable-in-band=true other_config:hwaddr=f6:00:00:ff:01:0$((devstack_index++))"
# ipsec support
if [ "${IPSEC_VXLAN_TUNNELS_ENABLED}" == "yes" ]; then
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
+ for ((inx_ip1=0; inx_ip1<$((${#ALL_NODES[@]} - 1)); inx_ip1++)); do
+ for ((inx_ip2=$((inx_ip1 + 1)); inx_ip2<${#ALL_NODES[@]}; inx_ip2++)); do
KEY1=0x$(dd if=/dev/urandom count=32 bs=1 2> /dev/null| xxd -p -c 64)
KEY2=0x$(dd if=/dev/urandom count=32 bs=1 2> /dev/null| xxd -p -c 64)
ID=0x$(dd if=/dev/urandom count=4 bs=1 2> /dev/null| xxd -p -c 8)
done
done
- for ip in ${!CONTROLIP} ${COMPUTE_IPS[*]}
- do
+ for ip in ${!CONTROLIP} ${COMPUTE_IPS[*]}; do
echo "ip xfrm configuration for node $ip:"
${SSH} $ip "sudo ip xfrm policy list"
${SSH} $ip "sudo ip xfrm state list"
# Computes
compute_index=1
- for compute_ip in ${COMPUTE_IPS[*]}
- do
+ for compute_ip in ${COMPUTE_IPS[*]}; do
# Tunnel from controller to compute
COMPUTEPORT=compute$(( compute_index++ ))_vxlan
${SSH} ${!CONTROLIP} "
cat "${testplan_filepath}" | sed "s:integration:${WORKSPACE}:" > testplan.txt
cat testplan.txt
+# Use the testplan if specific SUITES are not defined.
if [ -z "${SUITES}" ]; then
SUITES=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
fi
-#Environment Variables Needed to execute Openstack Client for NEtvirt Jobs
+if [ "${OPENSTACK_BRANCH}" == "stable/pike" ]; then
+ AUTH="http://${!CONTROLIP}/identity"
+else
+ AUTH="http://${!CONTROLIP}:35357/v3"
+fi
+
+# Environment Variables Needed to execute Openstack Client for NetVirt Jobs
cat > /tmp/os_netvirt_client_rc << EOF
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_DOMAIN_NAME=default
-export OS_AUTH_URL="http://${!CONTROLIP}:35357/v3"
+export OS_AUTH_URL=${AUTH}
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
export OS_TENANT_NAME=admin
source /tmp/os_netvirt_client_rc
-#FIXME currently support only 1 site
echo "Starting Robot test suites ${SUITES} ..."
# please add pybot -v arguments on a single line and alphabetized
pybot -N ${TESTPLAN} --removekeywords wuks -c critical -e exclude -e skip_if_${DISTROSTREAM} \
-v WORKSPACE:/tmp \
${TESTOPTIONS} ${SUITES} || true
-echo "Examining the files in data/log and checking filesize"
+echo "Examining the files in data/log and checking file size"
ssh ${ODL_SYSTEM_IP} "ls -altr /tmp/${BUNDLEFOLDER}/data/log/"
ssh ${ODL_SYSTEM_IP} "du -hs /tmp/${BUNDLEFOLDER}/data/log/*"
echo "Tests Executed"
-collect_logs_and_exit
+collect_logs
true # perhaps Jenkins is testing last exit code
# vim: ts=4 sw=4 sts=4 et ft=sh :
name: OPENSTACK_BRANCH
default: '{openstack-branch}'
description: 'Openstack version to use with devstack'
+ - string:
+ name: DEVSTACK_HASH
+ default: '{devstack-hash}'
+ description: 'devstack hash to checkout'
- string:
name: ODL_ML2_DRIVER_REPO
default: '{odl-ml2-driver-repo}'
- string:
name: ENABLE_OS_SERVICES
default: '{enable-openstack-services}'
- description: 'comma seperated list of services to enable'
+ description: 'comma separated list of services to enable on controller nodes'
+ - string:
+ name: ENABLE_OS_COMPUTE_SERVICES
+ default: '{enable-openstack-compute-services}'
+ description: 'comma separated list of services to enable on compute nodes'
- string:
name: ENABLE_OS_PLUGINS
default: '{enable-openstack-plugins}'
name: OPENSTACK_BRANCH
default: '{openstack-branch}'
description: 'Openstack version to use with devstack'
+ - string:
+ name: DEVSTACK_HASH
+ default: '{devstack-hash}'
+ description: 'devstack hash to checkout'
- string:
name: ODL_ML2_DRIVER_REPO
default: '{odl-ml2-driver-repo}'
name: ENABLE_OS_SERVICES
default: '{enable-openstack-services}'
description: 'comma seperated list of services to enable'
+ - string:
+ name: ENABLE_OS_COMPUTE_SERVICES
+ default: '{enable-openstack-compute-services}'
+ description: 'comma separated list of services to enable on compute nodes'
- string:
name: ENABLE_OS_PLUGINS
default: '{enable-openstack-plugins}'
csit-list: !include: csit-jobs-oxygen.lst
csit-sanity-list: '{csit-sanity-list-oxygen}'
csit-weekly-list: '{csit-weekly-list-oxygen}'
- schedule-weekly: 'H 23 * * 6'
csit-high-frequency-list: '{csit-high-frequency-list-oxygen}'
- schedule-high-frequency: 'H H/4 * * *'
- nitrogen:
branch: 'stable/nitrogen'
csit-list: !include: csit-jobs-nitrogen.lst
csit-sanity-list: '{csit-sanity-list-nitrogen}'
csit-weekly-list: '{csit-weekly-list-nitrogen}'
- schedule-weekly: 'H 23 * * 6'
csit-high-frequency-list: '{csit-high-frequency-list-nitrogen}'
- schedule-high-frequency: 'H H/4 * * *'
- carbon:
branch: 'stable/carbon'
csit-list: !include: csit-jobs-carbon.lst
csit-sanity-list: '{csit-sanity-list-carbon}'
csit-weekly-list: '{csit-weekly-list-carbon}'
- schedule-weekly: 'H 23 * * 6'
csit-high-frequency-list: '{csit-high-frequency-list-carbon}'
- schedule-high-frequency: 'H H/4 * * *'
- boron:
branch: 'stable/boron'
csit-list: !include: csit-jobs-boron.lst
csit-sanity-list: '{csit-sanity-list-boron}'
csit-weekly-list: '{csit-weekly-list-boron}'
- schedule-weekly: 'H 23 * * 6'
csit-high-frequency-list: ''
schedule-high-frequency: ''
# TODO: Update the line above when stable/carbon is created.
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
- all:
csit-list: >
l2switch-csit-1node-periodic-host-scalability-daily-only-{stream},
- l2switch-csit-1node-scalability-only-{stream},
- l2switch-csit-1node-switch-only-{stream}
+ l2switch-csit-1node-scalability-all-{stream},
+ l2switch-csit-1node-switch-all-{stream}
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
- project:
name: lf-infra-lftools
jobs:
+ - '{project-name}-rtd-jobs'
- gerrit-tox-verify
project-name: lf-infra-lftools
project: releng/lftools
+ project-pattern: releng/lftools
build-node: centos7-java-builder-2c-4g
+ rtd-project: lf-releng-tools
stream: master
git-url: https://gerrit.linuxfoundation.org/infra/$GERRIT_PROJECT
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
feature:
- core:
csit-list: >
- netconf-csit-1node-gate-userfeatures-only-{stream},
+ netconf-csit-1node-gate-userfeatures-all-{stream},
netconf-csit-1node-gate-callhome-only-{stream}
robot-options: '-v USE_NETCONF_CONNECTOR:True'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
robot-options: '-v NETOPEER_USER:root -v USE_NETCONF_CONNECTOR:True'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
---
- project:
- name: netvirt-csit-hwvtep-openstack-integration
+ name: netvirt-csit-hwvtep-openstack-integration-oxygen
jobs:
- '{project}-csit-hwvtep-{topology}-openstack-{openstack}-{functionality}-{stream}'
project: 'netvirt'
+ stream: 'oxygen'
+ branch: 'master'
+ jre: 'openjdk8'
topology:
- 1node:
- openstack_system_count: 1
+ openstack_system1_count: 1
openstack_system2_count: 2
odl_system_count: 1
enable-haproxy: 'no'
install-features: 'odl-netvirt-openstack'
- 3node:
- openstack_system_count: 1
+ openstack_system1_count: 1
+ openstack_system2_count: 3
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack'
+
+ testplan: '{project}-{topology}-l2gw-openstack.txt'
+
+ functionality:
+ - upstream-stateful:
+ sg-mode: 'stateful'
+ - gate-stateful:
+ sg-mode: 'stateful'
+
+ openstack:
+ - ocata:
+ openstack-branch: 'stable/ocata'
+ odl-ml2-branch: 'stable/ocata'
+ openstack_system_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ openstack_system2_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ - pike:
+ openstack-branch: 'stable/pike'
+ devstack-hash: 'c2bb1020ac4f18df5aa90a13f3b6ee8eb2c15d65'
+ odl-ml2-branch: 'stable/pike'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ - queens:
+ openstack-branch: 'master'
+ devstack-hash: '2d5494cfc57b95b61f8b33240eff65f1a339a53e'
+ odl-ml2-branch: 'master'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+
+ odl-ml2-driver-version: 'v2'
+ enable-openstack-services: 'placement-api,l2gw-plugin'
+ enable-openstack-compute-services: 'placement-client'
+ security-group-mode: '{sg-mode}'
+ tools_system_count: 2
+ tools_system_image: 'Ubuntu 16.04 - mininet-ovs-26 - 20170829-0548'
+
+ # TODO: remove this flag and instead use the enable-openstack-services list to know if l2gw is enabled
+ enable-networking-l2gw: 'yes'
+
+- project:
+ name: netvirt-csit-hwvtep-openstack-integration-nitrogen
+ jobs:
+ - '{project}-csit-hwvtep-{topology}-openstack-{openstack}-{functionality}-{stream}'
+
+ project: 'netvirt'
+ stream: 'nitrogen'
+ branch: 'stable/nitrogen'
+ jre: 'openjdk8'
+
+ topology:
+ - 1node:
+ openstack_system1_count: 1
+ openstack_system2_count: 2
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack'
+ - 3node:
+ openstack_system1_count: 1
+ openstack_system2_count: 3
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack'
+
+ testplan: '{project}-{topology}-l2gw-openstack.txt'
+
+ functionality:
+ - upstream-stateful:
+ schedule: ''
+ sg-mode: 'stateful'
+ - gate-stateful:
+ schedule: ''
+ sg-mode: 'stateful'
+
+ openstack:
+ - ocata:
+ openstack-branch: 'stable/ocata'
+ odl-ml2-branch: 'stable/ocata'
+ openstack_system_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ openstack_system2_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ - pike:
+ openstack-branch: 'stable/pike'
+ devstack-hash: 'c2bb1020ac4f18df5aa90a13f3b6ee8eb2c15d65'
+ odl-ml2-branch: 'stable/pike'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ - queens:
+ openstack-branch: 'master'
+ devstack-hash: '2d5494cfc57b95b61f8b33240eff65f1a339a53e'
+ odl-ml2-branch: 'master'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+
+ odl-ml2-driver-version: 'v2'
+ enable-openstack-services: 'placement-api,l2gw-plugin'
+ enable-openstack-compute-services: 'placement-client'
+ security-group-mode: '{sg-mode}'
+ tools_system_count: 2
+ tools_system_image: 'Ubuntu 16.04 - mininet-ovs-26 - 20170829-0548'
+
+ # TODO: remove this flag and instead use the enable-openstack-services list to know if l2gw is enabled
+ enable-networking-l2gw: 'yes'
+
+- project:
+ name: netvirt-csit-hwvtep-openstack-integration-carbon
+ jobs:
+ - '{project}-csit-hwvtep-{topology}-openstack-{openstack}-{functionality}-{stream}'
+
+ project: 'netvirt'
+
+ stream: 'carbon'
+ branch: 'stable/carbon'
+ jre: 'openjdk8'
+ karaf-version: karaf3
+
+ topology:
+ - 1node:
+ openstack_system1_count: 1
+ openstack_system2_count: 2
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack'
+ - 3node:
+ openstack_system1_count: 1
+ openstack_system2_count: 3
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack'
+
+ testplan: '{project}-{topology}-l2gw-openstack.txt'
+
+ functionality:
+ - upstream-stateful:
+ schedule: ''
+ sg-mode: 'stateful'
+ - gate-stateful:
+ schedule: ''
+ sg-mode: 'stateful'
+
+ openstack:
+ - ocata:
+ openstack-branch: 'stable/ocata'
+ odl-ml2-branch: 'stable/ocata'
+ openstack_system_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ openstack_system2_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ - pike:
+ openstack-branch: 'stable/pike'
+ devstack-hash: 'c2bb1020ac4f18df5aa90a13f3b6ee8eb2c15d65'
+ odl-ml2-branch: 'stable/pike'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+
+ odl-ml2-driver-version: 'v2'
+ enable-openstack-services: 'placement-api,l2gw-plugin'
+ enable-openstack-compute-services: 'placement-client'
+ security-group-mode: '{sg-mode}'
+ tools_system_count: 2
+ tools_system_image: 'Ubuntu 16.04 - mininet-ovs-26 - 20170829-0548'
+
+ # TODO: remove this flag and instead use the enable-openstack-services list to know if l2gw is enabled
+ enable-networking-l2gw: 'yes'
+
+- project:
+ name: netvirt-csit-hwvtep-openstack-integration-boron
+ jobs:
+ - '{project}-csit-hwvtep-{topology}-openstack-{openstack}-{functionality}-{stream}'
+
+ project: 'netvirt'
+
+ stream: 'boron'
+ branch: 'stable/boron'
+ jre: 'openjdk8'
+ karaf-version: karaf3
+
+ topology:
+ - 1node:
+ openstack_system1_count: 1
+ openstack_system2_count: 2
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack'
+ - 3node:
+ openstack_system1_count: 1
openstack_system2_count: 3
odl_system_count: 3
enable-haproxy: 'yes'
- upstream-learn:
schedule: ''
sg-mode: 'learn'
- - gate-transparent:
+ - gate-stateful:
schedule: ''
- sg-mode: 'transparent'
-
- stream:
- - oxygen:
- branch: 'master'
- jre: 'openjdk8'
- - nitrogen:
- branch: 'stable/nitrogen'
- jre: 'openjdk8'
- - carbon:
- branch: 'stable/carbon'
- jre: 'openjdk8'
- karaf-version: karaf3
- - boron:
- branch: 'stable/boron'
- jre: 'openjdk8'
- karaf-version: karaf3
+ sg-mode: 'stateful'
openstack:
- newton:
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
- openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
- newton-nodl-v2:
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
odl-ml2-driver-version: 'v2'
- openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
- tools_system_count: 2
+ openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
+ openstack_system2_image: 'CentOS 7 - devstack-newton - 20170808-0528'
+ security-group-mode: '{sg-mode}'
+ tools_system_count: 2
tools_system_image: 'Ubuntu 16.04 - mininet-ovs-26 - 20170829-0548'
+ # TODO: remove this flag and instead use the enable-openstack-services list to know if l2gw is enabled
enable-networking-l2gw: 'yes'
+ enable-openstack-services: 'neutron,nova,l2gw-plugin'
- enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest,l2gw-plugin'
-
- security-group-mode: '{sg-mode}'
---
- project:
- name: netvirt-csit-openstack-integration
+ name: netvirt-csit-openstack-integration-oxygen
jobs:
- '{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}'
project: 'netvirt'
+ stream: 'oxygen'
+ branch: 'master'
+ jre: 'openjdk8'
+
+ topology:
+ - 1node:
+ openstack_system2_count: 2
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack'
+ - 3node:
+ openstack_system2_count: 3
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack'
+
+ testplan: '{project}-{topology}-openstack.txt'
+
+ functionality:
+ - upstream-stateful:
+ sg-mode: 'stateful'
+ - upstream-stateful-snat-conntrack:
+ sg-mode: 'stateful'
+ odl-snat-mode: 'conntrack'
+ - gate-stateful:
+ sg-mode: 'stateful'
+ - gate-stateful-snat-conntrack:
+ sg-mode: 'stateful'
+ odl-snat-mode: 'conntrack'
+ - gate-minimal-cluster:
+ sg-mode: 'stateful'
+ testplan: '{project}-{topology}-minimal-openstack.txt'
+
+ openstack:
+ - ocata:
+ openstack-branch: 'stable/ocata'
+ odl-ml2-branch: 'stable/ocata'
+ openstack_system_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ openstack_system2_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ - pike:
+ openstack-branch: 'stable/pike'
+ devstack-hash: 'c2bb1020ac4f18df5aa90a13f3b6ee8eb2c15d65'
+ odl-ml2-branch: 'stable/pike'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ - queens:
+ openstack-branch: 'master'
+ devstack-hash: '2d5494cfc57b95b61f8b33240eff65f1a339a53e'
+ odl-ml2-branch: 'master'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+
+ odl-ml2-driver-version: 'v2'
+ enable-openstack-services: 'placement-api,tempest'
+ enable-openstack-compute-services: 'placement-client'
+ security-group-mode: '{sg-mode}'
+
+- project:
+ name: netvirt-csit-openstack-integration-nitrogen
+ jobs:
+ - '{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}'
+
+ project: 'netvirt'
+ stream: 'nitrogen'
+ branch: 'stable/nitrogen'
+ jre: 'openjdk8'
+
+ topology:
+ - 1node:
+ openstack_system2_count: 2
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack'
+ - 3node:
+ openstack_system2_count: 3
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack'
+
+ testplan: '{project}-{topology}-openstack.txt'
+
+ functionality:
+ - upstream-stateful:
+ sg-mode: 'stateful'
+ - upstream-stateful-snat-conntrack:
+ sg-mode: 'stateful'
+ odl-snat-mode: 'conntrack'
+ - gate-stateful:
+ sg-mode: 'stateful'
+ - gate-stateful-snat-conntrack:
+ sg-mode: 'stateful'
+ odl-snat-mode: 'conntrack'
+ - gate-minimal-cluster:
+ sg-mode: 'stateful'
+ testplan: '{project}-{topology}-minimal-openstack.txt'
+
+ openstack:
+ - ocata:
+ openstack-branch: 'stable/ocata'
+ odl-ml2-branch: 'stable/ocata'
+ openstack_system_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ openstack_system2_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ - pike:
+ openstack-branch: 'stable/pike'
+ devstack-hash: 'c2bb1020ac4f18df5aa90a13f3b6ee8eb2c15d65'
+ odl-ml2-branch: 'stable/pike'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ - queens:
+ openstack-branch: 'master'
+ devstack-hash: '2d5494cfc57b95b61f8b33240eff65f1a339a53e'
+ odl-ml2-branch: 'master'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+
+ odl-ml2-driver-version: 'v2'
+ enable-openstack-services: 'placement-api,tempest'
+ enable-openstack-compute-services: 'placement-client'
+ security-group-mode: '{sg-mode}'
+
+- project:
+ name: netvirt-csit-openstack-integration-carbon
+ jobs:
+ - '{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}'
+
+ project: 'netvirt'
+ stream: 'carbon'
+ branch: 'stable/carbon'
+ jre: 'openjdk8'
+ karaf-version: karaf3
+
+ topology:
+ - 1node:
+ openstack_system2_count: 2
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack'
+ - 3node:
+ openstack_system2_count: 3
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack'
+
+ testplan: '{project}-{topology}-openstack.txt'
+
+ functionality:
+ - upstream-stateful:
+ sg-mode: 'stateful'
+ - upstream-stateful-snat-conntrack:
+ sg-mode: 'stateful'
+ odl-snat-mode: 'conntrack'
+ - gate-stateful:
+ sg-mode: 'stateful'
+ - gate-stateful-snat-conntrack:
+ sg-mode: 'stateful'
+ odl-snat-mode: 'conntrack'
+
+ openstack:
+ - ocata:
+ openstack-branch: 'stable/ocata'
+ odl-ml2-branch: 'stable/ocata'
+ openstack_system_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ openstack_system2_image: 'CentOS 7 - devstack-ocata - 20170808-0528'
+ - pike:
+ openstack-branch: 'stable/pike'
+ devstack-hash: 'c2bb1020ac4f18df5aa90a13f3b6ee8eb2c15d65'
+ odl-ml2-branch: 'stable/pike'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+
+ odl-ml2-driver-version: 'v2'
+ enable-openstack-services: 'placement-api,tempest'
+ enable-openstack-compute-services: 'placement-client'
+ security-group-mode: '{sg-mode}'
+
+- project:
+ name: netvirt-csit-openstack-integration-boron
+ jobs:
+ - '{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}'
+
+ project: 'netvirt'
+ stream: 'boron'
+ branch: 'stable/boron'
+ jre: 'openjdk8'
+ karaf-version: karaf3
topology:
- 1node:
- openstack_system_count: 1
openstack_system2_count: 2
odl_system_count: 1
enable-haproxy: 'no'
install-features: 'odl-netvirt-openstack'
- 3node:
- openstack_system_count: 1
openstack_system2_count: 3
odl_system_count: 3
enable-haproxy: 'yes'
functionality:
- upstream-transparent:
- schedule: ''
sg-mode: 'transparent'
- upstream-stateful:
- schedule: ''
sg-mode: 'stateful'
- upstream-stateful-snat-conntrack:
- schedule: ''
sg-mode: 'stateful'
odl-snat-mode: 'conntrack'
- upstream-learn:
- schedule: ''
sg-mode: 'learn'
- gate-learn:
- schedule: ''
sg-mode: 'learn'
- gate-transparent:
- schedule: ''
sg-mode: 'transparent'
- gate-stateful:
- schedule: ''
- sg-mode: 'stateful'
- - gate-stateful-snat-conntrack:
- schedule: ''
- sg-mode: 'stateful'
- odl-snat-mode: 'conntrack'
- - gate-minimal-cluster:
- schedule: ''
sg-mode: 'stateful'
- testplan: '{project}-{topology}-minimal-openstack.txt'
- gate-minimal-transparent:
- schedule: ''
sg-mode: 'transparent'
testplan: '{project}-{topology}-minimal-openstack.txt'
- gate-tempest-transparent:
- schedule: ''
sg-mode: 'transparent'
testplan: '{project}-{topology}-tempest-openstack.txt'
- stream:
- - oxygen:
- branch: 'master'
- jre: 'openjdk8'
- - nitrogen:
- branch: 'stable/nitrogen'
- jre: 'openjdk8'
- - carbon:
- branch: 'stable/carbon'
- jre: 'openjdk8'
- karaf-version: karaf3
- - boron:
- branch: 'stable/boron'
- jre: 'openjdk8'
- karaf-version: karaf3
-
openstack:
- newton:
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
- openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
- openstack_system2_image: 'CentOS 7 - devstack-newton - 20170808-0528'
- newton-nodl-v2:
openstack-branch: 'stable/newton'
odl-ml2-branch: 'stable/newton'
odl-ml2-driver-version: 'v2'
- openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
- openstack_system2_image: 'CentOS 7 - devstack-newton - 20170808-0528'
- - ocata:
- openstack-branch: 'stable/ocata'
- odl-ml2-branch: 'stable/ocata'
- odl-ml2-driver-version: 'v2'
- openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
- openstack_system2_image: 'CentOS 7 - devstack-newton - 20170808-0528'
+ enable-openstack-services: 'tempest'
+ openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
+ openstack_system2_image: 'CentOS 7 - devstack-newton - 20170808-0528'
security-group-mode: '{sg-mode}'
- project:
- name: netvirt-csit-extensions-site-openstack-integration
+ name: netvirt-csit-sfc-openstack-integration
jobs:
- '{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}'
topology:
- 1node:
- openstack_system_count: 1
openstack_system2_count: 2
odl_system_count: 1
enable-haproxy: 'no'
install-features: 'odl-netvirt-sfc'
functionality:
- - extensions-sfc:
- schedule: ''
+ - sfc:
+ enable-openstack-services: 'placement-api,tempest'
+ enable-openstack-compute_services: 'placement-client'
enable-openstack-plugins: 'networking-odl,networking-sfc'
testplan: '{project}-extensions-sfc.txt'
stream:
- - nitrogen:
+ - oxygen:
branch: 'master'
jre: 'openjdk8'
+ - nitrogen:
+ branch: 'stable/nitrogen'
+ jre: 'openjdk8'
- carbon:
branch: 'stable/carbon'
jre: 'openjdk8'
karaf-version: karaf3
openstack:
- - newton-nodl-v2:
- openstack-branch: 'stable/newton'
- odl-ml2-branch: 'stable/newton'
- odl-ml2-driver-version: 'v2'
- openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
+ - pike:
+ openstack-branch: 'stable/pike'
+ devstack-hash: 'c2bb1020ac4f18df5aa90a13f3b6ee8eb2c15d65'
+ odl-ml2-branch: 'stable/pike'
+ odl-ml2-port-binding: 'pseudo-agentdb-binding'
+ openstack_system_image: 'CentOS 7 - devstack-pike - 20170901-2223'
+ openstack_system2_image: 'CentOS 7 - devstack-pike - 20170901-2223'
security-group-mode: 'stateful'
# The project name
functionality:
- - upstream:
- schedule: ''
- - gate:
- schedule: ''
+ - upstream
+ - gate
stream:
- boron:
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
stream:
- oxygen:
branch: 'master'
- jdk: 'openjdk8'
+ # ideally, master (oxygen) would gate against Queens (current master) or 'R' release
+ # bug even the pike devstack environment is still unreliable. so sticking with Ocata
+ # for now
+ os-branch: 'ocata'
- nitrogen:
branch: 'stable/nitrogen'
- jdk: 'openjdk8'
+ # ideally, master (oxygen) would gate against Queens (current master)
+ # bug even the pike devstack environment is still unreliable. so sticking with Ocata
+ # for now
+ os-branch: 'ocata'
- carbon:
branch: 'stable/carbon'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
karaf-version: karaf3
- boron:
branch: 'stable/boron'
- jdk: 'openjdk8'
+ os-branch: 'newton'
karaf-version: karaf3
+ jdk: 'openjdk8'
+
feature:
- current:
csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-stateful-{stream}
- - minimal-current:
- csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-minimal-stateful-{stream}
- - tempest-current:
- csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-tempest-stateful-{stream}
+ netvirt-csit-1node-openstack-{os-branch}-gate-stateful-{stream}
- cluster-current:
csit-list: >
- netvirt-csit-3node-openstack-ocata-gate-stateful-{stream}
+ netvirt-csit-3node-openstack-{os-branch}-gate-stateful-{stream}
- cluster-minimal-current:
csit-list: >
- netvirt-csit-3node-openstack-ocata-gate-minimal-cluster-{stream}
- - nodl-v1-current:
- csit-list: >
- netvirt-csit-1node-openstack-newton-gate-stateful-{stream}
- - learn-current:
- csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-learn-{stream}
- - stateful-current:
- csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-stateful-{stream}
- - transparent-current:
- csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-transparent-{stream}
+ netvirt-csit-3node-openstack-{os-branch}-gate-minimal-cluster-{stream}
- snat-conntrack:
csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-stateful-snat-conntrack-{stream}
+ netvirt-csit-1node-openstack-{os-branch}-gate-stateful-snat-conntrack-{stream}
- hwvtep:
csit-list: >
- netvirt-csit-hwvtep-1node-openstack-ocata-gate-stateful-{stream}
+ netvirt-csit-hwvtep-1node-openstack-{os-branch}-gate-stateful-{stream}
- project:
name: netvirt-legacy-patch-test
- legacy:
csit-list: >
netvirt-legacy-csit-1node-openstack-newton-nodl-v2-gate-{stream},
- netvirt-legacy-csit-1node-openstack-basic-only-{stream}
+ netvirt-legacy-csit-1node-openstack-basic-all-{stream}
- cluster-legacy:
csit-list: >
netvirt-legacy-csit-3node-openstack-newton-nodl-v2-gate-{stream},
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
# Features to install
- install-features: 'odl-nic-console'
+ install-features: 'odl-nic-intent-common'
# Robot custom options
robot-options: ''
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
# mininet image
tools_system_image: Ubuntu 16.04 - mininet-ovs-25 - 20170808-0158
- # Trigger jobs (on saturday)
- schedule: 'H H * * 6'
+ schedule: '{schedule-saturday}'
stream:
- oxygen:
branch: 'master'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
- nitrogen:
branch: 'stable/nitrogen'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
- carbon:
branch: 'stable/carbon'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
karaf-version: karaf3
- boron:
branch: 'stable/boron'
- jdk: 'openjdk8'
+ os-branch: 'newton'
karaf-version: karaf3
+ jdk: 'openjdk8'
+
feature:
- core:
csit-list: >
- openflowplugin-csit-1node-gate-flow-services-only-{stream},
openflowplugin-csit-1node-gate-flow-services-all-{stream},
openflowplugin-csit-1node-gate-scalability-only-{stream},
openflowplugin-csit-1node-periodic-gate-scale-stats-collection-daily-only-{stream},
- netvirt:
csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-stateful-{stream}
+ netvirt-csit-1node-openstack-{os-branch}-gate-stateful-{stream}
- cluster-netvirt:
csit-list: >
- netvirt-csit-3node-openstack-ocata-gate-stateful-{stream}
+ netvirt-csit-3node-openstack-{os-branch}-gate-stateful-{stream}
+++ /dev/null
-#!/bin/bash
-
-set -e
-set -x
-
-./autogen.sh
-ROOT=/tmp/opflex-prefix
-./configure --prefix=$ROOT
-mkdir install-root
-DESTDIR=`pwd`/install-root make clean install
-pushd install-root
-tar -czf libuv.tgz *
-popd
+++ /dev/null
-#!/bin/bash
-# Build script for openvswitch
-
-set -e
-set -x
-
-ROOT=/tmp/opflex-prefix
-DESTDIR=install-root
-
-mkdir -p "$DESTDIR"
-
-./boot.sh
-./configure --prefix="$ROOT" --enable-shared
-make -j4
-DESTDIR=`pwd`/$DESTDIR make install
-find lib ofproto -name "*.h" -exec cp --parents -t "$DESTDIR/$ROOT/include/openvswitch/" {} \;
-
-pushd $DESTDIR
-tar -czf openvswitch.tgz *
-popd
+++ /dev/null
-#!/bin/bash
-# Build script for rapidjson
-
-set -e
-set -x
-
-ROOT=/tmp/opflex-prefix
-DESTDIR=install-root
-
-mkdir -p "$DESTDIR/$ROOT/lib/pkgconfig"
-mkdir -p "$DESTDIR/$ROOT/include"
-
-cp -R include/rapidjson "$DESTDIR/$ROOT/include"
-sed -e "s|@INCLUDE_INSTALL_DIR@|$ROOT/include|" \
- -e "s|@PROJECT_NAME@|RapidJSON|" \
- -e "s|@LIB_VERSION_STRING@|1.0.2|" RapidJSON.pc.in > \
- "$DESTDIR/$ROOT/lib/pkgconfig/RapidJSON.pc"
-
-pushd $DESTDIR
-tar -czf rapidjson.tgz *
+++ /dev/null
-#!/bin/bash
-# Build script for openvswitch
-
-set -e
-set -x
-
-ROOT=/tmp/opflex-prefix
-DESTDIR=install-root
-
-mkdir -p "$DESTDIR"
-
-./boot.sh
-./configure --prefix="$ROOT" --enable-shared
-make -j4
-DESTDIR=`pwd`/$DESTDIR make install
-
-# OVS headers get installed to weird and inconsistent locations. Try
-# to clean things up
-mkdir -p $DESTDIR/$ROOT/include/openvswitch/openvswitch
-mv $DESTDIR/$ROOT/include/openvswitch/*.h $DESTDIR/$ROOT/include/openvswitch/openvswitch
-mv $DESTDIR/$ROOT/include/openflow $DESTDIR/$ROOT/include/openvswitch
-cp -t "$DESTDIR/$ROOT/include/openvswitch/" include/*.h
-find lib -name "*.h" -exec cp --parents -t "$DESTDIR/$ROOT/include/openvswitch/" {} \;
-
-pushd $DESTDIR
-tar -czf openvswitch.tgz *
-popd
-
stream:
- oxygen:
branch: 'master'
- jdk: 'openjdk8'
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
- nitrogen:
branch: 'stable/nitrogen'
- jdk: openjdk8
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
- carbon:
branch: 'stable/carbon'
- jdk: openjdk8
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
- boron:
branch: 'stable/boron'
- jdk: openjdk8
+ libuv-version: '1.7.5'
+ rapidjson-version: '1.0.1'
+ openvswitch-version: 'noiro'
project: 'opflex'
archive-artifacts: '**/*.tar.gz'
-
-- builder:
- name: opflex-build
- builders:
- - maven-target:
- maven-version: 'mvn33'
- pom: genie/pom.xml
- goals: compile
- - copyartifact:
- project: opflex-libuv_tgz-{stream}
- flatten: true
- - copyartifact:
- project: opflex-rapidjson_tgz-{stream}
- flatten: true
- - copyartifact:
- project: opflex-openvswitch_tgz-{stream}
- flatten: true
- - shell: !include-raw-escape: opflex-build.sh
+ jdk: 'openjdk8'
- job-template:
name: 'opflex-verify-{stream}'
branch: '{branch}'
refspec: 'refs/heads/{branch}'
artifacts: '{archive-artifacts}'
+ - string:
+ name: LIBUV_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{libuv-version}'
+ description: 'libuv version'
+ - string:
+ name: RAPIDJSON_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{rapidjson-version}'
+ description: 'rapidjson version'
+ - string:
+ name: OPENVSWITCH_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{openvswitch-version}'
+ description: 'openvswitch-version'
scm:
- gerrit-trigger-scm:
branch: '{branch}'
refspec: 'refs/heads/{branch}'
artifacts: ''
+ - string:
+ name: LIBUV_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{libuv-version}'
+ description: 'libuv version'
+ - string:
+ name: RAPIDJSON_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{rapidjson-version}'
+ description: 'rapidjson version'
+ - string:
+ name: OPENVSWITCH_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{openvswitch-version}'
+ description: 'openvswitch version'
scm:
- gerrit-trigger-scm:
- project:
name: opflex-dependencies
jobs:
- - 'opflex-libuv_tgz-{stream}'
- - 'opflex-rapidjson_tgz-{stream}'
- - 'opflex-openvswitch_tgz-{stream}'
+ - 'opflex-libuv-{stream}'
+ - 'opflex-rapidjson-{stream}'
+ - 'opflex-openvswitch-{stream}'
+ # todo: remove 'ovs-scm' after boron EOL
stream:
- oxygen:
branch: 'master'
- libuv-build: v1
- libuv-scm: v2
- rapidjson-build: v1
- rapidjson-scm: v2
- openvswitch-build: v2
- openvswitch-scm: v2
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
+ ovs-scm: v2
- nitrogen:
branch: 'stable/nitrogen'
- libuv-build: v1
- libuv-scm: v2
- rapidjson-build: v1
- rapidjson-scm: v2
- openvswitch-build: v2
- openvswitch-scm: v2
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
+ ovs-scm: v2
- carbon:
branch: 'stable/carbon'
- libuv-build: v1
- libuv-scm: v2
- rapidjson-build: v1
- rapidjson-scm: v2
- openvswitch-build: v2
- openvswitch-scm: v2
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
+ ovs-scm: v2
- boron:
branch: 'stable/boron'
- libuv-build: v1
- libuv-scm: v1
- rapidjson-build: v1
- rapidjson-scm: v1
- openvswitch-build: v1
- openvswitch-scm: v1
+ libuv-version: '1.7.5'
+ rapidjson-version: '1.0.1'
+ openvswitch-version: 'noiro'
+ ovs-scm: v1
project: 'opflex'
-- scm:
- name: 'git-opflex-libuv-v1'
- scm:
- - git:
- url: https://github.com/libuv/libuv.git
- branches:
- - 'refs/tags/v1.7.5'
- wipe-workspace: true
-
-- scm:
- name: 'git-opflex-libuv-v2'
- scm:
- - git:
- url: https://github.com/libuv/libuv.git
- branches:
- - 'refs/tags/v1.8.0'
- wipe-workspace: true
-
-- scm:
- name: 'git-opflex-rapidjson-v1'
- scm:
- - git:
- url: https://github.com/miloyip/rapidjson.git
- branches:
- - 'refs/tags/v1.0.1'
- wipe-workspace: true
-
-- scm:
- name: 'git-opflex-rapidjson-v2'
- scm:
- - git:
- url: https://github.com/miloyip/rapidjson.git
- branches:
- - 'refs/tags/v1.0.2'
- wipe-workspace: true
-
-- scm:
- name: 'git-opflex-ovs-v1'
- scm:
- - git:
- url: https://github.com/noironetworks/ovs.git
- branches:
- - 'origin/noiro'
- wipe-workspace: true
-
-- scm:
- name: 'git-opflex-ovs-v2'
- scm:
- - git:
- url: https://github.com/openvswitch/ovs.git
- branches:
- - 'refs/tags/v2.6.0'
- wipe-workspace: true
-
-- builder:
- name: 'builder-opflex-libuv-v1'
- builders:
- - shell: !include-raw-escape: deps-inc-v1/libuv_tgz-build.sh
+ mvn-opts: ''
+ mvn-params: ''
+ mvn-version: mvn33
+
+ # common parameters required for 'lf-infra-deploy-maven-file' builder
+ repo-id: 'thirdparty'
+ upload-files-dir: '$WORKSPACE/upload_files'
- job-template:
- name: 'opflex-libuv_tgz-{stream}'
+ name: 'opflex-libuv-{stream}'
project-type: freestyle
node: centos7-java-builder-2c-8g
concurrent: true
+ group-id: 'libuv'
+
properties:
- opendaylight-infra-properties:
build-days-to-keep: '{build-days-to-keep}'
+ parameters:
+ - opendaylight-infra-parameters:
+ os-cloud: '{os-cloud}'
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+ - lf-infra-maven-parameters:
+ mvn-opts: '{mvn-opts}'
+ mvn-params: '{mvn-params}'
+ mvn-version: '{mvn-version}'
+ staging-profile-id: ''
+ - string:
+ name: LIBUV_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{libuv-version}'
+ description: 'libuv version'
+
scm:
- - git-opflex-libuv-{libuv-scm}
+ - git-opflex-libuv
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
builders:
- - builder-opflex-libuv-{libuv-build}
+ - opflex-build-libuv
+ - lf-infra-deploy-maven-file:
+ global-settings-file: 'global-settings'
+ settings-file: 'opflex-settings'
+ mvn-version: '{mvn-version}'
+ repo-id: '{repo-id}'
+ group-id: '{group-id}'
+ upload-files-dir: '{upload-files-dir}'
+ maven-repo-url: '$NEXUS_URL/content/repositories/thirdparty'
publishers:
- email-notification:
email-recipients: '{email-recipients}'
email-prefix: '[opflex]'
- - archive:
- artifacts: 'install-root/*.tgz'
-
-- builder:
- name: 'builder-opflex-rapidjson-v1'
- builders:
- - shell: !include-raw-escape: deps-inc-v1/rapidjson_tgz-build.sh
+ - lf-infra-publish
- job-template:
- name: 'opflex-rapidjson_tgz-{stream}'
+ name: 'opflex-rapidjson-{stream}'
project-type: freestyle
node: centos7-java-builder-2c-8g
concurrent: true
+ group-id: 'rapidjson'
+
properties:
- opendaylight-infra-properties:
build-days-to-keep: '{build-days-to-keep}'
+ parameters:
+ - opendaylight-infra-parameters:
+ os-cloud: '{os-cloud}'
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+ - lf-infra-maven-parameters:
+ mvn-opts: '{mvn-opts}'
+ mvn-params: '{mvn-params}'
+ mvn-version: '{mvn-version}'
+ staging-profile-id: ''
+ - string:
+ name: RAPIDJSON_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{rapidjson-version}'
+ description: 'rapidjson version'
+
scm:
- - git-opflex-rapidjson-{rapidjson-scm}
+ - git-opflex-rapidjson
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
builders:
- - builder-opflex-rapidjson-{rapidjson-build}
+ - opflex-build-rapidjson
+ - lf-infra-deploy-maven-file:
+ global-settings-file: 'global-settings'
+ settings-file: 'opflex-settings'
+ mvn-version: '{mvn-version}'
+ repo-id: '{repo-id}'
+ group-id: '{group-id}'
+ upload-files-dir: '{upload-files-dir}'
+ maven-repo-url: '$NEXUS_URL/content/repositories/thirdparty'
publishers:
- email-notification:
email-recipients: '{email-recipients}'
email-prefix: '[opflex]'
- - archive:
- artifacts: 'install-root/*.tgz'
-
-- builder:
- name: 'builder-opflex-openvswitch-v1'
- builders:
- - shell: !include-raw: deps-inc-v1/openvswitch_tgz-build.sh
-
-- builder:
- name: 'builder-opflex-openvswitch-v2'
- builders:
- - shell: !include-raw: deps-inc-v2/openvswitch_tgz-build.sh
+ - lf-infra-publish
- job-template:
- name: 'opflex-openvswitch_tgz-{stream}'
+ name: 'opflex-openvswitch-{stream}'
project-type: freestyle
node: centos7-java-builder-2c-8g
concurrent: true
+ group-id: 'openvswitch'
+
properties:
- opendaylight-infra-properties:
build-days-to-keep: '{build-days-to-keep}'
+ parameters:
+ - opendaylight-infra-parameters:
+ os-cloud: '{os-cloud}'
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+ - lf-infra-maven-parameters:
+ mvn-opts: '{mvn-opts}'
+ mvn-params: '{mvn-params}'
+ mvn-version: '{mvn-version}'
+ staging-profile-id: ''
+ - string:
+ name: OPENVSWITCH_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{openvswitch-version}'
+ description: 'openvswitch-version'
+
scm:
- - git-opflex-ovs-{openvswitch-scm}
+ - git-opflex-ovs-{ovs-scm}
wrappers:
- opendaylight-infra-wrappers:
build-timeout: '{build-timeout}'
builders:
- - builder-opflex-openvswitch-{openvswitch-build}
+ - opflex-build-openvswitch
+ - lf-infra-deploy-maven-file:
+ global-settings-file: 'global-settings'
+ settings-file: 'opflex-settings'
+ mvn-version: '{mvn-version}'
+ repo-id: '{repo-id}'
+ group-id: '{group-id}'
+ upload-files-dir: '{upload-files-dir}'
+ maven-repo-url: '$NEXUS_URL/content/repositories/thirdparty'
publishers:
- email-notification:
email-recipients: '{email-recipients}'
email-prefix: '[opflex]'
- - archive:
- artifacts: 'install-root/*.tgz'
+ - lf-infra-publish
--- /dev/null
+---
+# OpFlex macros
+
+- builder:
+ name: opflex-build
+ builders:
+ - maven-target:
+ maven-version: 'mvn33'
+ pom: genie/pom.xml
+ goals: compile
+ - shell: !include-raw-escape: scripts/opflex-build.sh
+
+- builder:
+ name: 'opflex-build-libuv'
+ builders:
+ - shell: !include-raw-escape: scripts/libuv-build.sh
+
+- builder:
+ name: 'opflex-build-openvswitch'
+ builders:
+ - shell: !include-raw: scripts/openvswitch-build.sh
+
+- builder:
+ name: 'opflex-build-rapidjson'
+ builders:
+ - shell: !include-raw-escape: scripts/rapidjson-build.sh
+
+- builder:
+ name: opflex-deploy-maven-file
+ # Todo: Remove this builder when the generic version of the builder is
+ # available in global-jjb. Change no: 5753
+ # Deploy artifacts to a repository.
+ #
+ # The builder requires passing the following parameters
+ # REPO_ID: Repository ID
+ # GROUP_ID: Group ID of the repository
+ # UPLOAD_FILES_PATH: Path to directory containing one or more files
+ builders:
+ - lf-maven-install:
+ mvn-version: '{mvn-version}'
+ - lf-provide-maven-settings:
+ global-settings-file: '{global-settings-file}'
+ settings-file: '{settings-file}'
+ - inject:
+ properties-content: |
+ MAVEN_REPO_URL=file://$WORKSPACE/m2repo
+ REPO_ID={repo-id}
+ GROUP_ID={group-id}
+ UPLOAD_FILES_PATH={upload-files-dir}
+ - shell: !include-raw-escape:
+ - ../global-jjb/shell/lftools-install.sh
+ - ../global-jjb/shell/common-variables.sh
+ - scripts/deploy-opflex.sh
+
+- builder:
+ name: opflex-maven-stage
+ # Todo: Migrate to the generic version of the builders available in
+ # global-jjb. Change no: 5753
+ # Stage files to Nexus repository.
+ #
+ # The builder requires passing the following parameters
+ # REPO_ID : Repository ID
+ # GROUP_ID : Group ID of the repository
+ # UPLOAD_FILES_PATH : Path to directory containing one or more files
+ # STAGING_PROFILE_ID : Staging profile id created on Nexus
+ builders:
+ - lf-provide-maven-settings:
+ global-settings-file: '{global-settings-file}'
+ settings-file: '{settings-file}'
+ - lf-infra-create-netrc:
+ server-id: opendaylight-staging
+ - inject:
+ properties-content: |
+ STAGING_PROFILE_ID={staging-profile-id}
+ - shell: !include-raw-escape:
+ - ../global-jjb/shell/lftools-install.sh
+ - ../global-jjb/shell/maven-stage.sh
+
+- scm:
+ name: 'git-opflex-libuv'
+ scm:
+ - git:
+ url: https://github.com/libuv/libuv.git
+ branches:
+ - 'refs/tags/v$LIBUV_VERSION'
+ wipe-workspace: true
+
+- scm:
+ name: 'git-opflex-ovs-v2'
+ scm:
+ - git:
+ url: https://github.com/openvswitch/ovs.git
+ branches:
+ - 'refs/tags/v$OPENVSWITCH_VERSION'
+ wipe-workspace: true
+
+# todo: remove 'git-opflex-ovs-v1' after boron EOL
+- scm:
+ name: 'git-opflex-ovs-v1'
+ scm:
+ - git:
+ url: https://github.com/noironetworks/ovs.git
+ branches:
+ - 'origin/noiro'
+ wipe-workspace: true
+
+- scm:
+ name: 'git-opflex-rapidjson'
+ scm:
+ - git:
+ url: https://github.com/miloyip/rapidjson.git
+ branches:
+ - 'refs/tags/v$RAPIDJSON_VERSION'
+ wipe-workspace: true
stream:
- oxygen:
branch: 'master'
- jdk: 'openjdk8'
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
- nitrogen:
branch: 'stable/nitrogen'
- jdk: openjdk8
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
- carbon:
branch: 'stable/carbon'
- jdk: openjdk8
+ libuv-version: '1.8.0'
+ rapidjson-version: '1.0.2'
+ openvswitch-version: '2.6.0'
- boron:
branch: 'stable/boron'
- jdk: openjdk8
+ libuv-version: '1.7.5'
+ rapidjson-version: '1.0.1'
+ openvswitch-version: 'origin/noiro'
project: 'opflex'
project-name: 'opflex'
+ jdk: 'openjdk8'
+
branch: master
global-settings-file: global-settings
settings-file: opflex-settings
# Used by the release job
staging-profile-id: 906b0d53d714e
-
-- builder:
- name: opflex-deploy-maven-file
- # Todo: Remove this builder when the generic version of the builder is
- # available in global-jjb. Change no: 5753
- # Deploy artifacts to a repository.
- #
- # The builder requires passing the following parameters
- # REPO_ID: Repository ID
- # GROUP_ID: Group ID of the repository
- # UPLOAD_FILES_PATH: Path to directory containing one or more files
- builders:
- - lf-maven-install:
- mvn-version: '{mvn-version}'
- - lf-provide-maven-settings:
- global-settings-file: '{global-settings-file}'
- settings-file: '{settings-file}'
- - inject:
- properties-content: |
- MAVEN_REPO_URL=file://$WORKSPACE/m2repo
- REPO_ID={repo-id}
- GROUP_ID={group-id}
- UPLOAD_FILES_PATH={upload-files-dir}
- - shell: !include-raw-escape:
- - ../global-jjb/shell/lftools-install.sh
- - ../global-jjb/shell/common-variables.sh
- - deploy-opflex.sh
-
-- builder:
- name: opflex-maven-stage
- # Todo: Migrate to the generic version of the builders available in
- # global-jjb. Change no: 5753
- # Stage files to Nexus repository.
- #
- # The builder requires passing the following parameters
- # REPO_ID : Repository ID
- # GROUP_ID : Group ID of the repository
- # UPLOAD_FILES_PATH : Path to directory containing one or more files
- # STAGING_PROFILE_ID : Staging profile id created on Nexus
- builders:
- - lf-provide-maven-settings:
- global-settings-file: '{global-settings-file}'
- settings-file: '{settings-file}'
- - lf-infra-create-netrc:
- server-id: opendaylight-staging
- - inject:
- properties-content: |
- STAGING_PROFILE_ID={staging-profile-id}
- - shell: !include-raw-escape:
- - ../global-jjb/shell/lftools-install.sh
- - ../global-jjb/shell/maven-stage.sh
-
- job-template:
name: 'opflex-release-{stream}'
mvn-params: '{mvn-params}'
mvn-version: '{mvn-version}'
staging-profile-id: '{staging-profile-id}'
+ - string:
+ name: LIBUV_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{libuv-version}'
+ description: 'libuv version to pull from thirdparty repository'
+ - string:
+ name: RAPIDJSON_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{rapidjson-version}'
+ description: 'rapidjson version to pull from thirdparty repository'
+ - string:
+ name: OPENVSWITCH_VERSION
+ # yamllint disable-line rule:line-length
+ default: '{openvswitch-version}'
+ description: 'openvswitch version to pull from thirdparty repository'
scm:
- gerrit-trigger-scm:
# $REPO_ID : Provided by a job parameter.
# $GROUP_ID : Provided by a job parameter.
# $UPLOAD_FILES_PATH : Provided by a job parameter.
-echo "---> deploy-opflex.sh"
+echo "---> scripts/deploy-opflex.sh"
# DO NOT enable -u because $MAVEN_PARAMS and $MAVEN_OPTIONS could be unbound.
# Ensure we fail the job if any steps fail.
--- /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
+##############################################################################
+echo "---> scripts/libuv-build.sh"
+
+set -e
+set -x
+
+./autogen.sh
+ROOT=/tmp/opflex-prefix
+./configure --prefix=$ROOT
+mkdir install-root
+DESTDIR=`pwd`/install-root make clean install
+pushd install-root
+tar -cvzf "libuv-$LIBUV_VERSION.tar.gz" *
+# Move tarball to dir of files that will be uploaded to Nexus
+UPLOAD_FILES_PATH="$WORKSPACE/upload_files"
+mkdir -p "$UPLOAD_FILES_PATH"
+mv *.tar.gz "$_"
+popd
--- /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
+##############################################################################
+# Build script for openvswitch
+
+set -e
+set -x
+
+echo "---> scripts/openvswitch-build.sh"
+
+ROOT=/tmp/opflex-prefix
+DESTDIR=install-root
+
+mkdir -p "$DESTDIR"
+
+./boot.sh
+./configure --prefix="$ROOT" --enable-shared
+make -j4
+DESTDIR=`pwd`/$DESTDIR make install
+
+if [[ $OPENVSWITCH_VERSION =~ 2.6.0 ]]; then
+ mkdir -p $DESTDIR/$ROOT/include/openvswitch/openvswitch
+ mv $DESTDIR/$ROOT/include/openvswitch/*.h $DESTDIR/$ROOT/include/openvswitch/openvswitch
+ mv $DESTDIR/$ROOT/include/openflow $DESTDIR/$ROOT/include/openvswitch
+ cp -t "$DESTDIR/$ROOT/include/openvswitch/" include/*.h
+ find lib -name "*.h" -exec cp --parents -t "$DESTDIR/$ROOT/include/openvswitch/" {} \;
+elif [[ $OPENVSWITCH_VERSION =~ noiro ]]; then
+ find lib ofproto -name "*.h" -exec cp --parents -t "$DESTDIR/$ROOT/include/openvswitch/" {} \;
+fi
+
+pushd $DESTDIR
+tar -cvzf "openvswitch-$OPENVSWITCH_VERSION.tar.gz" *
+# Move tarball to dir of files that will be uploaded to Nexus
+UPLOAD_FILES_PATH="$WORKSPACE/upload_files"
+mkdir -p "$UPLOAD_FILES_PATH"
+mv *.tar.gz "$_"
+popd
#!/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
+##############################################################################
+echo "---> scripts/opflex-build.sh"
+
# Build script for opflex
set -e
mkdir -p "$ROOT"
trap cleanup EXIT
-tar -xz -C "$ROOT" --strip-components=2 -f libuv.tgz
-tar -xz -C "$ROOT" --strip-components=2 -f rapidjson.tgz
-tar -xz -C "$ROOT" --strip-components=2 -f openvswitch.tgz
+# Download the artifacts from nexus thirdparty
+wget -nv ${NEXUS_URL}/service/local/repositories/thirdparty/content/openvswitch/openvswitch/${OPENVSWITCH_VERSION}/openvswitch-${OPENVSWITCH_VERSION}.tar.gz
+wget -nv ${NEXUS_URL}/service/local/repositories/thirdparty/content/rapidjson/rapidjson/${RAPIDJSON_VERSION}/rapidjson-${RAPIDJSON_VERSION}.tar.gz
+wget -nv ${NEXUS_URL}/service/local/repositories/thirdparty/content/libuv/libuv/${LIBUV_VERSION}/libuv-${LIBUV_VERSION}.tar.gz
+
+tar -xz -C "$ROOT" --strip-components=2 -f libuv-${LIBUV_VERSION}.tar.gz
+tar -xz -C "$ROOT" --strip-components=2 -f rapidjson-${RAPIDJSON_VERSION}.tar.gz
+tar -xz -C "$ROOT" --strip-components=2 -f openvswitch-${OPENVSWITCH_VERSION}.tar.gz
export PATH="$ROOT/bin:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ROOT/lib"
--- /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
+##############################################################################
+echo "---> scripts/rapidjson-build.sh"
+
+# Build script for rapidjson
+
+set -e
+set -x
+
+ROOT=/tmp/opflex-prefix
+DESTDIR=install-root
+
+mkdir -p "$DESTDIR/$ROOT/lib/pkgconfig"
+mkdir -p "$DESTDIR/$ROOT/include"
+
+cp -R include/rapidjson "$DESTDIR/$ROOT/include"
+sed -e "s|@INCLUDE_INSTALL_DIR@|$ROOT/include|" \
+ -e "s|@PROJECT_NAME@|RapidJSON|" \
+ -e "s|@LIB_VERSION_STRING@|1.0.2|" RapidJSON.pc.in > \
+ "$DESTDIR/$ROOT/lib/pkgconfig/RapidJSON.pc"
+
+pushd $DESTDIR
+tar -cvzf "rapidjson-$RAPIDJSON_VERSION.tar.gz" *
+# Move tarball to dir of files that will be uploaded to Nexus
+UPLOAD_FILES_PATH="$WORKSPACE/upload_files"
+mkdir -p "$UPLOAD_FILES_PATH"
+mv *.tar.gz "$_"
+popd
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
stream:
- oxygen:
branch: 'master'
- jdk: 'openjdk8'
+ os-branch: 'pike'
- nitrogen:
branch: 'stable/nitrogen'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
- carbon:
branch: 'stable/carbon'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
karaf-version: karaf3
- boron:
branch: 'stable/boron'
- jdk: 'openjdk8'
+ os-branch: 'ocata'
karaf-version: karaf3
+ jdk: 'openjdk8'
+
feature:
- genius:
csit-list: >
- genius-csit-1node-genius-only-{stream}
+ genius-csit-1node-genius-all-{stream}
- netvirt:
csit-list: >
- netvirt-csit-1node-openstack-ocata-gate-stateful-{stream}
+ netvirt-csit-1node-openstack-{os-branch}-gate-stateful-{stream}
- l2gw:
csit-list: >
- netvirt-csit-hwvtep-1node-openstack-newton-gate-transparent-{stream}
+ netvirt-csit-hwvtep-1node-openstack-{os-branch}-gate-stateful-{stream}
- core:
csit-list: >
- ovsdb-csit-1node-gate-southbound-only-{stream},
ovsdb-csit-1node-gate-southbound-all-{stream},
ovsdb-csit-3node-gate-clustering-only-{stream}
build-timeout: '{build-timeout}'
triggers:
- - timed: 'H H * * 6'
+ - timed: '{schedule-saturday}'
- gerrit-trigger-patch-sonar:
server-name: '{server-name}'
name: 'ovsdb'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
# Timeout in minutes
build-timeout: 360
build-node: centos7-java-builder-2c-8g
+ schedule: ''
+ schedule-saturday: 'H H * * 6'
+ schedule-weekly: 'H 23 * * 6'
+ schedule-high-frequency: 'H H/4 * * *'
email-recipients: 'jenkins@lists.opendaylight.org'
odl-ml2-driver-repo: 'https://github.com/openstack/networking-odl'
lftools-version: <1.0.0
# defaults for parameters installing openstack for csit jobs
+ devstack-hash: ''
create-initial-networks: 'False'
disable-odl-l3-service-plugin: 'no'
- disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
+ disable-openstack-services: ''
enable-networking-l2gw: 'no'
enable-openstack-plugins: 'networking-odl'
- enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
+ enable-openstack-services: ''
+ enable-openstack-compute-services: ''
ipsec-vxlan-tunnels-enabled: 'no'
lbaas-service-provider: ''
num-openstack-sites: 1
build-timeout: 75
- devstack-pre-pip-ocata:
build-timeout: 60
+ - devstack-pre-pip-pike:
+ build-timeout: 75
- docker
- gbp
- java-builder:
templates: mininet
- platforms: centos
templates: mininet-ovs-2.5
+ - platforms: centos
+ templates: mininet-ovs-2.6
- platforms: ubuntu-14.04
templates: java-builder
- platforms: ubuntu-14.04
templates: devstack-pre-pip-newton
- platforms: ubuntu-14.04
templates: devstack-pre-pip-ocata
+ - platforms: ubuntu-14.04
+ templates: devstack-pre-pip-pike
- platforms: ubuntu-14.04
templates: devstack
- platforms: ubuntu-14.04
build-timeout: '{build-timeout}'
triggers:
- - timed: 'H H * * 6'
+ - timed: '{schedule-saturday}'
builders:
- provide-maven-settings:
build-timeout: '{build-timeout}'
triggers:
- - timed: 'H H * * 6'
+ - timed: '{schedule-saturday}'
- gerrit-trigger-patch-sonar:
server-name: '{server-name}'
name: '{project}'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
install-features: 'odl-restconf,odl-sxp-controller,odl-sxp-route'
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
karaf-version: karaf3
install:
- - only:
- scope: 'only'
- all:
scope: 'all'
odl-ml2-branch: 'stable/newton'
openstack_system_image: 'CentOS 7 - devstack-newton - 20170808-0528'
- schedule: ''
-
odl-enable-l3: 'no'
public-bridge: 'br-ex'
branch: 'master'
jdk: 'openjdk8'
csit-list: >
- vtn-csit-1node-manager-only-{stream},
- vtn-csit-3node-manager-only-{stream}
+ vtn-csit-1node-manager-all-{stream},
+ vtn-csit-3node-manager-all-{stream}
- nitrogen:
branch: 'stable/nitrogen'
jdk: 'openjdk8'
csit-list: >
- vtn-csit-1node-manager-only-{stream},
- vtn-csit-3node-manager-only-{stream}
+ vtn-csit-1node-manager-all-{stream},
+ vtn-csit-3node-manager-all-{stream}
- carbon:
branch: 'stable/carbon'
jdk: 'openjdk8'
karaf-version: karaf3
csit-list: >
- vtn-csit-1node-manager-only-{stream},
- vtn-csit-3node-manager-only-{stream}
+ vtn-csit-1node-manager-all-{stream},
+ vtn-csit-3node-manager-all-{stream}
- boron:
branch: 'stable/boron'
jdk: 'openjdk8'
karaf-version: karaf3
csit-list: >
- vtn-csit-1node-manager-only-{stream},
- vtn-csit-3node-manager-only-{stream}
+ vtn-csit-1node-manager-all-{stream},
+ vtn-csit-3node-manager-all-{stream}
projs="requirements keystone glance cinder neutron nova horizon"
# shellcheck disable=SC2154
branch=${os_branch}
+# strip the "stable" off of the branch
+branch_name=$(cut -d'/' -f2 <<< ${branch})
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install -c requirements/upper-constraints.txt -r ${proj}/test-requirements.txt
done
-# the ocata release has ovs 2.6.1
-echo '---> Installing openvswitch from openstack Ocata repo (2.6.1)'
-yum install -y http://rdoproject.org/repos/openstack-ocata/rdo-release-ocata.rpm
+echo '---> Installing openvswitch from relevant openstack branch'
+yum install -y centos-release-openstack-${branch_name}
yum install -y --nogpgcheck openvswitch
--- /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,
+ "private_base_image": null,
+ "private_network": null,
+ "private_cloud_user": null,
+ "private_auth_url": null,
+ "private_tenant": null,
+ "private_user": null,
+ "private_pass": null,
+ "distro": null,
+ "cloud_user_data": null
+ },
+ "builders": [
+ {
+ "type": "openstack",
+ "name": "public_cloud",
+ "identity_endpoint": "{{user `public_auth_url`}}",
+ "tenant_name": "{{user `public_tenant`}}",
+ "username": "{{user `public_user`}}",
+ "password": "{{user `public_pass`}}",
+ "region": "DFW",
+ "ssh_username": "{{user `public_cloud_user`}}",
+ "image_name": "{{user `distro`}} - devstack-pike - {{isotime \"20060102-1504\"}}",
+ "source_image": "{{user `public_base_image`}}",
+ "flavor": "general1-1",
+ "networks": [
+ "{{user `public_network`}}"
+ ],
+ "user_data_file": "{{user `cloud_user_data`}}"
+ },
+ {
+ "type": "openstack",
+ "name": "private_cloud",
+ "identity_endpoint": "{{user `private_auth_url`}}",
+ "tenant_name": "{{user `private_tenant`}}",
+ "username": "{{user `private_user`}}",
+ "password": "{{user `private_pass`}}",
+ "ssh_username": "{{user `private_cloud_user`}}",
+ "image_name": "{{user `distro`}} - devstack-pike - {{isotime \"20060102-1504\"}}",
+ "source_image_name": "{{user `private_base_image`}}",
+ "flavor": "general1-1",
+ "networks": [
+ "{{user `private_network`}}"
+ ],
+ "user_data_file": "{{user `cloud_user_data`}}"
+ }
+ ],
+ "provisioners": [
+ {
+ "type": "shell",
+ "environment_vars": [
+ "os_branch=stable/pike",
+ "rdo_branch=pike"
+ ],
+ "scripts": [
+ "provision/baseline.sh",
+ "provision/devstack-pre-pip.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"
+ }
+ ]
+}