Merge "Update labels and template names to docs"
authorAnil Belur <abelur@linuxfoundation.org>
Fri, 3 Feb 2017 01:23:35 +0000 (01:23 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Fri, 3 Feb 2017 01:23:35 +0000 (01:23 +0000)
24 files changed:
docs/cloud-images.rst
jenkins.ini.example
jjb/autorelease/autorelease-projects.yaml
jjb/autorelease/autorelease-templates.yaml
jjb/bgpcep/bgpcep-pcepy.yaml
jjb/coe/coe.yaml [new file with mode: 0644]
jjb/controller/controller.yaml
jjb/federation/federation.yaml [new file with mode: 0644]
jjb/integration/distribution-jobs.yaml [moved from jjb/integration/integration-distribution-jobs.yaml with 97% similarity]
jjb/integration/include-raw-integration-deploy-openstack-run-test.sh
jjb/integration/integration-macros.yaml
jjb/integration/integration-templates.yaml
jjb/netvirt/netvirt-csit-multi-openstack.yaml
jjb/netvirt/netvirt-vpnservices-csit-hwvtep-openstack.yaml [new file with mode: 0644]
jjb/netvirt/netvirt.yaml
jjb/opendaylight-infra-cleanup-stale-stacks.sh
jjb/opendaylight-infra-stack.sh
jjb/packaging/packaging.yaml
jjb/releng-defaults.yaml
jjb/releng-jobs.yaml
jjb/releng-macros.yaml
jjb/spectrometer/spectrometer-jobs.yaml
jjb/vtn/vtn-csit-manager.yaml
openstack-hot/csit-3-instance-type.yaml [new file with mode: 0644]

index b74250d029c14176d2976b94da7fe85160df1354..88a033540f39c90c714b72d2ab832bd9ab0a6690 100644 (file)
@@ -2,7 +2,7 @@ Following are the list of published images recommened to be used with Jenkins jo
 
 * CentOS 7 - java-builder - 20170120-1817
 * Ubuntu 14.04 - gbp - 20170117-0042
-* Ubuntu 14.04 - mininet - 20170117-0003
+* Ubuntu 14.04 - mininet - 20170130-0425
 * Ubuntu 14.04 - mininet-ovs-23 - 20170130-0415
 * Ubuntu 14.04 - mininet-ovs-25 - 20170130-0414
 * CentOS 7 - devstack - 20170120-1710
index 6c3e115a8bdb3bdca269a043a2bcbd3452d15152..cd082ff97b45a3ded9a9df16ec5b73027d75464b 100644 (file)
@@ -5,8 +5,7 @@ include_path=.:scripts:~/git/
 recursive=True
 
 [jenkins]
-#user=jenkins
-#password=1234567890abcdef1234567890abcdef
-url=http://localhost:8080
+user=#odl_username#
+password=#api_token#
+url=https://jenkins.opendaylight.org/sandbox
 query_plugins_info=False
-
index 98642a76e289345f1a3f1234bda67aa61f56f8b3..d9ad7db79a4f46241793726117c2d56af9bf2da1 100644 (file)
     project: 'releng/autorelease'
     archive-artifacts: '**/*.prop **/*.log **/patches/*.bundle **/patches/*.patch all-bundles.tar.gz'
 
-    publishers:
-      - archive:
-          artifacts: 'dependecies.log'
-
 ###
 # TODO: Remove this job once guava21 testing is complete
 ###
index bd290cf0b541fe13ba434056b2f368a077a112d6..aa1e8aa847b3e72147cf3a0462b1cb660c129253 100644 (file)
@@ -93,6 +93,8 @@
             cp *.log *.prop $_
 
     publishers:
+        - archive:
+            artifacts: 'dependencies.log'
         - email-notification:
             email-recipients: '{email-recipients}'
             email-prefix: '[autorelease]'
index 3114166ad5bff9ad9f33a0c45165999749afa1dd..deffea6e092dea85ccf3f12dd4aba59a5c931e9e 100644 (file)
@@ -4,8 +4,7 @@
         - '{project-name}-verify-python-{stream}'
 
     stream:
-        - carbon:
-            branch: 'master'
+        # Pcepy was removed in Carbon.
         - boron:
             branch: 'stable/boron'
         - beryllium:
diff --git a/jjb/coe/coe.yaml b/jjb/coe/coe.yaml
new file mode 100644 (file)
index 0000000..3fc36fd
--- /dev/null
@@ -0,0 +1,36 @@
+- project:
+    name: coe-carbon
+    jobs:
+        - '{project-name}-clm-{stream}'
+        - '{project-name}-integration-{stream}'
+        - '{project-name}-merge-{stream}'
+        - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+    project: 'coe'
+    project-name: 'coe'
+    stream: carbon
+    branch: 'master'
+    jdk: openjdk8
+    jdks:
+        - openjdk8
+    maven:
+        - mvn33:
+            mvn-version: 'mvn33'
+    mvn-settings: 'coe-settings'
+    mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+    dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+    email-upstream: '[coe] [odlparent] [yangtools] [controller]'
+    archive-artifacts: ''
+
+- project:
+    name: coe-sonar
+    jobs:
+        - '{project-name}-sonar'
+
+    project: 'coe'
+    project-name: 'coe'
+    branch: 'master'
+    mvn-settings: 'coe-settings'
+    mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
\ No newline at end of file
index f9debfbb76fb86fe9717229c972f345d95c0508e..a18d7d4794023e5a389804dca76f11a9a9f8928c 100644 (file)
@@ -24,6 +24,8 @@
     dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},aaa-merge-{stream}'
     email-upstream: '[controller] [odlparent] [yangtools] [aaa]'
     archive-artifacts: ''
+    # Temporary workaround for SFT failure with karaf4-features
+    build-node: centos7-java-builder-4c-16g
 
 - project:
     name: controller-boron
diff --git a/jjb/federation/federation.yaml b/jjb/federation/federation.yaml
new file mode 100644 (file)
index 0000000..dc85076
--- /dev/null
@@ -0,0 +1,36 @@
+- project:
+    name: federation-carbon
+    jobs:
+        - '{project-name}-clm-{stream}'
+        - '{project-name}-integration-{stream}'
+        - '{project-name}-merge-{stream}'
+        - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+    project: 'federation'
+    project-name: 'federation'
+    stream: carbon
+    branch: 'master'
+    jdk: openjdk8
+    jdks:
+        - openjdk8
+    maven:
+        - mvn33:
+            mvn-version: 'mvn33'
+    mvn-settings: 'federation-settings'
+    mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+    dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+    email-upstream: '[federation] [odlparent] [yangtools] [controller]'
+    archive-artifacts: ''
+
+- project:
+    name: federation-sonar
+    jobs:
+        - '{project-name}-sonar'
+
+    project: 'federation'
+    project-name: 'federation'
+    branch: 'master'
+    mvn-settings: 'federation-settings'
+    mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
similarity index 97%
rename from jjb/integration/integration-distribution-jobs.yaml
rename to jjb/integration/distribution-jobs.yaml
index 2641914ab823f592924e767fb446a31fd3089407..da71d2d61f53ab269398e2b66a7cc6facd8cbdee 100644 (file)
@@ -1,6 +1,6 @@
 
 - project:
-    name: integration-distribution
+    name: distribution-jobs
     jobs:
         - '{project-name}-verify-python-{stream}'
         - 'distribution-verify-{stream}'
@@ -9,7 +9,7 @@
         - 'distribution-offline-{stream}'
 
     project: integration/distribution
-    project-name: integration-distribution
+    project-name: distribution
 
     stream:
         - carbon:
@@ -83,7 +83,7 @@
 
     postbuilders:
         - trigger-builds:
-            - project: 'integration-distribution-deploy-{stream}'
+            - project: 'distribution-deploy-{stream}'
               block: true
               predefined-parameters:
                   BUNDLEURL=$BUNDLEURL
             email-recipients: '{email-recipients}'
             email-prefix: '[int/dist]'
 
-# Template: integration-distribution-deploy-{stream}
+# Template: distribution-deploy-{stream}
 # Goal: Verify distribution starts with no issues when all features are loaded
 # Operation: This job deploys the controller installing odl-integration-all
 
         - opendaylight-infra-shiplogs:
             maven-version: 'mvn33'
 
-# Template: integration-distribution-offline-{stream}
+# Template: distribution-offline-{stream}
 # Goal: Verify distribution can start with no internet connection
 # Operation: This job deploys the controller removing any external repository definition
 
index 8d6b726774646f9e2f87eb7268272078c87585cf..7f29520f88cb45549f3b8f1dc195fe6c8516a47e 100644 (file)
@@ -620,6 +620,8 @@ pybot -N ${TESTPLAN} --removekeywords wuks -c critical -e exclude -v BUNDLEFOLDE
 -v BUNDLE_URL:${ACTUALBUNDLEURL} -v NEXUSURL_PREFIX:${NEXUSURL_PREFIX} -v JDKVERSION:${JDKVERSION} -v ODL_STREAM:${DISTROSTREAM} \
 -v ODL_SYSTEM_IP:${ODL_SYSTEM_IP} -v ODL_SYSTEM_1_IP:${ODL_SYSTEM_1_IP} -v ODL_SYSTEM_2_IP:${ODL_SYSTEM_2_IP} \
 -v ODL_SYSTEM_3_IP:${ODL_SYSTEM_3_IP} -v NUM_ODL_SYSTEM:${NUM_ODL_SYSTEM} -v CONTROLLER_USER:${USER} -v OS_USER:${USER} \
+-v TOOLS_SYSTEM_IP:${TOOLS_SYSTEM_1_IP} -v TOOLS_SYSTEM_1_IP:${TOOLS_SYSTEM_1_IP} \
+-v TOOLS_SYSTEM_2_IP:${TOOLS_SYSTEM_2_IP} -v NUM_TOOLS_SYSTEM:${NUM_TOOLS_SYSTEM} \
 -v NUM_OS_SYSTEM:${NUM_OPENSTACK_SYSTEM} -v OS_CONTROL_NODE_IP:${OPENSTACK_CONTROL_NODE_IP} \
 -v OS_COMPUTE_1_IP:${OPENSTACK_COMPUTE_NODE_1_IP} -v OS_COMPUTE_2_IP:${OPENSTACK_COMPUTE_NODE_2_IP} \
 -v HA_PROXY_IP:${HA_PROXY_IP} \
index 0dfdb2943861bfa0ebf8a5ddbd5bbd01baee89df..a0e480942467e85bc8e2973eabfb5705fc473830 100644 (file)
         - opendaylight-infra-stack:
             stack-template: '{stack-template}'
 
+# Macro: integration-infra-stack-3-type
+# Operation: Sets environment and then calls opendaylight-infra-stack to spin
+#            up csit lab using openstack-heat.
+# Used by: {project}-csit-* job templates
+
+- builder:
+    name: integration-infra-stack-3-type
+    builders:
+        - integration-cleanup-workspace
+        - shell: |
+            #!/bin/bash
+            # Setup openstack envirnoment file for use by
+            # the opendaylight-infra-stack macro
+            cat > $WORKSPACE/opendaylight-infra-environment.yaml << EOF
+            parameters:
+                vm_0_count: {vm_0_count}
+                vm_0_flavor: {vm_0_flavor}
+                vm_0_image: {vm_0_image}
+                vm_1_count: {vm_1_count}
+                vm_1_flavor: {vm_1_flavor}
+                vm_1_image: {vm_1_image}
+                vm_2_count: {vm_2_count}
+                vm_2_flavor: {vm_2_flavor}
+                vm_2_image: {vm_2_image}
+            EOF
+            echo "Contents of opendaylight-infra-environment.yaml ..."
+            cat $WORKSPACE/opendaylight-infra-environment.yaml
+        - opendaylight-infra-stack:
+            stack-template: 'csit-3-instance-type.yaml'
+
 # Macro: integration-get-slave-addresses
 # Operation: this macro gets the IP addresses of the dynamic vms
 # Used by: {project}-csit-* job templates
 
 # Macro: integration-deploy-controller-verify
 # Operation: this macro deploys the controller with all fetures
-# Used by: integration-distribution-deploy-{stream} job template
+# Used by: distribution-deploy-{stream} job template
 
 - builder:
     name: integration-deploy-controller-verify
 
 # Macro: integration-get-bundle-url-root
 # Operation: this macro gets the job generated distribution URL from root pom.xml
-# Used by: integration-distribution-verify-{stream} job template
+# Used by: distribution-verify-{stream} job template
 
 - builder:
     name: integration-get-bundle-url-root
index ee63c6bca98b3e1abd347ccc292a0ca0c752d782..2583ab6a9bd35511413fef51b1de1ee671e8c60d 100644 (file)
         - opendaylight-infra-shiplogs:
             maven-version: 'mvn33'
 
+- job-template:
+    name: '{project}-csit-hwvtep-{topology}-openstack-{openstack}-{functionality}-{stream}'
+    disabled: false
+
+    project-type: freestyle
+    node: centos7-robot-2c-2g
+    concurrent: true
+
+    properties:
+        - opendaylight-infra-properties:
+            build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+        - opendaylight-infra-parameters:
+            project: 'integration/test'
+            branch: '{branch}'
+            refspec: 'refs/heads/{branch}'
+            artifacts: '{archive-artifacts}'
+        - integration-branch:
+            branch: '{branch}'
+        - integration-distribution-stream:
+            stream: '{stream}'
+        - integration-bundleurl:
+            bundleurl: '{bundleurl}'
+        - integration-controller-features:
+            controller-features: '{install-features}'
+        - integration-test-options:
+            test-options: '{robot-options}'
+        - integration-test-plan:
+            test-plan: '{testplan}'
+        - integration-patch-refspec:
+            branch: 'master'
+        - integration-jdk-version:
+            jdkversion: '{jre}'
+        - string:
+            name: OPENSTACK_BRANCH
+            default: '{openstack-branch}'
+            description: 'Openstack version to use with devstack'
+        - string:
+            name: ODL_ML2_DRIVER_REPO
+            default: '{odl-ml2-driver-repo}'
+            description: 'URL to fetch networking-odl driver'
+        - string:
+            name: ODL_ML2_BRANCH
+            default: '{odl-ml2-branch}'
+            description: 'Version of networking-odl to checkout from the repo'
+        - string:
+            name: ODL_ML2_DRIVER_VERSION
+            default: '{odl-ml2-driver-version}'
+            description: 'Mode of networking-odl (v1 or v2)'
+        - string:
+            name: ODL_ENABLE_L3_FWD
+            default: '{odl-enable-l3}'
+            description: 'Enable L3 FWD in ODL for createing br-ex'
+        - string:
+            name: PUBLIC_BRIDGE
+            default: '{public-bridge}'
+            description: 'Specifies public bridge for provider and external networking'
+        - string:
+            name: ENABLE_HAPROXY_FOR_NEUTRON
+            default: '{enable-haproxy}'
+            description: 'Enable HAProxy for using neutron interface as HA'
+        - string:
+            name: ENABLE_OS_SERVICES
+            default: '{enable-openstack-services}'
+            description: 'comma seperated list of services to enable'
+        - string:
+            name: DISABLE_OS_SERVICES
+            default: '{disable-openstack-services}'
+            description: 'comma seperated list of services to enable'
+        - string:
+            name: TENANT_NETWORK_TYPE
+            default: '{tenant-network-type}'
+            description: 'Tenant Network Type supported by the implementation'
+        - string:
+            name: SECURITY_GROUP_MODE
+            default: '{security-group-mode}'
+            description: 'Security Group Mode to be used in netvirt aclservice config'
+    scm:
+        - integration-gerrit-scm:
+            basedir: 'test'
+            refspec: '$PATCHREFSPEC'
+            branch: 'master'
+
+    wrappers:
+        - opendaylight-infra-wrappers:
+            build-timeout: '{build-timeout}'
+
+    triggers:
+        - timed: '{schedule}'
+
+    builders:
+        - integration-infra-stack-3-type:
+            vm_0_count: '{odl_system_count}'
+            vm_0_flavor: '{odl_system_flavor}'
+            vm_0_image: '{odl_system_image}'
+            vm_1_count: '{openstack_system_count}'
+            vm_1_flavor: '{openstack_system_flavor}'
+            vm_1_image: '{openstack_system_image}'
+            vm_2_count: '{tools_system_count}'
+            vm_2_flavor: '{tools_system_flavor}'
+            vm_2_image: '{tools_system_image}'
+        - integration-install-robotframework
+        - inject:
+            properties-file: 'env.properties'
+        - integration-get-slave-addresses
+        - inject:
+            properties-file: 'slave_addresses.txt'
+        - integration-get-bundle-vars
+        - inject:
+            properties-file: 'bundle_vars.txt'
+        - integration-deploy-controller-run-test
+        - integration-deploy-openstack-run-test
+        - integration-cleanup-tmp
+
+    publishers:
+        - integration-robot-tempest:
+            unstable-if: 0.0
+            pass-if: 100.0
+        - email-notification:
+            email-recipients: '{email-recipients}'
+            email-prefix: '[{project}]'
+        - integration-csit-archive-build
+        - opendaylight-infra-shiplogs:
+            maven-version: 'mvn33'
+
 - job-template:
     name: '{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}'
     disabled: false
index 2ec9371d4fa8f53e8386f4e9d27cdd1e44435ea1..e8d66d20f6778efe2ca4860f3851954016dae797 100644 (file)
             schedule: 'H H/4 * * *'
             sg-mode: 'transparent'
         - upstream-stateful:
-            schedule: ''
+            schedule: 'H H * * *'
             sg-mode: 'stateful'
         - upstream-learn:
-            schedule: ''
+            schedule: 'H H * * *'
             sg-mode: 'learn'
         - gate-learn:
             schedule: ''
diff --git a/jjb/netvirt/netvirt-vpnservices-csit-hwvtep-openstack.yaml b/jjb/netvirt/netvirt-vpnservices-csit-hwvtep-openstack.yaml
new file mode 100644 (file)
index 0000000..2700bdc
--- /dev/null
@@ -0,0 +1,91 @@
+- project:
+    name: netvirt-vpnservices-csit-hwvtep-openstack-integration
+    jobs:
+        - '{project}-csit-hwvtep-{topology}-openstack-{openstack}-{functionality}-{stream}'
+
+    project: 'netvirt-vpnservices'
+
+    topology:
+        - 1node:
+            openstack_system_count: 3
+            odl_system_count: 1
+            enable-haproxy: 'no'
+            install-features: 'odl-netvirt-openstack'
+        - 3node:
+            openstack_system_count: 4
+            odl_system_count: 3
+            enable-haproxy: 'yes'
+            install-features: 'odl-jolokia,odl-netvirt-openstack'
+
+    testplan: '{project}-{topology}-openstack.txt'
+
+    functionality:
+        - upstream-transparent:
+            schedule: 'H H * * *'
+            sg-mode: 'transparent'
+        - upstream-stateful:
+            schedule: 'H H * * *'
+            sg-mode: 'stateful'
+        - upstream-learn:
+            schedule: 'H H * * *'
+            sg-mode: 'learn'
+        - gate-learn:
+            schedule: ''
+            sg-mode: 'learn'
+        - gate-transparent:
+            schedule: ''
+            sg-mode: 'transparent'
+        - gate-stateful:
+            schedule: ''
+            sg-mode: 'stateful'
+        - 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:
+        - carbon:
+            branch: 'master'
+            jre: 'openjdk8'
+        - boron:
+            branch: 'stable/boron'
+            jre: 'openjdk8'
+
+    openstack:
+        - mitaka:
+            openstack-branch: 'stable/mitaka'
+            odl-ml2-branch: 'stable/mitaka'
+            odl-ml2-driver-version: 'v1'
+            openstack_system_image: 'CentOS 7 - devstack - mitaka - 20170106-2237'
+        - newton:
+            openstack-branch: 'stable/newton'
+            odl-ml2-branch: 'stable/newton'
+            odl-ml2-driver-version: 'v1'
+            openstack_system_image: 'CentOS 7 - devstack - newton - 20170106-2237'
+        - newton-nodl-v2:
+            openstack-branch: 'stable/newton'
+            odl-ml2-branch: 'stable/newton'
+            odl-ml2-driver-version: 'v2'
+            openstack_system_image: 'CentOS 7 - devstack - newton - 20170106-2237'
+
+    tools_system_count: 2
+
+    tools_system_image: 'Ubuntu 14.04 - mininet-ovs-25 - 20170130-0414'
+
+    odl-enable-l3: 'yes'
+
+    public-bridge: 'br-physnet1'
+
+    enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
+
+    disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
+
+    tenant-network-type: 'vxlan'
+
+    security-group-mode: '{sg-mode}'
+
+    robot-options: ''
index 1b08b1017207054f7ef49221c98c45c7c2b6e7ff..2814724438f61ad6652dc6ea4073ca93c6667668 100644 (file)
@@ -21,8 +21,8 @@
     mvn-settings: 'netvirt-settings'
     mvn-goals: 'clean install'
     mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m'
-    dependencies: 'neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
-    email-upstream: '[netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
+    dependencies: 'genius-merge-{stream},neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
+    email-upstream: '[genius] [netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
     archive-artifacts: ''
 
 - project:
@@ -48,8 +48,8 @@
     mvn-settings: 'netvirt-settings'
     mvn-goals: 'clean install'
     mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m'
-    dependencies: 'neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
-    email-upstream: '[netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
+    dependencies: 'genius-merge-{stream},neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
+    email-upstream: '[genius] [netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
     archive-artifacts: ''
 
 - project:
     mvn-settings: 'netvirt-settings'
     mvn-goals: 'clean install'
     mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m'
-    dependencies: 'neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
-    email-upstream: '[netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
+    dependencies: 'genius-merge-{stream},neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
+    email-upstream: '[genius] [netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
     archive-artifacts: ''
index f44ac51079794a844d02635f17ade872e8ec106f..091e212bc87ae3624edea2b6bbc33f4597fd32d9 100644 (file)
@@ -5,12 +5,37 @@ pip install --upgrade pip
 pip install --upgrade python-openstackclient python-heatclient
 pip freeze
 
-DELETE_LIST=(`openstack --os-cloud rackspace stack list -f json | \
-              jq -r '.[] | \
-                     select((."Stack Status" == "CREATE_FAILED") or \
-                            (."Stack Status" == "DELETE_FAILED")) | \
-                     ."Stack Name"'`)
-for i in "${DELETE_LIST[@]}"; do
-    echo "Deleting stack $i"
-    openstack --os-cloud rackspace stack delete --yes $i
+#########################
+## FETCH ACTIVE BUILDS ##
+#########################
+# Make sure we fetch active builds on both the releng and sandbox silos
+ACTIVE_BUILDS=()
+for silo in releng sandbox; do
+    JENKINS_URL="https://jenkins.opendaylight.org/$silo//computer/api/json?tree=computer[executors[currentExecutable[url]],oneOffExecutors[currentExecutable[url]]]&xpath=//url&wrapper=builds"
+    wget --no-verbose -O $silo_builds.json $JENKINS_URL
+    sleep 1  # Need to sleep for 1 second otherwise next line causes script to stall
+    ACTIVE_BUILDS=(${ACTIVE_BUILDS[@]} ` \
+        jq -r '.computer[].executors[].currentExecutable.url' $silo_builds.json \
+        | grep -v null | awk -F'/' '{print $6 "-" $7}'`)
+done
+
+##########################
+## DELETE UNUSED STACKS ##
+##########################
+# Search for stacks taht are not in use by either releng or sandbox silos and
+# delete them.
+OS_STACKS=(`openstack --os-cloud rackspace stack list \
+            -f json -c "Stack Name" -c "Stack Status" \
+            --property "stack_status=CREATE_COMPLETE" \
+            --property "stack_status=DELETE_FAILED" \
+            --property "stack_status=CREATE_FAILED" \
+            | jq -r '.[] | ."Stack Name"'`)
+for stack in ${OS_STACKS[@]}; do
+    if [[ "${ACTIVE_BUILDS[@]}" =~ $stack ]]; then
+        # No need to delete stacks if there exists an active build for them
+        continue
+    else
+        echo "Deleting orphaned stack: $stack"
+        openstack --os-cloud rackspace stack delete --yes $stack
+    fi
 done
index 52d450a7162786651ec17d1b84fae711f495c21e..5b17b9b107b3dad9e115d02fc01ae7f7baba8a7b 100644 (file)
@@ -9,9 +9,25 @@ cd /builder/openstack-hot
 
 JOB_SUM=`echo $JOB_NAME | sum | awk '{{ print $1 }}'`
 VM_NAME="$JOB_SUM-$BUILD_NUMBER"
-openstack --os-cloud rackspace stack create --wait --timeout 15 -t {stack-template} -e $WORKSPACE/opendaylight-infra-environment.yaml --parameter "job_name=$VM_NAME" --parameter "silo=$SILO" $STACK_NAME
-OS_STATUS=`openstack --os-cloud rackspace stack show -f json -c stack_status $STACK_NAME | jq -r '.stack_status'`
-if [ "$OS_STATUS" != "CREATE_COMPLETE" ]; then
-    echo "Failed to initialize infrastructure. Quitting..."
-    exit 1
-fi
+
+# seq X refers to waiting for X minutes for OpenStack to return
+# a status that is not CREATE_IN_PROGRESS before giving up.
+OS_TIMEOUT=15  # Minutes to wait for OpenStack VM to come online
+openstack --os-cloud rackspace stack create --timeout $OS_TIMEOUT -t {stack-template} -e $WORKSPACE/opendaylight-infra-environment.yaml --parameter "job_name=$VM_NAME" --parameter "silo=$SILO" $STACK_NAME
+echo "Waiting for $OS_TIMEOUT minutes to create $STACK_NAME."
+for i in `seq $OS_TIMEOUT`; do
+    sleep 60
+    OS_STATUS=`openstack --os-cloud rackspace stack show -f json -c stack_status $STACK_NAME | jq -r '.stack_status'`
+    if [ "$OS_STATUS" == "CREATE_COMPLETE" ]; then
+        echo "Stack initialized on infrastructure successful."
+        break
+    elif [ "$OS_STATUS" == "CREATE_FAILED" ]; then
+        echo "ERROR: Failed to initialize infrastructure. Quitting..."
+        exit 1
+    elif [ "$OS_STATUS" == "CREATE_IN_PROGRESS" ]; then
+        echo "Waiting to initialize infrastructure."
+        continue
+    else
+        echo "Unexpected status: $OS_STATUS"
+    fi
+done
index eab6d659d8ab19ce9f86a66ce302c1c21b77ac33..92b803c70394e8b90e868e0f0b76d90e4f5e20dc 100644 (file)
@@ -4,11 +4,11 @@
 
     jobs:
         - '{project-name}-verify-python-{stream}'
-        - '{project-name}-build-rpm-{stream}'
-        - '{project-name}-build-rpm-snap-{stream}'
-        - '{project-name}-build-deb-{stream}'
-        - '{project-name}-test-rpm-{stream}'
-        - '{project-name}-test-puppet-{stream}'
+        - 'packaging-build-rpm-{stream}'
+        - 'packaging-build-rpm-snap-{stream}'
+        - 'packaging-build-deb-{stream}'
+        - 'packaging-test-rpm-{stream}'
+        - 'packaging-test-puppet-{stream}'
 
     project: 'integration/packaging'
 
@@ -17,7 +17,7 @@
             branch: 'master'
 
 - job-template:
-    name: '{project-name}-test-puppet-{stream}'
+    name: 'packaging-test-puppet-{stream}'
 
     node: centos7-docker-2c-4g
 
@@ -51,7 +51,7 @@
         - timed: '@daily'
 
 - job-template:
-    name: '{project-name}-build-rpm-{stream}'
+    name: 'packaging-build-rpm-{stream}'
 
     node: dynamic_verify
 
         artifacts: '**/*.rpm'
 
 - job-template:
-    name: '{project-name}-build-rpm-snap-{stream}'
+    name: 'packaging-build-rpm-snap-{stream}'
 
     node: dynamic_verify
 
          artifacts: '**/*.rpm'
 
 - job-template:
-    name: '{project-name}-test-rpm-{stream}'
+    name: 'packaging-test-rpm-{stream}'
 
     node: dynamic_verify
 
          artifacts: '**'
 
 - job-template:
-    name: '{project-name}-build-deb-{stream}'
+    name: 'packaging-build-deb-{stream}'
 
     node: ubuntu_mininet
 
index 4a3e9918f277f8e7cadef97e9efeb5ffc6128d2c..885a1d816701eae0d90708ae551d0199bbcffe9e 100644 (file)
@@ -34,7 +34,7 @@
     openstack_system_image: CentOS 7 - devstack - 20170120-1710
     tools_system_count: 1
     tools_system_flavor: 2 GB General Purpose v1
-    tools_system_image: Ubuntu 14.04 - mininet - 20170117-0003
+    tools_system_image: Ubuntu 14.04 - mininet - 20170130-0425
 
     # Default Robot framework options
     robot-options: ''
index 66932081ccc88e99a8472f61bccc6a36e81165c7..aad8b08f52b12dcbbe12ba22b7c51b3ddffa88a5 100644 (file)
             build-timeout: '{build-timeout}'
 
     triggers:
-        - timed: 'H H/6 * * *'
+        # Attempt to clear up stacks every 30 mins in case we have orphaned stacks
+        - timed: '0,30 * * * *'
 
     builders:
         - shell: !include-raw-escape: opendaylight-infra-cleanup-stale-stacks.sh
index ef6b63e45d471be20e23263b44f729f9da630238..37425b47fd2fe0c16b163f3e49fe8e7d0f5b1c31 100644 (file)
@@ -15,7 +15,7 @@
             description: 'Parameter to identify an ODL Gerrit project'
         - string:
             name: ARCHIVE_ARTIFACTS
-            default: '{artifacts} **/target/surefire-reports/*-output.txt'
+            default: '{artifacts} **/target/surefire-reports/*-output.txt **/hs_err_*.log'
             description: 'Space separated glob patterns for artifacts to archive into logs.opendaylight.org'
         - string:
             name: GERRIT_PROJECT
             body: |
                 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
 
-                Check console output at $BUILD_URL to view the results.
+                Please refer to the logs server URL for console logs when possible
+                and use the Jenkins Build URL as a last resort.
+
+                Console Logs URL:
+                https://logs.opendaylight.org/$SILO/$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER
+
+                Jenkins Build URL:
+                $BUILD_URL
             unstable: true
             fixed: true
             send-to:
         - postbuildscript:
             builders:
                 - shell: |
+                    #!/bin/bash
                     if [ -d "$WORKSPACE/.venv-openstack" ]; then
                         source $WORKSPACE/.venv-openstack/bin/activate
-                        openstack --os-cloud rackspace stack delete --yes $STACK_NAME
+                        OS_STATUS=`openstack --os-cloud rackspace stack show -f json -c stack_status $STACK_NAME | jq -r '.stack_status'`
+                        if [ "$OS_STATUS" != "CREATE_IN_PROGRESS" ] && [ "$OS_STATUS" != "DELETE_IN_PROGRESS" ]; then
+                            openstack --os-cloud rackspace stack delete --yes $STACK_NAME
+                        fi
                     fi
                 - shell: !include-raw: include-raw-deploy-archives.sh
                 - maven-target:
index ae66accb78f1ac0d5de2d9d55b3dd7fba463840c..17952afcac89ebb31143041970eafa20f97c1262 100644 (file)
@@ -15,7 +15,7 @@
     rtdproject: 'opendaylight-spectrometer'
     toxdir: server
     nodedir: web
-    nodever: 4.4.6
+    nodever: 6.9.4
     staging-server: spectrometer03.dfw.opendaylight.org
 
 - job-template:
             echo "---> Setup Python"
             if [ -e venv-python34/bin/activate ]; then
                 echo "---> Updating Python dependencies"
+                source venv-python34/bin/activate
             else
                 echo "---> virtualenv not found. Setting up new virtualenv."
-                pyvenv venv-python34
+                pyvenv venv-python34 --without-pip
+                source venv-python34/bin/activate
+                wget https://bootstrap.pypa.io/get-pip.py
+                python get-pip.py
                 pip install -e spectrometer/server
             fi
-            source venv-python34/bin/activate
             pip install --upgrade -r spectrometer/server/requirements.txt
+            pip install --upgrade gunicorn gevent
             pip install --upgrade nodeenv
             pip freeze
 
@@ -75,7 +79,6 @@
                 nodeenv --node={nodever} --prebuilt venv-nodejs
             fi
             source venv-nodejs/bin/activate
-            npm install -g spectrometer/web
             node -v
             npm -v
 
@@ -89,6 +92,7 @@
             pkill node
             sleep 5  # Sleep 5 seconds for cooldown
             cd spectrometer/web
+            npm install
             nohup npm start >> ~/node.out &
 
             EOF
index 9cf1c3555444548622af2293565ad66a8a31387c..829aa69300fb06dd34ec797350b817f0b37ecb7c 100644 (file)
@@ -21,7 +21,7 @@
         - beryllium:
             branch: 'stable/beryllium'
             jre: 'openjdk7'
-            tools_system_image: Ubuntu 14.04 - mininet - 20170117-0003
+            tools_system_image: Ubuntu 14.04 - mininet - 20170130-0425
 
     install:
         - only:
diff --git a/openstack-hot/csit-3-instance-type.yaml b/openstack-hot/csit-3-instance-type.yaml
new file mode 100644 (file)
index 0000000..3aadcf9
--- /dev/null
@@ -0,0 +1,92 @@
+heat_template_version: 2016-04-08
+
+parameters:
+    job_name:
+        type: string
+        description: Name of job running this template
+    silo:
+        type: string
+        description: Jenkins Silo job is running in (typically releng|sandbox)
+    vm_0_count:
+        type: number
+        description: Number of VMs for 1st VM type
+    vm_0_flavor:
+        type: string
+        default: 1 GB General Purpose v1
+        description: Flavor to run instance on for 1st VM type
+    vm_0_image:
+        type: string
+        description: Image to run instance on for 1st VM type
+    vm_1_count:
+        type: number
+        description: Number of VMs for 2nd VM type
+    vm_1_flavor:
+        type: string
+        default: 1 GB General Purpose v1
+        description: Flavor to run instance on for 2nd VM type
+    vm_1_image:
+        type: string
+        description: Image to run instance on for 2nd VM type
+    vm_2_count:
+        type: number
+        description: Number of VMs for 3rd VM type
+    vm_2_flavor:
+        type: string
+        default: 1 GB General Purpose v1
+        description: Flavor to run instance on for 3rd VM type
+    vm_2_image:
+        type: string
+
+resources:
+    vm_0_group:
+        type: "OS::Heat::ResourceGroup"
+        properties:
+            count: { get_param: vm_0_count }
+            resource_def:
+                type: generic-server.yaml
+                properties:
+                    job_name: { get_param: job_name }
+                    silo: { get_param: silo }
+                    ssh_key: { get_param: silo }
+                    index: "%index%"
+                    vm_flavor: { get_param: vm_0_flavor }
+                    vm_image: { get_param: vm_0_image }
+
+    vm_1_group:
+        type: "OS::Heat::ResourceGroup"
+        properties:
+            count: { get_param: vm_1_count }
+            resource_def:
+                type: generic-server.yaml
+                properties:
+                    job_name: { get_param: job_name }
+                    silo: { get_param: silo }
+                    ssh_key: { get_param: silo }
+                    index: "%index%"
+                    vm_flavor: { get_param: vm_1_flavor }
+                    vm_image: { get_param: vm_1_image }
+
+    vm_2_group:
+        type: "OS::Heat::ResourceGroup"
+        properties:
+            count: { get_param: vm_2_count }
+            resource_def:
+                type: generic-server.yaml
+                properties:
+                    job_name: { get_param: job_name }
+                    silo: { get_param: silo }
+                    ssh_key: { get_param: silo }
+                    index: "%index%"
+                    vm_flavor: { get_param: vm_2_flavor }
+                    vm_image: { get_param: vm_2_image }
+
+outputs:
+    vm_0_ips:
+        description: IP addresses of the 1st vm types
+        value: { get_attr: [vm_0_group, ip] }
+    vm_1_ips:
+        description: IP addresses of the 2nd vm types
+        value: { get_attr: [vm_1_group, ip] }
+    vm_2_ips:
+        description: IP addresses of the 3rd vm types
+        value: { get_attr: [vm_2_group, ip] }