summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jjb-sandbox/releng/releng-sandbox-jobs.yml1
-rwxr-xr-xjjb/3rd_party_ci/install-netvirt.sh24
-rw-r--r--jjb/3rd_party_ci/odl-netvirt.yml37
-rwxr-xr-xjjb/apex/apex-build.sh3
-rwxr-xr-xjjb/apex/apex-deploy.sh11
-rw-r--r--jjb/apex/apex-snapshot-create.sh93
-rw-r--r--jjb/apex/apex-snapshot-deploy.sh154
-rwxr-xr-xjjb/apex/apex-upload-artifact.sh12
-rw-r--r--jjb/apex/apex.yml113
-rw-r--r--jjb/armband/armband-ci-jobs.yml2
-rwxr-xr-xjjb/armband/armband-deploy.sh7
-rwxr-xr-xjjb/armband/armband-download-artifact.sh2
-rw-r--r--jjb/armband/armband-project-jobs.yml1
-rw-r--r--jjb/armband/armband-verify-jobs.yml10
-rwxr-xr-xjjb/armband/upload-artifacts.sh2
-rw-r--r--jjb/availability/availability.yml1
-rw-r--r--jjb/barometer/barometer.yml3
-rw-r--r--jjb/bottlenecks/bottlenecks-ci-jobs.yml1
-rw-r--r--jjb/bottlenecks/bottlenecks-project-jobs.yml3
-rw-r--r--jjb/compass4nfv/compass-ci-jobs.yml2
-rw-r--r--jjb/compass4nfv/compass-dovetail-jobs.yml209
-rw-r--r--jjb/compass4nfv/compass-project-jobs.yml2
-rw-r--r--jjb/compass4nfv/compass-verify-jobs.yml1
-rw-r--r--jjb/conductor/conductor.yml1
-rw-r--r--jjb/copper/copper.yml1
-rw-r--r--jjb/cperf/cperf-ci-jobs.yml1
-rw-r--r--jjb/daisy4nfv/daisy4nfv-merge-jobs.yml12
-rw-r--r--jjb/daisy4nfv/daisy4nfv-verify-jobs.yml10
-rw-r--r--jjb/doctor/doctor.yml17
-rw-r--r--jjb/domino/domino.yml1
-rw-r--r--jjb/dovetail/dovetail-artifacts-upload.yml1
-rw-r--r--jjb/dovetail/dovetail-ci-jobs.yml1
-rw-r--r--jjb/dovetail/dovetail-project-jobs.yml2
-rw-r--r--jjb/dovetail/dovetail-weekly-jobs.yml1
-rw-r--r--jjb/dpacc/dpacc.yml1
-rw-r--r--jjb/escalator/escalator.yml12
-rw-r--r--jjb/fuel/fuel-daily-jobs.yml130
-rwxr-xr-xjjb/fuel/fuel-deploy.sh4
-rwxr-xr-xjjb/fuel/fuel-download-artifact.sh2
-rw-r--r--jjb/fuel/fuel-project-jobs.yml4
-rwxr-xr-xjjb/fuel/fuel-upload-artifact.sh2
-rw-r--r--jjb/fuel/fuel-verify-jobs-experimental.yml10
-rw-r--r--jjb/fuel/fuel-verify-jobs.yml10
-rw-r--r--jjb/functest/functest-ci-jobs.yml1
-rw-r--r--jjb/functest/functest-exit.sh5
-rwxr-xr-xjjb/functest/functest-loop.sh6
-rw-r--r--jjb/functest/functest-project-jobs.yml1
-rwxr-xr-xjjb/functest/functest-suite.sh7
-rwxr-xr-xjjb/functest/set-functest-env.sh7
-rw-r--r--jjb/global/releng-macros.yml22
-rw-r--r--jjb/infra/bifrost-verify-jobs.yml6
-rw-r--r--jjb/ipv6/ipv6.yml1
-rw-r--r--jjb/joid/joid-daily-jobs.yml2
-rw-r--r--jjb/joid/joid-verify-jobs.yml8
-rw-r--r--jjb/kvmfornfv/kvmfornfv.yml9
-rw-r--r--jjb/moon/moon.yml1
-rwxr-xr-xjjb/multisite/fuel-deploy-for-multisite.sh13
-rw-r--r--jjb/multisite/multisite-daily-jobs.yml28
-rw-r--r--jjb/multisite/multisite-verify-jobs.yml1
-rw-r--r--jjb/netready/netready.yml2
-rw-r--r--jjb/octopus/octopus.yml1
-rw-r--r--jjb/onosfw/onosfw.yml3
-rw-r--r--jjb/opera/opera-daily-jobs.yml34
-rw-r--r--jjb/opera/opera-project-jobs.yml3
-rw-r--r--jjb/opera/opera-verify-jobs.yml1
-rw-r--r--jjb/opnfvdocs/opnfvdocs.yml8
-rw-r--r--jjb/ovsnfv/ovsnfv.yml3
-rw-r--r--jjb/parser/parser.yml1
-rw-r--r--jjb/pharos/pharos.yml1
-rw-r--r--jjb/prediction/prediction.yml1
-rw-r--r--jjb/promise/promise.yml1
-rw-r--r--jjb/qtip/qtip-ci-jobs.yml1
-rw-r--r--jjb/qtip/qtip-project-jobs.yml1
-rw-r--r--jjb/releng/artifact-cleanup.yml1
-rw-r--r--jjb/releng/opnfv-docker.sh9
-rw-r--r--jjb/releng/opnfv-docker.yml1
-rw-r--r--jjb/releng/opnfv-docs.yml2
-rw-r--r--jjb/releng/opnfv-lint.yml2
-rw-r--r--jjb/releng/releng-ci-jobs.yml3
-rw-r--r--jjb/releng/testapi-automate.yml133
-rw-r--r--jjb/releng/testapi-docker-deploy.sh81
-rw-r--r--jjb/securityaudit/opnfv-security-audit.yml1
-rw-r--r--jjb/storperf/storperf.yml5
-rw-r--r--jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml1
-rw-r--r--jjb/vswitchperf/vswitchperf.yml3
-rw-r--r--jjb/yardstick/yardstick-ci-jobs.yml1
-rwxr-xr-xjjb/yardstick/yardstick-daily.sh4
-rw-r--r--jjb/yardstick/yardstick-project-jobs.yml19
-rw-r--r--modules/opnfv/installer_adapters/InstallerHandler.py10
-rw-r--r--modules/opnfv/installer_adapters/apex/ApexAdapter.py146
-rw-r--r--modules/opnfv/installer_adapters/apex/example.py16
-rw-r--r--modules/opnfv/utils/SSHUtils.py22
-rwxr-xr-xprototypes/bifrost/scripts/destroy-env.sh35
-rwxr-xr-xprototypes/bifrost/scripts/test-bifrost-deployment.sh1
-rw-r--r--utils/push-test-logs.sh2
-rw-r--r--utils/test/testapi/htmlize/htmlize.py4
-rwxr-xr-xutils/test/vnfcatalogue/assets/Vnf_landing/assets/css/3rd_party/bootstrap.css1299
-rw-r--r--utils/test/vnfcatalogue/assets/Vnf_landing/assets/css/style.css252
-rw-r--r--utils/test/vnfcatalogue/assets/Vnf_landing/assets/images/3rd_party/commits.pngbin0 -> 1437 bytes
-rw-r--r--utils/test/vnfcatalogue/assets/Vnf_landing/assets/images/logo.pngbin0 -> 12138 bytes
-rw-r--r--utils/test/vnfcatalogue/assets/Vnf_landing/index.html145
-rw-r--r--utils/test/vnfcatalogue/helpers/README.md22
-rw-r--r--utils/test/vnfcatalogue/helpers/migrate.js78
-rw-r--r--utils/test/vnfcatalogue/helpers/schema.js51
104 files changed, 3106 insertions, 339 deletions
diff --git a/jjb-sandbox/releng/releng-sandbox-jobs.yml b/jjb-sandbox/releng/releng-sandbox-jobs.yml
index adefe363e..97fea8992 100644
--- a/jjb-sandbox/releng/releng-sandbox-jobs.yml
+++ b/jjb-sandbox/releng/releng-sandbox-jobs.yml
@@ -13,7 +13,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'master'
scm:
- git-scm-gerrit
diff --git a/jjb/3rd_party_ci/install-netvirt.sh b/jjb/3rd_party_ci/install-netvirt.sh
index f111d4847..c9aa4c501 100755
--- a/jjb/3rd_party_ci/install-netvirt.sh
+++ b/jjb/3rd_party_ci/install-netvirt.sh
@@ -2,14 +2,28 @@
set -e
if [ -z ${WORKSPACE} ]; then
- echo "WORKSPACE is unset. Please do so."
+ echo "WORKSPACE is unset. Please set."
exit 1
fi
# wipe the WORKSPACE
/bin/rm -rf $WORKSPACE/*
+set -o errexit
+set -o nounset
+set -o pipefail
+
+SNAP_CACHE=$HOME/snap_cache
# clone opnfv sdnvpn repo
git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git $WORKSPACE/sdnvpn
-. $WORKSPACE/sdnvpn/odl-pipeline/odl-pipeline-common.sh
-pushd $LIB
-./odl_reinstaller.sh --cloner-info $CLONER_INFO --odl-artifact $NETVIRT_ARTIFACT
-popd \ No newline at end of file
+
+if [ ! -f "$NETVIRT_ARTIFACT" ]; then
+ echo "ERROR: ${NETVIRT_ARTIFACT} specified as NetVirt Artifact, but file does not exist"
+ exit 1
+fi
+
+# TODO (trozet) snapshot should have already been unpacked into cache folder
+# but we really should check the cache here, and not use a single cache folder
+# for when we support multiple jobs on a single slave
+pushd sdnvpn/odl-pipeline/lib > /dev/null
+./odl_reinstaller.sh --pod-config ${SNAP_CACHE}/node.yaml \
+ --odl-artifact ${NETVIRT_ARTIFACT} --ssh-key-file ${SNAP_CACHE}/id_rsa
+popd > /dev/null
diff --git a/jjb/3rd_party_ci/odl-netvirt.yml b/jjb/3rd_party_ci/odl-netvirt.yml
index a57bf176e..6e25425ba 100644
--- a/jjb/3rd_party_ci/odl-netvirt.yml
+++ b/jjb/3rd_party_ci/odl-netvirt.yml
@@ -17,11 +17,11 @@
#####################################
phase:
- 'create-apex-vms':
- slave-label: 'ericsson-virtual5'
+ slave-label: 'odl-netvirt-virtual-intel'
- 'install-netvirt':
- slave-label: 'odl-netvirt-virtual'
+ slave-label: 'odl-netvirt-virtual-intel'
- 'postprocess':
- slave-label: 'odl-netvirt-virtual'
+ slave-label: 'odl-netvirt-virtual-intel'
#####################################
# jobs
#####################################
@@ -51,7 +51,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: NETVIRT_ARTIFACT
@@ -62,10 +61,10 @@
- gerrit:
server-name: 'git.opendaylight.org'
trigger-on:
- - comment-added-contains-event:
- comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : SUCCESS'
- - comment-added-contains-event:
- comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : UNSTABLE'
+ # - comment-added-contains-event:
+ # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : SUCCESS'
+ # - comment-added-contains-event:
+ # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : UNSTABLE'
- comment-added-contains-event:
comment-contains-value: 'opnfv-test'
projects:
@@ -86,7 +85,7 @@
- name: 'odl-netvirt-verify-virtual-create-apex-vms-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
@@ -104,7 +103,7 @@
- name: 'odl-netvirt-verify-virtual-install-netvirt-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
@@ -118,10 +117,10 @@
name: functest
condition: SUCCESSFUL
projects:
- - name: 'functest-netvirt-virtual-daily-{stream}'
+ - name: 'functest-netvirt-virtual-suite-{stream}'
predefined-parameters: |
- RC_FILE_PATH=/home/jenkins/cloner-info/overcloudrc
- DEPLOY_SCENARIO=os-odl_l2-bgpvpn-noha
+ DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
+ FUNCTEST_SUITE_NAME=healthcheck
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: false
@@ -132,7 +131,7 @@
- name: 'odl-netvirt-verify-virtual-postprocess-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
@@ -141,7 +140,7 @@
NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
node-parameters: true
kill-phase-on: FAILURE
- abort-all-job: true
+ abort-all-job: false
- job-template:
name: 'odl-netvirt-verify-virtual-{phase}-{stream}'
@@ -160,8 +159,9 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - 'odl-netvirt-verify-virtual-install-.*'
- - 'functest-netvirt-virtual-daily-.*'
+ - 'odl-netvirt-verify-virtual-create-apex-vms-.*'
+ - 'odl-netvirt-verify-virtual-install-netvirt-.*'
+ - 'functest-netvirt-virtual-suite-.*'
- 'odl-netvirt-verify-virtual-postprocess-.*'
block-level: 'NODE'
@@ -174,7 +174,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
@@ -194,7 +193,7 @@
name: 'netvirt-verify-create-apex-vms-builder'
builders:
- shell:
- !include-raw: ./create-apex-vms.sh
+ !include-raw: ../apex/apex-snapshot-deploy.sh
- builder:
name: 'netvirt-verify-install-netvirt-builder'
builders:
diff --git a/jjb/apex/apex-build.sh b/jjb/apex/apex-build.sh
index ee1dfb5d3..220d02435 100755
--- a/jjb/apex/apex-build.sh
+++ b/jjb/apex/apex-build.sh
@@ -12,6 +12,9 @@ echo
if echo $BUILD_TAG | grep "apex-verify" 1> /dev/null; then
export OPNFV_ARTIFACT_VERSION=dev${BUILD_NUMBER}
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
+elif echo $BUILD_TAG | grep "csit" 1> /dev/null; then
+ export OPNFV_ARTIFACT_VERSION=csit${BUILD_NUMBER}
+ export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
elif [ "$ARTIFACT_VERSION" == "daily" ]; then
export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d")
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --iso"
diff --git a/jjb/apex/apex-deploy.sh b/jjb/apex/apex-deploy.sh
index 8d5c4cb13..9535e7fb7 100755
--- a/jjb/apex/apex-deploy.sh
+++ b/jjb/apex/apex-deploy.sh
@@ -15,7 +15,7 @@ if ! rpm -q wget > /dev/null; then
sudo yum -y install wget
fi
-if [[ $BUILD_DIRECTORY == *verify* ]]; then
+if [[ "$BUILD_DIRECTORY" == *verify* || "$BUILD_DIRECTORY" == *csit* ]]; then
# Build is from a verify, use local build artifacts (not RPMs)
cd $WORKSPACE/../${BUILD_DIRECTORY}
WORKSPACE=$(pwd)
@@ -64,8 +64,8 @@ if [ -z "$DEPLOY_SCENARIO" ]; then
exit 1
fi
-# use local build for verify
-if [[ "$BUILD_DIRECTORY" == *verify* ]]; then
+# use local build for verify and csit promote
+if [[ "$BUILD_DIRECTORY" == *verify* || "$BUILD_DIRECTORY" == *csit* ]]; then
if [ ! -e "${WORKSPACE}/build/lib" ]; then
ln -s ${WORKSPACE}/lib ${WORKSPACE}/build/lib
fi
@@ -144,7 +144,7 @@ if [ "$OPNFV_CLEAN" == 'yes' ]; then
else
clean_opts=''
fi
- if [[ "$BUILD_DIRECTORY" == *verify* ]]; then
+ if [[ "$BUILD_DIRECTORY" == *verify* || "$BUILD_DIRECTORY" == *csit* ]]; then
sudo CONFIG=${CONFIG} LIB=${LIB} ./clean.sh ${clean_opts}
else
sudo CONFIG=${CONFIG} LIB=${LIB} opnfv-clean ${clean_opts}
@@ -172,6 +172,9 @@ if [[ "$JOB_NAME" == *virtual* ]]; then
NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings.yaml"
fi
DEPLOY_CMD="${DEPLOY_CMD} -v"
+ if [[ "$JOB_NAME" == *csit* ]]; then
+ DEPLOY_CMD="${DEPLOY_CMD} -e csit-environment.yaml --virtual-computes 2"
+ fi
else
# settings for bare metal deployment
if [ "$IPV6_FLAG" == "True" ]; then
diff --git a/jjb/apex/apex-snapshot-create.sh b/jjb/apex/apex-snapshot-create.sh
new file mode 100644
index 000000000..5725ac641
--- /dev/null
+++ b/jjb/apex/apex-snapshot-create.sh
@@ -0,0 +1,93 @@
+#!/usr/bin/env bash
+##############################################################################
+# Copyright (c) 2016 Tim Rozet (Red Hat) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+set -o errexit
+set -o nounset
+set -o pipefail
+
+SSH_OPTIONS=(-o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o LogLevel=error)
+
+echo "Creating Apex snapshot..."
+echo "-------------------------"
+echo
+
+# create tmp directory
+tmp_dir=$(pwd)/.tmp
+mkdir -p ${tmp_dir}
+
+# TODO(trozet) remove this after fix goes in for tripleo_inspector to copy these
+pushd ${tmp_dir} > /dev/null
+echo "Copying overcloudrc and ssh key from Undercloud..."
+# Store overcloudrc
+UNDERCLOUD=$(sudo virsh domifaddr undercloud | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')
+sudo scp ${SSH_OPTIONS[@]} stack@${UNDERCLOUD}:overcloudrc ./
+# Copy out ssh key of stack from undercloud
+sudo scp ${SSH_OPTIONS[@]} stack@${UNDERCLOUD}:.ssh/id_rsa ./
+popd > /dev/null
+
+echo "Gathering introspection information"
+git clone https://gerrit.opnfv.org/gerrit/sdnvpn.git
+pushd sdnvpn/odl-pipeline/lib > /dev/null
+./tripleo_introspector.sh --out-file ${tmp_dir}/node.yaml
+popd > /dev/null
+
+echo "Shutting down nodes"
+# Shut down nodes
+nodes=$(sudo virsh list | grep -Eo "baremetal[0-9]")
+for node in $nodes; do
+ sudo virsh shutdown ${node} --mode acpi
+done
+
+for node in $nodes; do
+ count=0
+ while [ "$count" -lt 10 ]; do
+ sleep 10
+ if sudo virsh list | grep ${node}; then
+ echo "Waiting for $node to shutdown, try $count"
+ else
+ break
+ fi
+ count=$((count+1))
+ done
+
+ if [ "$count" -ge 10 ]; then
+ echo "Node $node failed to shutdown"
+ exit 1
+ fi
+done
+
+echo "Gathering virsh definitions"
+# copy qcow2s, virsh definitions
+for node in $nodes; do
+ cp -f /var/lib/libvirt/images/${node}.qcow2 ./
+ sudo virsh dumpxml ${node} > ${node}.xml
+done
+
+# copy virsh net definitions
+for net in admin api external storage tenant; do
+ sudo virsh net-dumpxml ${net} > ${net}.xml
+done
+
+# tar up artifacts
+DATE=`date +%Y-%m-%d`
+tar czf ../apex-csit-snap-${DATE}.tar.gz .
+popd > /dev/null
+rm -rf ./.tmp
+echo "Snapshot saved as apex-csit-snap-${DATE}.tar.gz"
+
+# update opnfv properties file
+curl -O -L http://$GS_URL/snapshot.properties
+sed -i '/^OPNFV_SNAP_URL=/{h;s#=.*#='${GS_URL}'/apex-csit-snap-'${DATE}'.tar.gz#};${x;/^$/{s##OPNFV_SNAP_URL='${GS_URL}'/apex-csit-snap-'${DATE}'.tar.gz#;H};x}' snapshot.properties
+snap_sha=$(sha512sum apex-csit-snap-${DATE}.tar.gz | cut -d' ' -f1)
+sed -i '/^OPNFV_SNAP_SHA512SUM=/{h;s/=.*/='${snap_sha}'/};${x;/^$/{s//OPNFV_SNAP_SHA512SUM='${snap_sha}'/;H};x}' snapshot.properties
+echo "OPNFV_SNAP_URL=$GS_URL/apex-csit-snap-${DATE}.tar.gz"
+echo "OPNFV_SNAP_SHA512SUM=$(sha512sum apex-csit-snap-${DATE}.tar.gz | cut -d' ' -f1)"
+echo "Updated properties file: "
+cat snapshot.properties
diff --git a/jjb/apex/apex-snapshot-deploy.sh b/jjb/apex/apex-snapshot-deploy.sh
new file mode 100644
index 000000000..3bb65a0b3
--- /dev/null
+++ b/jjb/apex/apex-snapshot-deploy.sh
@@ -0,0 +1,154 @@
+#!/usr/bin/env bash
+##############################################################################
+# Copyright (c) 2016 Tim Rozet (Red Hat) and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+set -o errexit
+set -o nounset
+set -o pipefail
+
+SSH_OPTIONS=(-o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o LogLevel=error)
+SNAP_CACHE=$HOME/snap_cache
+
+
+echo "Deploying Apex snapshot..."
+echo "--------------------------"
+echo
+
+echo "Cleaning server"
+git clone https://gerrit.opnfv.org/gerrit/apex.git
+pushd apex/ci > /dev/null
+sudo CONFIG=../build/ LIB=../lib ./clean.sh
+popd > /dev/null
+
+echo "Downloading latest snapshot properties file"
+if ! wget -O $WORKSPACE/opnfv.properties http://$GS_URL/snapshot.properties; then
+ echo "ERROR: Unable to find snapshot.properties at ${GS_URL}...exiting"
+ exit 1
+fi
+
+# find latest check sum
+latest_snap_checksum=$(cat opnfv.properties | grep OPNFV_SNAP_SHA512SUM | awk -F "=" '{print $2}')
+if [ -z "$latest_snap_checksum" ]; then
+ echo "ERROR: checksum of latest snapshot from snapshot.properties is null!"
+ exit 1
+fi
+
+local_snap_checksum=""
+
+# check snap cache directory exists
+if [ -d "$SNAP_CACHE" ]; then
+ latest_snap=$(ls -Art | grep tar.gz | tail -n 1)
+ if [ -n "$latest_snap" ]; then
+ local_snap_checksum=$(sha512sum ${latest_snap} | cut -d' ' -f1)
+ fi
+else
+ mkdir -p ${SNAP_CACHE}
+fi
+
+# compare check sum and download latest snap if not up to date
+if [ "$local_snap_checksum" -ne "$latest_snap_checksum" ]; then
+ snap_url=$(cat opnfv.properties | grep OPNFV_SNAP_URL | awk -F "=" '{print $2}')
+ if [ -z "$snap_url" ]; then
+ echo "ERROR: Snap URL from snapshot.properties is null!"
+ exit 1
+ fi
+ echo "INFO: SHA mismatch, will download latest snapshot"
+ wget --directory-prefix=${SNAP_CACHE}/ ${snap_url}
+ snap_tar=$(basename ${snap_url})
+else
+ snap_tar=${latest_snap}
+fi
+
+echo "INFO: Snapshot to be used is ${snap_tar}"
+
+# create tmp directory and unpack snap
+mkdir -p ./tmp
+pushd ./tmp > /dev/null
+tar xvf ${snap_tar}
+
+# create each network
+virsh_networks=$(ls *.xml | grep -v baremetal)
+
+if [ -z "$virsh_networks" ]; then
+ echo "ERROR: no virsh networks found in snapshot unpack"
+ exit 1
+fi
+
+for network_def in ${virsh_networks}; do
+ sudo virsh net-create ${network_def}
+ network=$(echo ${network_def} | awk -F '.' '{print $1}')
+ if ! sudo virsh net-list | grep ${network}; then
+ sudo virsh net-start ${network}
+ fi
+ echo "Checking if OVS bridge is missing for network: ${network}"
+ if ! ovs-vsctl show | grep "br-${network}"; then
+ ovs-vsctl add-br br-${network}
+ echo "OVS Bridge created: br-${network}"
+ if [ "br-${network}" == 'br-admin' ]; then
+ echo "Configuring IP 192.0.2.99 on br-admin"
+ sudo ip addr add 192.0.2.99/24 dev br-admin
+ sudo ip link set up dev br-admin
+ elif [ "br-${network}" == 'br-external' ]; then
+ echo "Configuring IP 192.168.37.99 on br-external"
+ sudo ip addr add 192.168.37.99/24 dev br-external
+ sudo ip link set up dev br-external
+ fi
+ fi
+done
+
+echo "Virsh networks up: $(virsh net-list)"
+echo "Bringing up Overcloud VMs..."
+virsh_vm_defs=$(ls baremetal*.xml)
+
+if [ -z "$virsh_vm_defs" ]; then
+ echo "ERROR: no virsh VMs found in snapshot unpack"
+ exit 1
+fi
+
+for node_def in ${virsh_vm_defs}; do
+ sudo virsh define ${node_def}
+ node=$(echo ${node_def} | awk -F '.' '{print $1}')
+ sudo cp -f ${node}.qcow2 /var/lib/libvirt/images/
+ sudo virsh start ${node}
+ echo "Node: ${node} started"
+done
+
+echo "Checking overcloudrc"
+if ! stat overcloudrc; then
+ echo "ERROR: overcloudrc does not exist in snap unpack"
+ exit 1
+fi
+
+# copy overcloudrc for functest
+mkdir -p $HOME/cloner-info
+cp -f overcloudrc $HOME/cloner-info/
+
+admin_controller_ip=$(cat overcloudrc | grep -Eo "192.0.2.[0-9]+")
+netvirt_url="http://${admin_controller_ip}:8081/restconf/operational/network-topology:network-topology/topology/netvirt:1"
+
+source overcloudrc
+counter=1
+while [ "$counter" -le 10 ]; do
+ if curl --fail ${admin_controller_ip}:80; then
+ echo "Overcloud Horizon is up...Checking if OpenDaylight NetVirt is up..."
+ if curl --fail ${netvirt_url} > /dev/null; then
+ echo "OpenDaylight is up. Overcloud deployment complete"
+ exit 0
+ else
+ echo "OpenDaylight not yet up, try ${counter}"
+ fi
+ else
+ echo "Horizon/Apache not yet up, try ${counter}"
+ fi
+ counter=$((counter+1))
+ sleep 60
+done
+
+echo "ERROR: Deployment not up after 10 minutes...exiting."
+exit 1
diff --git a/jjb/apex/apex-upload-artifact.sh b/jjb/apex/apex-upload-artifact.sh
index 64f13f4e6..89fd5ed36 100755
--- a/jjb/apex/apex-upload-artifact.sh
+++ b/jjb/apex/apex-upload-artifact.sh
@@ -73,7 +73,17 @@ gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION
gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log
}
-if gpg2 --list-keys | grep "opnfv-helpdesk@rt.linuxfoundation.org"; then
+uploadsnap () {
+ # Uploads snapshot artifact and updated properties file
+ echo "Uploading snapshot artifacts"
+ gsutil cp $WORKSPACE/apex-csit-snap-`date +%Y-%m-%d`.tar.gz gs://$GS_URL/ > gsutil.iso.log
+ gsutil cp $WORKSPACE/snapshot.properties gs://$GS_URL/snapshot.properties > gsutil.latest.log
+ echo "Upload complete for Snapshot"
+}
+
+if grep csit $WORKSPACE; then
+ uploadsnap
+elif gpg2 --list-keys | grep "opnfv-helpdesk@rt.linuxfoundation.org"; then
echo "Signing Key avaliable"
signiso
uploadiso
diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml
index 9733c5921..512112e42 100644
--- a/jjb/apex/apex.yml
+++ b/jjb/apex/apex.yml
@@ -12,6 +12,7 @@
- 'apex-daily-colorado'
- 'apex-build-colorado'
- 'apex-deploy-baremetal-os-odl_l2-fdio-ha-colorado'
+ - 'apex-csit-promote-daily-{stream}'
# stream: branch with - in place of / (eg. stable-arno)
# branch: branch (eg. stable/arno)
@@ -37,11 +38,12 @@
- 'os-odl_l2-sfc-noha'
- 'os-odl_l3-nofeature-ha'
- 'os-odl-bgpvpn-ha'
- - 'os-odl-gluon-ha'
+ - 'os-odl-gluon-noha'
- 'os-odl_l3-fdio-noha'
- 'os-odl_l3-fdio-ha'
- 'os-odl_l3-fdio_dvr-noha'
- 'os-odl_l3-fdio_dvr-ha'
+ - 'os-odl_l3-csit-noha'
- 'os-onos-nofeature-ha'
platform:
@@ -61,7 +63,6 @@
gs-pathname: '{gs-pathname}'
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -116,7 +117,6 @@
gs-pathname: '{gs-pathname}'
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -220,7 +220,6 @@
gs-pathname: '{gs-pathname}'
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -237,6 +236,7 @@
blocking-jobs:
- 'apex-daily.*'
- 'apex-verify.*'
+ - 'apex-csit.*'
builders:
- trigger-builds:
@@ -278,7 +278,6 @@
gs-pathname: '{gs-pathname}'
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -332,10 +331,9 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
- - gerrit-parameter:
- branch: '{branch}'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -388,7 +386,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
@@ -435,7 +432,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
@@ -478,7 +474,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
@@ -493,6 +488,7 @@
- 'apex-deploy.*'
- 'apex-build.*'
- 'apex-runner.*'
+ - 'apex-csit.*'
triggers:
- 'apex-{stream}'
@@ -564,8 +560,36 @@
build-step-failure-threshold: 'never'
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
-
-
+ - trigger-builds:
+ - project: 'apex-deploy-baremetal-os-odl-bgpvpn-ha-{stream}'
+ predefined-parameters: |
+ BUILD_DIRECTORY=apex-build-{stream}/.build
+ OPNFV_CLEAN=yes
+ git-revision: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ block: true
+ - trigger-builds:
+ - project: 'functest-apex-{daily-slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl-bgpvpn-ha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'yardstick-apex-{slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl-bgpvpn-ha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
# Colorado Build
- job-template:
name: 'apex-build-colorado'
@@ -584,10 +608,9 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: 'stable/colorado'
- apex-parameter:
gs-pathname: '/colorado'
- - gerrit-parameter:
- branch: 'stable/colorado'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -632,7 +655,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'stable/colorado'
- apex-parameter:
gs-pathname: '/colorado'
@@ -675,7 +697,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'stable/colorado'
- apex-parameter:
gs-pathname: '/colorado'
@@ -722,6 +743,65 @@
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
+# CSIT promote
+- job-template:
+ name: 'apex-csit-promote-daily-{stream}'
+
+ # Job template for promoting CSIT Snapshots
+ #
+ # Required Variables:
+ # stream: branch with - in place of / (eg. stable)
+ # branch: branch (eg. stable)
+ node: '{daily-slave}'
+
+ disabled: false
+
+ scm:
+ - git-scm
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - apex-parameter:
+ gs-pathname: '{gs-pathname}'
+
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ blocking-jobs:
+ - 'apex-verify.*'
+ - 'apex-deploy.*'
+ - 'apex-build.*'
+ - 'apex-runner.*'
+ - 'apex-daily.*'
+
+ triggers:
+ - timed: '0 12 * * 0'
+
+ builders:
+ - 'apex-build'
+ - trigger-builds:
+ - project: 'apex-deploy-virtual-os-odl_l3-csit-noha-{stream}'
+ predefined-parameters: |
+ BUILD_DIRECTORY=apex-csit-promote-daily-{stream}
+ OPNFV_CLEAN=yes
+ git-revision: false
+ block: true
+ same-node: true
+ - trigger-builds:
+ - project: 'functest-apex-{daily-slave}-suite-{stream}'
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-odl_l3-nofeature-noha
+ FUNCTEST_SUITE_NAME=tempest_smoke_serial
+ block: true
+ same-node: true
+ - shell:
+ !include-raw-escape: ./apex-snapshot-create.sh
+ - shell:
+ !include-raw-escape: ./apex-upload-artifact.sh
+
- job-template:
name: 'apex-gs-clean-{stream}'
@@ -736,6 +816,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml
index 599a55ea5..4cb58d916 100644
--- a/jjb/armband/armband-ci-jobs.yml
+++ b/jjb/armband/armband-ci-jobs.yml
@@ -126,6 +126,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
installer: '{installer}'
@@ -205,7 +206,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
diff --git a/jjb/armband/armband-deploy.sh b/jjb/armband/armband-deploy.sh
index 4df9acfd8..adabfcaeb 100755
--- a/jjb/armband/armband-deploy.sh
+++ b/jjb/armband/armband-deploy.sh
@@ -8,7 +8,6 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-set -o errexit
set -o nounset
set -o pipefail
@@ -49,8 +48,8 @@ mkdir -p $TMPDIR
cd $WORKSPACE
if [[ $LAB_CONFIG_URL =~ ^(git|ssh):// ]]; then
- echo "Cloning securedlab repo ${GIT_BRANCH##origin/}"
- git clone --quiet --branch ${GIT_BRANCH##origin/} $LAB_CONFIG_URL lab-config
+ echo "Cloning securedlab repo $BRANCH"
+ git clone --quiet --branch $BRANCH $LAB_CONFIG_URL lab-config
LAB_CONFIG_URL=file://${WORKSPACE}/lab-config
# Source local_env if present, which contains POD-specific config
@@ -73,7 +72,7 @@ FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
# Deploy Cache (to enable just create the deploy-cache subdir)
# NOTE: Only available when ISO files are cached using ISOSTORE mechanism
-DEPLOY_CACHE=${ISOSTORE:-/iso_mount/opnfv_ci}/${GIT_BRANCH##*/}/deploy-cache
+DEPLOY_CACHE=${ISOSTORE:-/iso_mount/opnfv_ci}/${BRANCH##*/}/deploy-cache
if [[ -d "${DEPLOY_CACHE}" ]]; then
echo "Deploy cache dir present."
echo "--------------------------------------------------------"
diff --git a/jjb/armband/armband-download-artifact.sh b/jjb/armband/armband-download-artifact.sh
index ed7897b8e..e2dd097b6 100755
--- a/jjb/armband/armband-download-artifact.sh
+++ b/jjb/armband/armband-download-artifact.sh
@@ -38,7 +38,7 @@ ISO_FILE=${WORKSPACE}/opnfv.iso
# using ISOs for verify & merge jobs from local storage will be enabled later
if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
# check if we already have the ISO to avoid redownload
- ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci}/${GIT_BRANCH##*/}
+ ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci}/${BRANCH##*/}
if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
echo "ISO exists locally. Skipping the download and using the file from ISO store"
ln -s $ISOSTORE/$OPNFV_ARTIFACT ${ISO_FILE}
diff --git a/jjb/armband/armband-project-jobs.yml b/jjb/armband/armband-project-jobs.yml
index 2a1854937..0fb5e4e63 100644
--- a/jjb/armband/armband-project-jobs.yml
+++ b/jjb/armband/armband-project-jobs.yml
@@ -40,7 +40,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-arm-defaults'
- '{installer}-defaults'
diff --git a/jjb/armband/armband-verify-jobs.yml b/jjb/armband/armband-verify-jobs.yml
index 06ded3788..05146a35c 100644
--- a/jjb/armband/armband-verify-jobs.yml
+++ b/jjb/armband/armband-verify-jobs.yml
@@ -94,7 +94,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-arm-defaults'
- 'armband-verify-defaults':
@@ -110,7 +109,7 @@
- name: 'armband-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -124,7 +123,7 @@
- name: 'armband-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -138,7 +137,7 @@
- name: 'armband-verify-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -152,7 +151,7 @@
- name: 'armband-verify-smoke-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -191,7 +190,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
diff --git a/jjb/armband/upload-artifacts.sh b/jjb/armband/upload-artifacts.sh
index 7059ac344..97987e2c5 100755
--- a/jjb/armband/upload-artifacts.sh
+++ b/jjb/armband/upload-artifacts.sh
@@ -28,7 +28,7 @@ if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
# store ISO locally on NFS first
ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci}
if [[ -d "$ISOSTORE" ]]; then
- ISOSTORE=${ISOSTORE}/${GIT_BRANCH##*/}
+ ISOSTORE=${ISOSTORE}/${BRANCH##*/}
mkdir -p $ISOSTORE
# remove all but most recent 3 ISOs first to keep iso_mount clean & tidy
diff --git a/jjb/availability/availability.yml b/jjb/availability/availability.yml
index c3603a65f..9cb7f8899 100644
--- a/jjb/availability/availability.yml
+++ b/jjb/availability/availability.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/barometer/barometer.yml b/jjb/barometer/barometer.yml
index 7a5b5e43d..6a17e1706 100644
--- a/jjb/barometer/barometer.yml
+++ b/jjb/barometer/barometer.yml
@@ -30,7 +30,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -87,7 +86,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -139,7 +137,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/bottlenecks/bottlenecks-ci-jobs.yml b/jjb/bottlenecks/bottlenecks-ci-jobs.yml
index 92ec2d866..582f40c31 100644
--- a/jjb/bottlenecks/bottlenecks-ci-jobs.yml
+++ b/jjb/bottlenecks/bottlenecks-ci-jobs.yml
@@ -95,7 +95,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
diff --git a/jjb/bottlenecks/bottlenecks-project-jobs.yml b/jjb/bottlenecks/bottlenecks-project-jobs.yml
index 80a972bbe..535edafc2 100644
--- a/jjb/bottlenecks/bottlenecks-project-jobs.yml
+++ b/jjb/bottlenecks/bottlenecks-project-jobs.yml
@@ -42,7 +42,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -80,7 +79,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -124,7 +122,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- bottlenecks-parameter:
diff --git a/jjb/compass4nfv/compass-ci-jobs.yml b/jjb/compass4nfv/compass-ci-jobs.yml
index 754b24edd..6c9686a1d 100644
--- a/jjb/compass4nfv/compass-ci-jobs.yml
+++ b/jjb/compass4nfv/compass-ci-jobs.yml
@@ -107,6 +107,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- compass-ci-parameter:
installer: '{installer}'
gs-pathname: '{gs-pathname}'
@@ -196,7 +197,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- compass-ci-parameter:
installer: '{installer}'
diff --git a/jjb/compass4nfv/compass-dovetail-jobs.yml b/jjb/compass4nfv/compass-dovetail-jobs.yml
new file mode 100644
index 000000000..0fd2f9e66
--- /dev/null
+++ b/jjb/compass4nfv/compass-dovetail-jobs.yml
@@ -0,0 +1,209 @@
+- project:
+
+ name: 'compass-dovetail-jobs'
+ installer: 'compass'
+ project: 'compass4nfv'
+#----------------------------------
+# BRANCH ANCHORS
+#----------------------------------
+ colorado: &colorado
+ stream: colorado
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ dovetail-branch: master
+#------------------------------------
+# POD, INSTALLER, AND BRANCH MAPPING
+#------------------------------------
+# CI PODs
+#------------------------------------
+ pod:
+ - baremetal:
+ slave-label: compass-baremetal
+ os-version: 'trusty'
+ <<: *colorado
+#-----------------------------------
+# scenarios
+#-----------------------------------
+ scenario:
+ - 'os-nosdn-nofeature-ha':
+ disabled: false
+ auto-trigger-name: 'dovetail-weekly-trigger'
+
+ jobs:
+ - 'compass-{scenario}-{pod}-weekly-{stream}'
+ - 'compass-deploy-{pod}-weekly-{stream}'
+
+########################
+# job templates
+########################
+- job-template:
+ name: 'compass-{scenario}-{pod}-weekly-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: false
+
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'compass-os-.*?-{pod}-daily-.*?'
+ - 'compass-os-.*?-{pod}-weekly-.*?'
+ block-level: 'NODE'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+
+ triggers:
+ - '{auto-trigger-name}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - compass-ci-parameter:
+ installer: '{installer}'
+ gs-pathname: '{gs-pathname}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
+ - '{slave-label}-defaults'
+ - '{installer}-defaults'
+
+ triggers:
+ - '{auto-trigger-name}'
+
+ builders:
+ - description-setter:
+ description: "POD: $NODE_NAME"
+ - trigger-builds:
+ - project: 'compass-deploy-{pod}-weekly-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO={scenario}
+ COMPASS_OS_VERSION={os-version}
+ same-node: true
+ block: true
+ - trigger-builds:
+ - project: 'dovetail-compass-{pod}-compliance_set-weekly-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'dovetail-compass-{pod}-debug-weekly-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'dovetail-compass-{pod}-proposed_tests-weekly-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+
+- job-template:
+ name: 'compass-deploy-{pod}-weekly-{stream}'
+
+ disabled: false
+
+ concurrent: true
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'compass-deploy-{pod}-daily-.*?'
+ - 'compass-deploy-{pod}-weekly-.*'
+ - 'compass-verify-deploy-.*?'
+ block-level: 'NODE'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+ - timeout:
+ timeout: 120
+ abort: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - compass-ci-parameter:
+ installer: '{installer}'
+ gs-pathname: '{gs-pathname}'
+ - '{slave-label}-defaults'
+ - '{installer}-defaults'
+
+ scm:
+ - git-scm
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+
+
+ builders:
+ - description-setter:
+ description: "POD: $NODE_NAME"
+ - shell:
+ !include-raw-escape: ./compass-download-artifact.sh
+ - shell:
+ !include-raw-escape: ./compass-deploy.sh
+
+ publishers:
+ - archive:
+ artifacts: 'ansible.log'
+ allow-empty: 'true'
+ fingerprint: true
+
+########################
+# parameter macros
+########################
+- parameter:
+ name: compass-dovetail-parameter
+ parameters:
+ - string:
+ name: BUILD_DIRECTORY
+ default: $WORKSPACE/build_output
+ description: "Directory where the build artifact will be located upon the completion of the build."
+ - string:
+ name: GS_URL
+ default: '$GS_BASE{gs-pathname}'
+ description: "URL to Google Storage."
+ - choice:
+ name: COMPASS_OPENSTACK_VERSION
+ choices:
+ - 'mitaka'
+
+########################
+# trigger macros
+########################
+- trigger:
+ name: 'compass-os-nosdn-nofeature-ha-baremetal-weekly-colorado-trigger'
+ triggers:
+ - timed: ''
diff --git a/jjb/compass4nfv/compass-project-jobs.yml b/jjb/compass4nfv/compass-project-jobs.yml
index 75ebdb206..ed0fee6c0 100644
--- a/jjb/compass4nfv/compass-project-jobs.yml
+++ b/jjb/compass4nfv/compass-project-jobs.yml
@@ -43,7 +43,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- compass-project-parameter:
installer: '{installer}'
@@ -87,7 +86,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- compass-project-parameter:
installer: '{installer}'
diff --git a/jjb/compass4nfv/compass-verify-jobs.yml b/jjb/compass4nfv/compass-verify-jobs.yml
index f5a54c8d9..f4df6709d 100644
--- a/jjb/compass4nfv/compass-verify-jobs.yml
+++ b/jjb/compass4nfv/compass-verify-jobs.yml
@@ -103,7 +103,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'compass-virtual-defaults'
- '{installer}-defaults'
diff --git a/jjb/conductor/conductor.yml b/jjb/conductor/conductor.yml
index fccd53e7f..1d47624e1 100644
--- a/jjb/conductor/conductor.yml
+++ b/jjb/conductor/conductor.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/copper/copper.yml b/jjb/copper/copper.yml
index 24f65a358..eff66ba29 100644
--- a/jjb/copper/copper.yml
+++ b/jjb/copper/copper.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/cperf/cperf-ci-jobs.yml b/jjb/cperf/cperf-ci-jobs.yml
index 998e3c9c8..125937e80 100644
--- a/jjb/cperf/cperf-ci-jobs.yml
+++ b/jjb/cperf/cperf-ci-jobs.yml
@@ -58,7 +58,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{pod}-defaults'
- '{installer}-defaults'
diff --git a/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml b/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
index 1e7bf9080..72e25b23a 100644
--- a/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
+++ b/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
@@ -79,7 +79,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-defaults'
- 'daisy4nfv-merge-defaults':
@@ -95,7 +94,7 @@
- name: 'daisy4nfv-merge-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -109,7 +108,7 @@
- name: 'daisy4nfv-merge-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -123,7 +122,7 @@
- name: 'daisy4nfv-merge-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -137,7 +136,7 @@
- name: 'daisy4nfv-merge-smoke-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -151,7 +150,7 @@
- name: 'daisy4nfv-merge-promote-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -191,7 +190,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'daisy4nfv-merge-defaults':
diff --git a/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml b/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
index 82532b2b8..fd36d20b6 100644
--- a/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
+++ b/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
@@ -83,7 +83,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-defaults'
- 'daisy4nfv-verify-defaults':
@@ -99,7 +98,7 @@
- name: 'daisy4nfv-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -113,7 +112,7 @@
- name: 'daisy4nfv-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -127,7 +126,7 @@
- name: 'daisy4nfv-verify-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -141,7 +140,7 @@
- name: 'daisy4nfv-verify-smoke-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -181,7 +180,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'daisy4nfv-verify-defaults':
diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml
index 2abb94696..2333fca14 100644
--- a/jjb/doctor/doctor.yml
+++ b/jjb/doctor/doctor.yml
@@ -7,7 +7,7 @@
- master:
branch: '{stream}'
gs-pathname: ''
- docker-tag: 'master'
+ docker-tag: 'latest'
disabled: false
- danube:
branch: 'stable/{stream}'
@@ -22,10 +22,9 @@
- fuel:
slave-label: 'ool-virtual2'
pod: 'ool-virtual2'
- # TODO(r-mibu): enable this once joid is ready
- #- joid:
- # slave-label: 'ool-virtual3'
- # pod: 'ool-virtual3'
+ - joid:
+ slave-label: 'ool-virtual3'
+ pod: 'ool-virtual3'
inspector:
- 'sample'
@@ -51,7 +50,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -92,14 +90,8 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
- name: GIT_BRANCH
- default: 'origin/{branch}'
- description: "Override GIT_BRANCH parameter as we need stream name here"
- #TODO(r-mibu): remove this work around by cleanup *_BRANCH params
- - string:
name: OS_CREDS
default: /home/jenkins/openstack.creds
description: 'OpenStack credentials'
@@ -152,6 +144,7 @@
branch: '{branch}'
builders:
+ - 'clean-workspace-log'
- 'functest-suite-builder'
- shell: |
functest_log="$HOME/opnfv/functest/results/{stream}/{project}.log"
diff --git a/jjb/domino/domino.yml b/jjb/domino/domino.yml
index 532fce687..5fd9db3f1 100644
--- a/jjb/domino/domino.yml
+++ b/jjb/domino/domino.yml
@@ -24,7 +24,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/dovetail/dovetail-artifacts-upload.yml b/jjb/dovetail/dovetail-artifacts-upload.yml
index 1a6935646..3d9af5ed7 100644
--- a/jjb/dovetail/dovetail-artifacts-upload.yml
+++ b/jjb/dovetail/dovetail-artifacts-upload.yml
@@ -43,7 +43,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- dovetail-parameter:
diff --git a/jjb/dovetail/dovetail-ci-jobs.yml b/jjb/dovetail/dovetail-ci-jobs.yml
index 917856beb..4d92980af 100644
--- a/jjb/dovetail/dovetail-ci-jobs.yml
+++ b/jjb/dovetail/dovetail-ci-jobs.yml
@@ -180,7 +180,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{SUT}-defaults'
- '{slave-label}-defaults'
diff --git a/jjb/dovetail/dovetail-project-jobs.yml b/jjb/dovetail/dovetail-project-jobs.yml
index 904841396..9dc4808b4 100644
--- a/jjb/dovetail/dovetail-project-jobs.yml
+++ b/jjb/dovetail/dovetail-project-jobs.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -65,7 +64,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/dovetail/dovetail-weekly-jobs.yml b/jjb/dovetail/dovetail-weekly-jobs.yml
index c6b3774d4..66c05e243 100644
--- a/jjb/dovetail/dovetail-weekly-jobs.yml
+++ b/jjb/dovetail/dovetail-weekly-jobs.yml
@@ -82,7 +82,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{sut}-defaults'
- '{slave-label}-defaults'
diff --git a/jjb/dpacc/dpacc.yml b/jjb/dpacc/dpacc.yml
index 27e663507..bc61d7447 100644
--- a/jjb/dpacc/dpacc.yml
+++ b/jjb/dpacc/dpacc.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/escalator/escalator.yml b/jjb/escalator/escalator.yml
index 103a6962f..2265dafce 100644
--- a/jjb/escalator/escalator.yml
+++ b/jjb/escalator/escalator.yml
@@ -81,7 +81,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-defaults'
- 'escalator-defaults':
@@ -97,7 +96,7 @@
- name: 'escalator-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -111,7 +110,7 @@
- name: 'escalator-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -138,7 +137,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'escalator-defaults':
@@ -195,7 +193,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-defaults'
- 'escalator-defaults':
@@ -211,7 +208,7 @@
- name: 'escalator-merge-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -225,7 +222,7 @@
- name: 'escalator-merge-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -252,7 +249,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'escalator-defaults':
diff --git a/jjb/fuel/fuel-daily-jobs.yml b/jjb/fuel/fuel-daily-jobs.yml
index e176dacf0..02267bdf9 100644
--- a/jjb/fuel/fuel-daily-jobs.yml
+++ b/jjb/fuel/fuel-daily-jobs.yml
@@ -81,6 +81,10 @@
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-kvm_ovs-ha':
auto-trigger-name: 'daily-trigger-disabled'
+ - 'os-nosdn-kvm_ovs_dpdk-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
+ - 'os-nosdn-kvm_ovs_dpdk_bar-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
# NOHA scenarios
- 'os-nosdn-nofeature-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
@@ -100,6 +104,8 @@
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-ovs-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
+ - 'os-nosdn-kvm_ovs_dpdk-noha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
jobs:
- 'fuel-{scenario}-{pod}-daily-{stream}'
@@ -138,6 +144,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
installer: '{installer}'
@@ -208,7 +215,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
@@ -303,7 +309,14 @@
name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-master-trigger'
triggers:
- timed: '5 20 * * *'
-
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-master-trigger'
+ triggers:
+ - timed: '30 12 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-master-trigger'
+ triggers:
+ - timed: '30 8 * * *'
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-master-trigger'
@@ -341,6 +354,10 @@
name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-master-trigger'
+ triggers:
+ - timed: '30 16 * * *'
#-----------------------------------------------
# Triggers for job running on fuel-baremetal against danube branch
#-----------------------------------------------
@@ -381,7 +398,14 @@
name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-danube-trigger'
triggers:
- timed: '0 20 * * *'
-
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-danube-trigger'
@@ -419,6 +443,10 @@
name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-danube-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# Triggers for job running on fuel-virtual against master branch
#-----------------------------------------------
@@ -458,6 +486,14 @@
name: 'fuel-os-nosdn-ovs-ha-virtual-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-master-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-master-trigger'
@@ -495,6 +531,10 @@
name: 'fuel-os-nosdn-ovs-noha-virtual-daily-master-trigger'
triggers:
- timed: '5 9 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-master-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# Triggers for job running on fuel-virtual against danube branch
#-----------------------------------------------
@@ -534,6 +574,14 @@
name: 'fuel-os-nosdn-ovs-ha-virtual-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-danube-trigger'
@@ -571,6 +619,10 @@
name: 'fuel-os-nosdn-ovs-noha-virtual-daily-danube-trigger'
triggers:
- timed: '0 9 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-danube-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD1 Triggers running against master branch
#-----------------------------------------------
@@ -610,6 +662,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-master-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-master-trigger'
@@ -647,6 +707,10 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-master-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD2 Triggers running against master branch
@@ -687,6 +751,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod2-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod2-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod2-daily-master-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod2-daily-master-trigger'
@@ -724,6 +796,10 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod2-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod2-daily-master-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD3 Triggers running against master branch
#-----------------------------------------------
@@ -763,6 +839,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod3-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod3-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod3-daily-master-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod3-daily-master-trigger'
@@ -800,6 +884,10 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod3-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod3-daily-master-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD1 Triggers running against danube branch
#-----------------------------------------------
@@ -839,6 +927,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-danube-trigger'
@@ -876,6 +972,10 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-danube-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD2 Triggers running against danube branch
@@ -916,6 +1016,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod2-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod2-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod2-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod2-daily-danube-trigger'
@@ -953,6 +1061,10 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod2-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod2-daily-danube-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD3 Triggers running against danube branch
#-----------------------------------------------
@@ -992,6 +1104,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod3-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod3-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod3-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod3-daily-danube-trigger'
@@ -1029,3 +1149,7 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod3-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod3-daily-danube-trigger'
+ triggers:
+ - timed: ''
diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh
index 48b1dac2f..4efccd611 100755
--- a/jjb/fuel/fuel-deploy.sh
+++ b/jjb/fuel/fuel-deploy.sh
@@ -57,9 +57,9 @@ chmod a+x $TMPDIR
# clone the securedlab repo
cd $WORKSPACE
-echo "Cloning securedlab repo ${GIT_BRANCH##origin/}"
+echo "Cloning securedlab repo $BRANCH"
git clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet \
- --branch ${GIT_BRANCH##origin/}
+ --branch $BRANCH
# log file name
FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
diff --git a/jjb/fuel/fuel-download-artifact.sh b/jjb/fuel/fuel-download-artifact.sh
index 2a0f09a3f..8cc552e8d 100755
--- a/jjb/fuel/fuel-download-artifact.sh
+++ b/jjb/fuel/fuel-download-artifact.sh
@@ -36,7 +36,7 @@ echo "Using $OPNFV_ARTIFACT for deployment"
# using ISOs for verify & merge jobs from local storage will be enabled later
if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
# check if we already have the ISO to avoid redownload
- ISOSTORE="/iso_mount/opnfv_ci/${GIT_BRANCH##*/}"
+ ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
echo "ISO exists locally. Skipping the download and using the file from ISO store"
ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
diff --git a/jjb/fuel/fuel-project-jobs.yml b/jjb/fuel/fuel-project-jobs.yml
index 390094e47..32ad8907e 100644
--- a/jjb/fuel/fuel-project-jobs.yml
+++ b/jjb/fuel/fuel-project-jobs.yml
@@ -45,7 +45,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- '{installer}-defaults'
@@ -91,7 +90,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- '{installer}-defaults'
@@ -163,7 +161,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'fuel-virtual-defaults':
installer: '{installer}'
@@ -236,7 +233,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- string:
diff --git a/jjb/fuel/fuel-upload-artifact.sh b/jjb/fuel/fuel-upload-artifact.sh
index ca4ba00b0..d1ac3509b 100755
--- a/jjb/fuel/fuel-upload-artifact.sh
+++ b/jjb/fuel/fuel-upload-artifact.sh
@@ -23,7 +23,7 @@ nfsstore () {
# storing ISOs for verify & merge jobs will be done once we get the disk array
if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
# store ISO locally on NFS first
- ISOSTORE="/iso_mount/opnfv_ci/${GIT_BRANCH##*/}"
+ ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
if [[ -d "$ISOSTORE" ]]; then
# remove all but most recent 5 ISOs first to keep iso_mount clean & tidy
cd $ISOSTORE
diff --git a/jjb/fuel/fuel-verify-jobs-experimental.yml b/jjb/fuel/fuel-verify-jobs-experimental.yml
index 95d675ada..ae6458021 100644
--- a/jjb/fuel/fuel-verify-jobs-experimental.yml
+++ b/jjb/fuel/fuel-verify-jobs-experimental.yml
@@ -101,7 +101,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-defaults'
- 'fuel-verify-defaults-exp':
@@ -117,7 +116,7 @@
- name: 'fuel-verify-basic-{stream-exp}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -131,7 +130,7 @@
- name: 'fuel-verify-build-{stream-exp}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -145,7 +144,7 @@
- name: 'fuel-verify-deploy-virtual-{stream-exp}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -159,7 +158,7 @@
- name: 'fuel-verify-smoke-test-{stream-exp}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -198,7 +197,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
diff --git a/jjb/fuel/fuel-verify-jobs.yml b/jjb/fuel/fuel-verify-jobs.yml
index 439489715..7f9eff04d 100644
--- a/jjb/fuel/fuel-verify-jobs.yml
+++ b/jjb/fuel/fuel-verify-jobs.yml
@@ -96,7 +96,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- 'fuel-verify-defaults':
@@ -112,7 +111,7 @@
- name: 'fuel-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -126,7 +125,7 @@
- name: 'fuel-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -140,7 +139,7 @@
- name: 'fuel-verify-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -154,7 +153,7 @@
- name: 'fuel-verify-smoke-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -193,7 +192,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
diff --git a/jjb/functest/functest-ci-jobs.yml b/jjb/functest/functest-ci-jobs.yml
index a688cab29..7478e2a86 100644
--- a/jjb/functest/functest-ci-jobs.yml
+++ b/jjb/functest/functest-ci-jobs.yml
@@ -220,7 +220,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults'
diff --git a/jjb/functest/functest-exit.sh b/jjb/functest/functest-exit.sh
index 10edab005..925a3cfbb 100644
--- a/jjb/functest/functest-exit.sh
+++ b/jjb/functest/functest-exit.sh
@@ -1,7 +1,6 @@
#!/bin/bash
-branch=${GIT_BRANCH##*/}
-ret_val_file="${HOME}/opnfv/functest/results/${branch}/return_value"
+ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
if [ ! -f ${ret_val_file} ]; then
echo "Return value not found!"
exit -1
@@ -9,4 +8,4 @@ fi
ret_val=`cat ${ret_val_file}`
-exit ${ret_val} \ No newline at end of file
+exit ${ret_val}
diff --git a/jjb/functest/functest-loop.sh b/jjb/functest/functest-loop.sh
index 4528c00d1..893c428a2 100755
--- a/jjb/functest/functest-loop.sh
+++ b/jjb/functest/functest-loop.sh
@@ -3,9 +3,9 @@ set +e
branch=${GIT_BRANCH##*/}
[[ "$PUSH_RESULTS_TO_DB" == "true" ]] && flags+="-r"
-if [[ ${branch} == *"brahmaputra"* ]]; then
+if [[ "$BRANCH" =~ 'brahmaputra' ]]; then
cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh -s ${flags}"
-elif [[ ${branch} == *"colorado"* ]]; then
+elif [[ "$BRANCH" =~ 'colorado' ]]; then
cmd="python ${FUNCTEST_REPO_DIR}/ci/run_tests.py -t all ${flags}"
else
cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/run_tests.py -t all ${flags}"
@@ -14,7 +14,7 @@ container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
ret_value=$?
-ret_val_file="${HOME}/opnfv/functest/results/${branch}/return_value"
+ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
echo ${ret_value}>${ret_val_file}
exit 0
diff --git a/jjb/functest/functest-project-jobs.yml b/jjb/functest/functest-project-jobs.yml
index 6a0768c9c..42c19a777 100644
--- a/jjb/functest/functest-project-jobs.yml
+++ b/jjb/functest/functest-project-jobs.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/functest/functest-suite.sh b/jjb/functest/functest-suite.sh
index 9dc8deca0..28d7e3d10 100755
--- a/jjb/functest/functest-suite.sh
+++ b/jjb/functest/functest-suite.sh
@@ -1,11 +1,10 @@
#!/bin/bash
set -e
-branch=${GIT_BRANCH##*/}
-echo "Functest: run $FUNCTEST_SUITE_NAME on branch ${branch}"
-if [[ ${branch} == *"brahmaputra"* ]]; then
+echo "Functest: run $FUNCTEST_SUITE_NAME on branch $BRANCH"
+if [[ "$BRANCH" =~ 'brahmaputra' ]]; then
cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test $FUNCTEST_SUITE_NAME"
-elif [[ ${branch} == *"colorado"* ]]; then
+elif [[ "$BRANCH" =~ 'colorado' ]]; then
cmd="python ${FUNCTEST_REPO_DIR}/ci/run_tests.py -t $FUNCTEST_SUITE_NAME"
else
cmd="functest testcase run $FUNCTEST_SUITE_NAME"
diff --git a/jjb/functest/set-functest-env.sh b/jjb/functest/set-functest-env.sh
index 583ce8041..afd656f52 100755
--- a/jjb/functest/set-functest-env.sh
+++ b/jjb/functest/set-functest-env.sh
@@ -56,8 +56,7 @@ DEPLOY_TYPE=baremetal
echo "Functest: Start Docker and prepare environment"
-branch=${GIT_BRANCH##*/}
-dir_result="${HOME}/opnfv/functest/results/${branch}"
+dir_result="${HOME}/opnfv/functest/results/${BRANCH##*/}"
mkdir -p ${dir_result}
sudo rm -rf ${dir_result}/*
results_vol="-v ${dir_result}:/home/opnfv/functest/results"
@@ -96,9 +95,9 @@ if [ $(docker ps | grep "opnfv/functest:${DOCKER_TAG}" | wc -l) == 0 ]; then
echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
exit 1
fi
-if [[ ${branch} == *"brahmaputra"* ]]; then
+if [[ "$BRANCH" =~ 'brahmaputra' ]]; then
cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
-elif [[ ${branch} == *"colorado"* ]]; then
+elif [[ "$BRANCH" =~ 'colorado' ]]; then
cmd="python ${FUNCTEST_REPO_DIR}/ci/prepare_env.py start"
else
cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/prepare_env.py start"
diff --git a/jjb/global/releng-macros.yml b/jjb/global/releng-macros.yml
index 60fa22d63..06152fe6b 100644
--- a/jjb/global/releng-macros.yml
+++ b/jjb/global/releng-macros.yml
@@ -26,14 +26,14 @@
name: GS_BASE_PROXY
default: build.opnfv.org/artifacts.opnfv.org/$PROJECT
description: "URL to Google Storage proxy"
-
-- parameter:
- name: gerrit-parameter
- parameters:
+ - string:
+ name: BRANCH
+ default: '{branch}'
+ description: "JJB configured BRANCH parameter (e.g. master, stable/danube)"
- string:
name: GERRIT_BRANCH
default: '{branch}'
- description: "JJB configured GERRIT_BRANCH parameter"
+ description: "JJB configured GERRIT_BRANCH parameter (deprecated)"
- property:
name: logrotate-default
@@ -51,7 +51,7 @@
credentials-id: '$SSH_CREDENTIAL_ID'
url: '$GIT_BASE'
branches:
- - 'origin/$GERRIT_BRANCH'
+ - 'origin/$BRANCH'
timeout: 15
- scm:
@@ -68,9 +68,9 @@
- timed: ''
- trigger:
- name: 'weekly-trigger-disabled'
+ name: 'dovetail-weekly-trigger'
triggers:
- - timed: ''
+ - timed: 'H H * * 0'
# NOTE: unused macro, but we may use this for some jobs.
- trigger:
@@ -423,6 +423,12 @@
sed -r -i '4,$s/^/ /g' lint.log
fi
+- builder:
+ name: clean-workspace-log
+ builders:
+ - shell: |
+ find $WORKSPACE -type f -print -name '*.log' | xargs rm -f
+
- publisher:
name: archive-artifacts
publishers:
diff --git a/jjb/infra/bifrost-verify-jobs.yml b/jjb/infra/bifrost-verify-jobs.yml
index 4c106fc5c..c99023edf 100644
--- a/jjb/infra/bifrost-verify-jobs.yml
+++ b/jjb/infra/bifrost-verify-jobs.yml
@@ -55,6 +55,7 @@
- defaults:
name: vm_defaults
vm-disk: '30'
+ vm-disk-cache: 'unsafe'
vm-memory: '4096'
vm-cpu: '2'
@@ -107,6 +108,9 @@
name: VM_DISK
default: '{vm-disk}'
- string:
+ name: VM_DISK_CACHE
+ default: '{vm-disk-cache}'
+ - string:
name: VM_MEMORY
default: '{vm-memory}'
- string:
@@ -127,7 +131,7 @@
url: '$PROJECT_REPO'
refspec: '$GERRIT_REFSPEC'
branches:
- - 'origin/$GERRIT_BRANCH'
+ - 'origin/$BRANCH'
skip-tag: true
choosing-strategy: 'gerrit'
timeout: 10
diff --git a/jjb/ipv6/ipv6.yml b/jjb/ipv6/ipv6.yml
index da54c521e..a6745cd99 100644
--- a/jjb/ipv6/ipv6.yml
+++ b/jjb/ipv6/ipv6.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/joid/joid-daily-jobs.yml b/jjb/joid/joid-daily-jobs.yml
index ad1a76f0a..b28dd6025 100644
--- a/jjb/joid/joid-daily-jobs.yml
+++ b/jjb/joid/joid-daily-jobs.yml
@@ -114,6 +114,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
installer: '{installer}'
@@ -184,7 +185,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
diff --git a/jjb/joid/joid-verify-jobs.yml b/jjb/joid/joid-verify-jobs.yml
index 23e21e95b..7b8ce7701 100644
--- a/jjb/joid/joid-verify-jobs.yml
+++ b/jjb/joid/joid-verify-jobs.yml
@@ -94,7 +94,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'joid-virtual-defaults'
@@ -108,7 +107,7 @@
- name: 'joid-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -121,7 +120,7 @@
- name: 'joid-verify-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -135,7 +134,7 @@
- name: 'joid-verify-smoke-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -176,7 +175,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults'
diff --git a/jjb/kvmfornfv/kvmfornfv.yml b/jjb/kvmfornfv/kvmfornfv.yml
index 9857f6adb..522e9716b 100644
--- a/jjb/kvmfornfv/kvmfornfv.yml
+++ b/jjb/kvmfornfv/kvmfornfv.yml
@@ -57,7 +57,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -91,7 +90,7 @@
- name: 'kvmfornfv-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
node-parameters: false
@@ -104,7 +103,7 @@
- name: 'kvmfornfv-verify-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
node-parameters: false
@@ -128,7 +127,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'kvmfornfv-defaults':
@@ -147,7 +145,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- 'kvmfornfv-defaults':
@@ -186,7 +183,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- 'kvmfornfv-defaults':
@@ -260,7 +256,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'kvmfornfv-defaults':
diff --git a/jjb/moon/moon.yml b/jjb/moon/moon.yml
index 15c3ddec8..a318bc54d 100644
--- a/jjb/moon/moon.yml
+++ b/jjb/moon/moon.yml
@@ -17,7 +17,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/multisite/fuel-deploy-for-multisite.sh b/jjb/multisite/fuel-deploy-for-multisite.sh
index fab9ace84..d8b40517c 100755
--- a/jjb/multisite/fuel-deploy-for-multisite.sh
+++ b/jjb/multisite/fuel-deploy-for-multisite.sh
@@ -22,7 +22,7 @@ export TERM="vt220"
# get the latest successful job console log and extract the properties filename
FUEL_DEPLOY_BUILD_URL="https://build.opnfv.org/ci/job/fuel-deploy-virtual-daily-master/lastSuccessfulBuild/consoleText"
-FUEL_PROPERTIES_FILE=$(curl -s -L ${FUEL_DEPLOY_URL} | grep 'ISO:' | awk '{print $2}' | sed 's/iso/properties/g')
+FUEL_PROPERTIES_FILE=$(curl -s -L ${FUEL_DEPLOY_BUILD_URL} | grep 'ISO:' | awk '{print $2}' | sed 's/iso/properties/g')
if [[ -z "FUEL_PROPERTIES_FILE" ]]; then
echo "Unable to extract the url to Fuel ISO properties from ${FUEL_DEPLOY_URL}"
exit 1
@@ -39,8 +39,6 @@ echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment"
echo "Downloading the ISO using the link http://$OPNFV_ARTIFACT_URL"
curl -L -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
-echo "Checking out $OPNFV_GIT_SHA1"
-git checkout $OPNFV_GIT_SHA1 --quiet
# set deployment parameters
DEPLOY_SCENARIO="os-nosdn-nofeature-noha"
@@ -69,6 +67,13 @@ mkdir -p $TMPDIR
chmod a+x $HOME
chmod a+x $TMPDIR
+# clone fuel repo and checkout the sha1 that corresponds to the ISO
+echo "Cloning fuel repo"
+git clone https://gerrit.opnfv.org/gerrit/p/fuel.git fuel
+cd $WORKSPACE/fuel
+echo "Checking out $OPNFV_GIT_SHA1"
+git checkout $OPNFV_GIT_SHA1 --quiet
+
# clone the securedlab repo
cd $WORKSPACE
echo "Cloning securedlab repo ${GIT_BRANCH##origin/}"
@@ -79,7 +84,7 @@ git clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet \
FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
# construct the command
-DEPLOY_COMMAND="sudo $WORKSPACE/ci/deploy.sh -b file://$WORKSPACE/securedlab \
+DEPLOY_COMMAND="sudo $WORKSPACE/fuel/ci/deploy.sh -b file://$WORKSPACE/securedlab \
-l $LAB_NAME -p $POD_NAME -s $DEPLOY_SCENARIO -i file://$WORKSPACE/opnfv.iso \
-H -B $BRIDGE -S $TMPDIR -L $WORKSPACE/$FUEL_LOG_FILENAME"
diff --git a/jjb/multisite/multisite-daily-jobs.yml b/jjb/multisite/multisite-daily-jobs.yml
index 15c885de4..6b022fd75 100644
--- a/jjb/multisite/multisite-daily-jobs.yml
+++ b/jjb/multisite/multisite-daily-jobs.yml
@@ -24,7 +24,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- timed: '#@midnight'
+ timed: '@midnight'
- job-template:
name: 'multisite-kingbird-virtual-daily-{stream}'
@@ -38,6 +38,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- choice:
name: FRESH_INSTALL
choices:
@@ -161,11 +162,10 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- string:
name: KINGBIRD_LOG_FILE
default: $WORKSPACE/kingbird.log
- - gerrit-parameter:
- branch: '{branch}'
- 'fuel-defaults'
- '{slave-label}-defaults'
- choice:
@@ -196,8 +196,11 @@
!include-raw-escape: ./fuel-deploy-for-multisite.sh
- shell: |
#!/bin/bash
+
echo "This is where we deploy fuel, extract passwords and save into file"
- $WORKSPACE/tools/keystone/run.sh -t controller -r $WORKSPACE/tools/keystone/fetchpass.sh -o servicepass.ini
+
+ cd $WORKSPACE/tools/keystone/
+ ./run.sh -t controller -r fetchpass.sh -o servicepass.ini
- builder:
name: 'multisite-fuel-deploy-regiontwo-virtual-builder'
@@ -208,7 +211,9 @@
#!/bin/bash
echo "This is where we deploy fuel, extract publicUrl, privateUrl, and adminUrl and save into file"
- $WORKSPACE/tools/keystone/run.sh -t controller -r $WORKSPACE/tools/keystone/endpoint.sh -o endpoints.ini
+
+ cd $WORKSPACE/tools/keystone/
+ ./run.sh -t controller -r endpoint.sh -o endpoints.ini
- builder:
name: 'multisite-register-endpoints-builder'
builders:
@@ -220,7 +225,9 @@
#!/bin/bash
echo "This is where we register RegionTwo in RegionOne keystone using endpoints.ini"
- $WORKSPACE/tools/keystone/run.sh -t controller -r $WORKSPACE/tools/keystone/region.sh -d $WORKSPACE/endpoints.ini
+
+ cd $WORKSPACE/tools/keystone/
+ ./run.sh -t controller -r region.sh -d $WORKSPACE/endpoints.ini
- builder:
name: 'multisite-update-auth-builder'
builders:
@@ -232,8 +239,10 @@
#!/bin/bash
echo "This is where we read passwords from servicepass.ini and replace passwords in RegionTwo"
- $WORKSPACE/tools/keystone/run.sh -t controller -r $WORKSPACE/tools/keystone/writepass.sh -d $WORKSPACE/servicepass.ini
- $WORKSPACE/tools/keystone/run.sh -t compute -r $WORKSPACE/tools/keystone/writepass.sh -d $WORKSPACE/servicepass.ini
+
+ cd $WORKSPACE/tools/keystone/
+ ./run.sh -t controller -r writepass.sh -d $WORKSPACE/servicepass.ini
+ ./run.sh -t compute -r writepass.sh -d $WORKSPACE/servicepass.ini
- builder:
name: 'multisite-kingbird-deploy-virtual-builder'
builders:
@@ -241,7 +250,8 @@
#!/bin/bash
echo "This is where we install kingbird"
- $WORKSPACE/tools/kingbird/deploy.sh
+ cd $WORKSPACE/tools/kingbird
+ ./deploy.sh
########################
# publisher macros
########################
diff --git a/jjb/multisite/multisite-verify-jobs.yml b/jjb/multisite/multisite-verify-jobs.yml
index fdcc8d539..5ecfafb55 100644
--- a/jjb/multisite/multisite-verify-jobs.yml
+++ b/jjb/multisite/multisite-verify-jobs.yml
@@ -32,7 +32,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/netready/netready.yml b/jjb/netready/netready.yml
index 3d043f9e3..382434ae6 100644
--- a/jjb/netready/netready.yml
+++ b/jjb/netready/netready.yml
@@ -21,7 +21,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
scm:
- git-scm-gerrit
@@ -65,7 +64,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- 'netready-parameter':
diff --git a/jjb/octopus/octopus.yml b/jjb/octopus/octopus.yml
index b820ecb0e..cb66112fe 100644
--- a/jjb/octopus/octopus.yml
+++ b/jjb/octopus/octopus.yml
@@ -27,7 +27,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/onosfw/onosfw.yml b/jjb/onosfw/onosfw.yml
index d3a845403..13c96718c 100644
--- a/jjb/onosfw/onosfw.yml
+++ b/jjb/onosfw/onosfw.yml
@@ -31,7 +31,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -72,7 +71,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -96,7 +94,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- string:
diff --git a/jjb/opera/opera-daily-jobs.yml b/jjb/opera/opera-daily-jobs.yml
index b0755446e..f1ea1aa74 100644
--- a/jjb/opera/opera-daily-jobs.yml
+++ b/jjb/opera/opera-daily-jobs.yml
@@ -61,11 +61,8 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'huawei-virtual7-defaults'
- - 'compass-defaults'
- - 'opera-compass-parameter'
builders:
- description-setter:
@@ -84,7 +81,10 @@
condition: SUCCESSFUL
projects:
- name: 'compass-deploy-virtual-daily-{stream}'
- current-parameters: true
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-nosdn-openo-noha
+ COMPASS_OS_VERSION=xenial
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: true
@@ -93,7 +93,7 @@
# condition: SUCCESSFUL
# projects:
# - name: 'functest-compass-baremetal-suite-{stream}'
-# current-parameters: true
+# current-parameters: false
# predefined-parameters:
# FUNCTEST_SUITE_NAME=opera
# node-parameters: true
@@ -145,27 +145,3 @@
#!/bin/bash
echo "Hello world!"
-########################
-# parameter macros
-########################
-- parameter:
- name: opera-compass-parameter
- parameters:
- - string:
- name: BUILD_DIRECTORY
- default: $WORKSPACE/build_output
- description: "Directory where the build artifact will be located upon the completion of the build."
- - string:
- name: GS_URL
- default: '$GS_BASE{gs-pathname}'
- description: "URL to Google Storage."
- - choice:
- name: COMPASS_OPENSTACK_VERSION
- choices:
- - 'newton'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-openo-noha'
- - string:
- name: COMPASS_OS_VERSION
- default: 'xenial'
diff --git a/jjb/opera/opera-project-jobs.yml b/jjb/opera/opera-project-jobs.yml
index 19c9a881e..38efbc159 100644
--- a/jjb/opera/opera-project-jobs.yml
+++ b/jjb/opera/opera-project-jobs.yml
@@ -31,9 +31,8 @@
parameters:
- project-parameter:
project: '{project}'
- - 'opnfv-build-ubuntu-defaults'
- - gerrit-parameter:
branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
scm:
- git-scm
diff --git a/jjb/opera/opera-verify-jobs.yml b/jjb/opera/opera-verify-jobs.yml
index d936cde9b..b7b5cb3c9 100644
--- a/jjb/opera/opera-verify-jobs.yml
+++ b/jjb/opera/opera-verify-jobs.yml
@@ -84,7 +84,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'huawei-pod7-defaults'
diff --git a/jjb/opnfvdocs/opnfvdocs.yml b/jjb/opnfvdocs/opnfvdocs.yml
index cf7bae5b3..12950338d 100644
--- a/jjb/opnfvdocs/opnfvdocs.yml
+++ b/jjb/opnfvdocs/opnfvdocs.yml
@@ -34,7 +34,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_CLONE_BASE
@@ -75,7 +74,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_CLONE_BASE
@@ -114,6 +112,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- string:
name: GS_URL
default: '$GS_BASE{gs-pathname}'
@@ -122,10 +121,6 @@
name: GIT_CLONE_BASE
default: ssh://gerrit.opnfv.org:29418
description: "Used for overriding the GIT URL coming from parameters macro."
- - string:
- name: GERRIT_BRANCH
- default: '{branch}'
- description: 'Specify the branch in this way in order to be able to use build-opnfv-composite-docs builder.'
scm:
- git-scm
@@ -136,4 +131,3 @@
builders:
- build-html-and-pdf-docs-output
# - upload-generated-docs-to-opnfv-artifacts
-
diff --git a/jjb/ovsnfv/ovsnfv.yml b/jjb/ovsnfv/ovsnfv.yml
index 9b2adf3a8..937a367fb 100644
--- a/jjb/ovsnfv/ovsnfv.yml
+++ b/jjb/ovsnfv/ovsnfv.yml
@@ -26,7 +26,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-centos-defaults'
- string:
@@ -73,7 +72,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-centos-defaults'
- string:
@@ -119,7 +117,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-centos-defaults'
- string:
diff --git a/jjb/parser/parser.yml b/jjb/parser/parser.yml
index de5587ed8..69fcefc20 100644
--- a/jjb/parser/parser.yml
+++ b/jjb/parser/parser.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/pharos/pharos.yml b/jjb/pharos/pharos.yml
index dbf1b92a4..6dae9f33c 100644
--- a/jjb/pharos/pharos.yml
+++ b/jjb/pharos/pharos.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/prediction/prediction.yml b/jjb/prediction/prediction.yml
index fba5741ac..b380d8c86 100644
--- a/jjb/prediction/prediction.yml
+++ b/jjb/prediction/prediction.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/promise/promise.yml b/jjb/promise/promise.yml
index a0af6f41e..a5aa302c7 100644
--- a/jjb/promise/promise.yml
+++ b/jjb/promise/promise.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/qtip/qtip-ci-jobs.yml b/jjb/qtip/qtip-ci-jobs.yml
index b83014edb..38f9955ec 100644
--- a/jjb/qtip/qtip-ci-jobs.yml
+++ b/jjb/qtip/qtip-ci-jobs.yml
@@ -44,7 +44,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{pod}-defaults'
diff --git a/jjb/qtip/qtip-project-jobs.yml b/jjb/qtip/qtip-project-jobs.yml
index a9c8251fc..00455f8b3 100644
--- a/jjb/qtip/qtip-project-jobs.yml
+++ b/jjb/qtip/qtip-project-jobs.yml
@@ -23,7 +23,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/releng/artifact-cleanup.yml b/jjb/releng/artifact-cleanup.yml
index e10d5defb..2d0205660 100644
--- a/jjb/releng/artifact-cleanup.yml
+++ b/jjb/releng/artifact-cleanup.yml
@@ -27,7 +27,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
scm:
diff --git a/jjb/releng/opnfv-docker.sh b/jjb/releng/opnfv-docker.sh
index e26727abf..40669bcb7 100644
--- a/jjb/releng/opnfv-docker.sh
+++ b/jjb/releng/opnfv-docker.sh
@@ -60,14 +60,13 @@ if [ ! -f ./Dockerfile ]; then
fi
# Get tag version
-branch="${GIT_BRANCH##origin/}"
-echo "Current branch: $branch"
+echo "Current branch: $BRANCH"
-if [[ "$branch" == "master" ]]; then
+if [[ "$BRANCH" == "master" ]]; then
DOCKER_TAG="latest"
else
if [[ "$RELEASE_VERSION" != "" ]]; then
- release=$(echo $branch|sed 's/.*\///')
+ release=${BRANCH##*/}
DOCKER_TAG=${release}.${RELEASE_VERSION}
# e.g. colorado.1.0, colorado.2.0, colorado.3.0
else
@@ -79,7 +78,7 @@ fi
echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG"
echo "--------------------------------------------------------"
echo
-cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$branch ."
+cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$BRANCH ."
echo ${cmd}
${cmd}
diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml
index 87b03626e..cb9b4d488 100644
--- a/jjb/releng/opnfv-docker.yml
+++ b/jjb/releng/opnfv-docker.yml
@@ -87,7 +87,6 @@
parameters: &parameters
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- string:
diff --git a/jjb/releng/opnfv-docs.yml b/jjb/releng/opnfv-docs.yml
index 6224ca989..f4b25017e 100644
--- a/jjb/releng/opnfv-docs.yml
+++ b/jjb/releng/opnfv-docs.yml
@@ -35,7 +35,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
scm:
@@ -77,7 +76,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GS_URL
diff --git a/jjb/releng/opnfv-lint.yml b/jjb/releng/opnfv-lint.yml
index 590790f89..4de47e87e 100644
--- a/jjb/releng/opnfv-lint.yml
+++ b/jjb/releng/opnfv-lint.yml
@@ -33,7 +33,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
scm:
@@ -76,7 +75,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
- node:
name: SLAVE_NAME
diff --git a/jjb/releng/releng-ci-jobs.yml b/jjb/releng/releng-ci-jobs.yml
index 626daffbd..ecc87303f 100644
--- a/jjb/releng/releng-ci-jobs.yml
+++ b/jjb/releng/releng-ci-jobs.yml
@@ -13,7 +13,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'master'
scm:
- git-scm-gerrit
@@ -64,7 +63,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'master'
scm:
@@ -104,7 +102,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'master'
scm:
diff --git a/jjb/releng/testapi-automate.yml b/jjb/releng/testapi-automate.yml
index 8332f5bb4..8cb4acb05 100644
--- a/jjb/releng/testapi-automate.yml
+++ b/jjb/releng/testapi-automate.yml
@@ -4,8 +4,16 @@
- master:
branch: '{stream}'
gs-pathname: ''
+
+ phase:
+ - 'docker-update'
+ - 'docker-deploy':
+ slave-label: 'testresults'
+ - 'generate-doc'
+
jobs:
- 'testapi-automate-{stream}'
+ - 'testapi-automate-{phase}-{stream}'
- 'testapi-verify-{stream}'
project: 'releng'
@@ -15,6 +23,11 @@
slave-label: 'testresults'
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+
scm:
- git-scm
@@ -30,7 +43,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -81,14 +93,23 @@
healthy: 50
unhealthy: 40
failing: 30
+ - 'email-publisher'
- job-template:
name: 'testapi-automate-{stream}'
+ project-type: multijob
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
+
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: DOCKER_TAG
@@ -99,6 +120,12 @@
scm:
- git-scm
+ wrappers:
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 360
+ fail: true
+
triggers:
- gerrit:
server-name: 'gerrit.opnfv.org'
@@ -114,12 +141,74 @@
branch-pattern: '**/{branch}'
file-paths:
- compare-type: 'ANT'
- pattern: 'utils/**'
+ pattern: 'utils/test/testapi/**'
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: docker-update
+ condition: SUCCESSFUL
+ projects:
+ - name: 'testapi-automate-docker-update-{stream}'
+ current-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: docker-deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'testapi-automate-docker-deploy-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ GIT_BASE=$GIT_BASE
+ node-label-name: SLAVE_LABEL
+ node-label: testresults
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: generate-doc
+ condition: SUCCESSFUL
+ projects:
+ - name: 'testapi-automate-generate-doc-{stream}'
+ current-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+
+ publishers:
+ - 'email-publisher'
+
+- job-template:
+ name: 'testapi-automate-{phase}-{stream}'
+
+ properties:
+ - throttle:
+ enabled: true
+ max-per-node: 1
+ option: 'project'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: DOCKER_TAG
+ default: "latest"
+ description: "Tag name for testapi docker image"
+
+ wrappers:
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 120
+ fail: true
+
+ scm:
+ - git-scm
builders:
- - docker-update
- - testapi-doc-build
- - upload-doc-artifact
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - 'testapi-automate-{phase}-macro'
################################
# job builders
@@ -131,25 +220,49 @@
bash ./jjb/releng/testapi-backup-mongodb.sh
- builder:
- name: run-unit-tests
+ name: 'run-unit-tests'
builders:
- shell: |
bash ./utils/test/testapi/run_test.sh
- builder:
- name: docker-update
+ name: 'testapi-automate-docker-update-macro'
builders:
- shell: |
bash ./jjb/releng/testapi-docker-update.sh
- builder:
- name: testapi-doc-build
+ name: 'testapi-automate-generate-doc-macro'
+ builders:
+ - 'testapi-doc-build'
+ - 'upload-doc-artifact'
+
+- builder:
+ name: 'testapi-doc-build'
builders:
- shell: |
bash ./utils/test/testapi/htmlize/doc-build.sh
- builder:
- name: upload-doc-artifact
+ name: 'upload-doc-artifact'
builders:
- shell: |
bash ./utils/test/testapi/htmlize/push-doc-artifact.sh
+
+- builder:
+ name: 'testapi-automate-docker-deploy-macro'
+ builders:
+ - shell: |
+ bash ./jjb/releng/testapi-docker-deploy.sh
+
+################################
+# job publishers
+################################
+
+- publisher:
+ name: 'email-publisher'
+ publishers:
+ - email:
+ recipients: rohitsakala@gmail.com serena.feng.711@gmail.com
+ notify-every-unstable-build: false
+ send-to-individuals: true
diff --git a/jjb/releng/testapi-docker-deploy.sh b/jjb/releng/testapi-docker-deploy.sh
new file mode 100644
index 000000000..04d71f76e
--- /dev/null
+++ b/jjb/releng/testapi-docker-deploy.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+
+function check() {
+
+ # Verify hosted
+ sleep 5
+ cmd=`curl -s --head --request GET http://testresults.opnfv.org/auto/swagger/spec | grep '200 OK' > /dev/null`
+ rc=$?
+ echo $rc
+
+ if [[ $rc == 0 ]]
+ then
+ return 0
+ else
+ return 1
+ fi
+
+}
+
+echo "Getting contianer Id of the currently running one"
+contId=$(sudo docker ps | grep "opnfv/testapi:latest" | awk '{print $1}')
+
+echo "Pulling the latest image"
+sudo docker pull opnfv/testapi:latest
+
+echo "Deleting old containers of opnfv/testapi:old"
+sudo docker ps -a | grep "opnfv/testapi" | grep "old" | awk '{print $1}' | xargs -r sudo docker rm -f
+
+echo "Deleting old images of opnfv/testapi:latest"
+sudo docker images | grep "opnfv/testapi" | grep "old" | awk '{print $3}' | xargs -r sudo docker rmi -f
+
+
+if [[ -z "$contId" ]]
+then
+ echo "No running testapi container"
+
+ echo "Removing stopped testapi containers in the previous iterations"
+ sudo docker ps -f status=exited | grep "opnfv_testapi" | awk '{print $1}' | xargs -r sudo docker rm -f
+else
+ echo $contId
+
+ echo "Get the image id of the currently running conatiner"
+ currImgId=$(sudo docker ps | grep "$contId" | awk '{print $2}')
+ echo $currImgId
+
+ if [[ -z "$currImgId" ]]
+ then
+ echo "No image id found for the container id"
+ exit 1
+ fi
+
+ echo "Changing current image tag to old"
+ sudo docker tag "$currImgId" opnfv/testapi:old
+
+ echo "Removing stopped testapi containers in the previous iteration"
+ sudo docker ps -f status=exited | grep "opnfv_testapi" | awk '{print $1}' | xargs -r sudo docker rm -f
+
+ echo "Renaming the running container name to opnfv_testapi as to identify it."
+ sudo docker rename $contId opnfv_testapi
+
+ echo "Stop the currently running container"
+ sudo docker stop $contId
+fi
+
+echo "Running a container with the new image"
+sudo docker run -dti -p "8711:8000" -e "mongodb_url=mongodb://172.17.0.1:27017" -e "swagger_url=http://testresults.opnfv.org/auto" opnfv/testapi:latest
+
+if check; then
+ echo "TestResults Hosted."
+else
+ echo "TestResults Hosting Failed"
+ if [[ $(sudo docker images | grep "opnfv/testapi" | grep "old" | awk '{print $3}') ]]; then
+ echo "Running old Image"
+ sudo docker run -dti -p "8711:8000" -e "mongodb_url=mongodb://172.17.0.1:27017" -e "swagger_url=http://testresults.opnfv.org/auto" opnfv/testapi:old
+ exit 1
+ fi
+fi
+
+# Echo Images and Containers
+sudo docker images
+sudo docker ps -a
diff --git a/jjb/securityaudit/opnfv-security-audit.yml b/jjb/securityaudit/opnfv-security-audit.yml
index 680be20d2..732df8925 100644
--- a/jjb/securityaudit/opnfv-security-audit.yml
+++ b/jjb/securityaudit/opnfv-security-audit.yml
@@ -27,7 +27,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
scm:
diff --git a/jjb/storperf/storperf.yml b/jjb/storperf/storperf.yml
index 8f42f8c06..a04a9f4b4 100644
--- a/jjb/storperf/storperf.yml
+++ b/jjb/storperf/storperf.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -89,8 +88,7 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
- branch: 'master'
+ branch: '{branch}'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -149,7 +147,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'intel-pod9-defaults'
diff --git a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
index c129f4937..450599eaf 100644
--- a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
+++ b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
@@ -24,7 +24,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
scm:
- git-scm-gerrit
diff --git a/jjb/vswitchperf/vswitchperf.yml b/jjb/vswitchperf/vswitchperf.yml
index 50937bbe0..936483706 100644
--- a/jjb/vswitchperf/vswitchperf.yml
+++ b/jjb/vswitchperf/vswitchperf.yml
@@ -30,7 +30,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'intel-pod3-defaults'
@@ -73,7 +72,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
@@ -135,7 +133,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
diff --git a/jjb/yardstick/yardstick-ci-jobs.yml b/jjb/yardstick/yardstick-ci-jobs.yml
index 709592a89..2c3dda9e6 100644
--- a/jjb/yardstick/yardstick-ci-jobs.yml
+++ b/jjb/yardstick/yardstick-ci-jobs.yml
@@ -239,7 +239,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults'
diff --git a/jjb/yardstick/yardstick-daily.sh b/jjb/yardstick/yardstick-daily.sh
index da9042bbc..f769e9cdd 100755
--- a/jjb/yardstick/yardstick-daily.sh
+++ b/jjb/yardstick/yardstick-daily.sh
@@ -31,14 +31,14 @@ fi
opts="--privileged=true --rm"
envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
-e NODE_NAME=${NODE_NAME} -e EXTERNAL_NETWORK=${EXTERNAL_NETWORK} \
- -e YARDSTICK_BRANCH=${GIT_BRANCH##origin/} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}"
+ -e YARDSTICK_BRANCH=${BRANCH} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}"
# Pull the image with correct tag
echo "Yardstick: Pulling image opnfv/yardstick:${DOCKER_TAG}"
docker pull opnfv/yardstick:$DOCKER_TAG >$redirect
# map log directory
-branch=${GIT_BRANCH##*/}
+branch=${BRANCH##*/}
dir_result="${HOME}/opnfv/yardstick/results/${branch}"
mkdir -p ${dir_result}
sudo rm -rf ${dir_result}/*
diff --git a/jjb/yardstick/yardstick-project-jobs.yml b/jjb/yardstick/yardstick-project-jobs.yml
index f32816495..bbfa152a2 100644
--- a/jjb/yardstick/yardstick-project-jobs.yml
+++ b/jjb/yardstick/yardstick-project-jobs.yml
@@ -33,7 +33,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -70,7 +69,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- string:
@@ -110,19 +108,8 @@
set -o errexit
set -o pipefail
+ sudo apt-get install -y build-essential python-dev python3-dev
+
echo "Running unit tests..."
cd $WORKSPACE
- virtualenv $WORKSPACE/yardstick_venv
- source $WORKSPACE/yardstick_venv/bin/activate
-
- # install python packages
- sudo apt-get install -y build-essential python-dev python-pip python-pkg-resources
- easy_install -U setuptools==33.1.1
- easy_install -U pip
- pip install -r requirements.txt || pip install -r tests/ci/requirements.txt
- pip install -e .
-
- # unit tests
- ./run_tests.sh
-
- deactivate
+ tox
diff --git a/modules/opnfv/installer_adapters/InstallerHandler.py b/modules/opnfv/installer_adapters/InstallerHandler.py
index dc5bdb9d6..6c43a46f0 100644
--- a/modules/opnfv/installer_adapters/InstallerHandler.py
+++ b/modules/opnfv/installer_adapters/InstallerHandler.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2015 Ericsson AB and others.
+# Copyright (c) 2017 Ericsson AB and others.
# Author: Jose Lausuch (jose.lausuch@ericsson.com)
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
@@ -23,18 +23,22 @@ class InstallerHandler:
installer,
installer_ip,
installer_user,
- installer_pwd=None):
+ installer_pwd=None,
+ private_key_file=None):
self.installer = installer.lower()
self.installer_ip = installer_ip
self.installer_user = installer_user
self.installer_pwd = installer_pwd
+ self.private_key_file = private_key_file
if self.installer == INSTALLERS[0]:
self.InstallerAdapter = FuelAdapter(self.installer_ip,
self.installer_user,
self.installer_pwd)
elif self.installer == INSTALLERS[1]:
- self.InstallerAdapter = ApexAdapter(self.installer_ip)
+ self.InstallerAdapter = ApexAdapter(installer_ip=self.installer_ip,
+ user=self.installer_user,
+ pkey_file=self.private_key_file)
elif self.installer == INSTALLERS[2]:
self.InstallerAdapter = CompassAdapter(self.installer_ip)
elif self.installer == INSTALLERS[3]:
diff --git a/modules/opnfv/installer_adapters/apex/ApexAdapter.py b/modules/opnfv/installer_adapters/apex/ApexAdapter.py
index 17a27b10a..29637d700 100644
--- a/modules/opnfv/installer_adapters/apex/ApexAdapter.py
+++ b/modules/opnfv/installer_adapters/apex/ApexAdapter.py
@@ -7,26 +7,148 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+import os
+import re
+
+import opnfv.utils.SSHUtils as ssh_utils
+import opnfv.utils.OPNFVLogger as logger
+
class ApexAdapter:
- def __init__(self, installer_ip):
+ def __init__(self, installer_ip, pkey_file, user="stack"):
self.installer_ip = installer_ip
+ self.installer_user = user
+ self.pkey_file = pkey_file
+ self.installer_connection = ssh_utils.get_ssh_client(
+ self.installer_ip,
+ self.installer_user,
+ pkey_file=self.pkey_file)
+ self.logger = logger.Logger("ApexHandler").getLogger()
- def get_deployment_info(self):
- pass
+ def runcmd_apex_installer(self, cmd):
+ _, stdout, stderr = (self.installer_connection.exec_command(cmd))
+ error = stderr.readlines()
+ if len(error) > 0:
+ self.logger.error("error %s" % ''.join(error))
+ return error
+ output = ''.join(stdout.readlines())
+ return output
def get_nodes(self):
- pass
+ nodes = []
+ output = self.runcmd_apex_installer(
+ "source /home/stack/stackrc;nova list")
+ lines = output.rsplit('\n')
+ if len(lines) < 4:
+ self.logger.info("No nodes found in the deployment.")
+ return None
+
+ for line in lines:
+ if 'controller' in line:
+ roles = "controller"
+ elif 'compute' in line:
+ roles = "compute"
+ else:
+ continue
+ if 'Daylight' in line:
+ roles = + ", OpenDaylight"
+ fields = line.split('|')
+ dict = {"id": re.sub('[!| ]', '', fields[1]),
+ "roles": roles,
+ "name": re.sub('[!| ]', '', fields[2]),
+ "status": re.sub('[!| ]', '', fields[3]),
+ "ip": re.sub('[!| ctlplane=]', '', fields[6])}
+ nodes.append(dict)
+
+ return nodes
+
+ def get_deployment_info(self):
+ str = "Deployment details:\n"
+ str += "\tINSTALLER: Apex\n"
+ str += ("\tSCENARIO: %s\n" %
+ os.getenv('DEPLOY_SCENARIO', 'Unknown'))
+ sdn = "None"
+
+ nodes = self.get_nodes()
+ if nodes is None:
+ self.logger.info("No nodes found in the deployment.")
+ return
+ num_nodes = len(nodes)
+ num_controllers = 0
+ num_computes = 0
+ for node in nodes:
+ if 'controller' in node['roles']:
+ num_controllers += 1
+ if 'compute' in node['roles']:
+ num_computes += 1
+ if 'Daylight' in node['name']:
+ sdn = 'OpenDaylight'
+
+ ha = str(num_controllers >= 3)
+
+ str += "\tHA: %s\n" % ha
+ str += "\tNUM.NODES: %s\n" % num_nodes
+ str += "\tCONTROLLERS: %s\n" % num_controllers
+ str += "\tCOMPUTES: %s\n" % num_computes
+ str += "\tSDN CONTR.: %s\n\n" % sdn
+
+ str += "\tNODES:\n"
+ for node in nodes:
+ str += ("\t ID: %s\n" % node['id'])
+ str += ("\t Name: %s\n" % node['name'])
+ str += ("\t Roles: %s\n" % node['roles'])
+ str += ("\t Status: %s\n" % node['status'])
+ str += ("\t IP: %s\n\n" % node['ip'])
+
+ return str
+
+ def get_controller_ips(self, options=None):
+ nodes = self.get_nodes()
+ controllers = []
+ for node in nodes:
+ if "controller" in node["roles"]:
+ controllers.append(node['ip'])
+ return controllers
+
+ def get_compute_ips(self, options=None):
+ nodes = self.get_nodes()
+ computes = []
+ for node in nodes:
+ if "compute" in node["roles"]:
+ computes.append(node['ip'])
+ return computes
- def get_controller_ips(self):
- pass
+ def get_file_from_installer(self, remote_path, local_path, options=None):
+ self.logger.debug("Fetching %s from Undercloud %s" %
+ (remote_path, self.installer_ip))
+ get_file_result = ssh_utils.get_file(self.installer_connection,
+ remote_path,
+ local_path)
+ if get_file_result is None:
+ self.logger.error("SFTP failed to retrieve the file.")
+ return 1
+ self.logger.info("%s successfully copied from Undercloud to %s" %
+ (remote_path, local_path))
- def get_compute_ips(self):
- pass
+ def get_file_from_controller(self,
+ remote_path,
+ local_path,
+ ip=None,
+ options=None):
+ if ip is None:
+ controllers = self.get_controller_ips()
+ ip = controllers[0]
- def get_file_from_installer(self, origin, target, options=None):
- pass
+ connection = ssh_utils.get_ssh_client(ip,
+ 'heat-admin',
+ pkey_file=self.pkey_file)
- def get_file_from_controller(self, origin, target, ip=None, options=None):
- pass
+ get_file_result = ssh_utils.get_file(connection,
+ remote_path,
+ local_path)
+ if get_file_result is None:
+ self.logger.error("SFTP failed to retrieve the file.")
+ return 1
+ self.logger.info("%s successfully copied from %s to %s" %
+ (remote_path, ip, local_path))
diff --git a/modules/opnfv/installer_adapters/apex/example.py b/modules/opnfv/installer_adapters/apex/example.py
new file mode 100644
index 000000000..c8c473727
--- /dev/null
+++ b/modules/opnfv/installer_adapters/apex/example.py
@@ -0,0 +1,16 @@
+# This is an example of usage of this Tool
+# Author: Jose Lausuch (jose.lausuch@ericsson.com)
+
+import opnfv.installer_adapters.InstallerHandler as ins_handler
+
+apex_handler = ins_handler.InstallerHandler(installer='apex',
+ installer_ip='192.168.122.135',
+ installer_user='stack',
+ private_key_file='/root/.ssh/id_rsa')
+apex_handler.get_file_from_installer(
+ '/home/stack/overcloudrc', './overcloudrc')
+
+print("\n%s\n" % apex_handler.get_deployment_info())
+
+apex_handler.get_file_from_controller(
+ '/etc/resolv.conf', './resolv.conf')
diff --git a/modules/opnfv/utils/SSHUtils.py b/modules/opnfv/utils/SSHUtils.py
index 16e34c3e5..e0a830caa 100644
--- a/modules/opnfv/utils/SSHUtils.py
+++ b/modules/opnfv/utils/SSHUtils.py
@@ -16,7 +16,11 @@ import os
logger = OPNFVLogger.Logger('SSHUtils').getLogger()
-def get_ssh_client(hostname, username, password=None, proxy=None):
+def get_ssh_client(hostname,
+ username,
+ password=None,
+ proxy=None,
+ pkey_file=None):
client = None
try:
if proxy is None:
@@ -26,14 +30,21 @@ def get_ssh_client(hostname, username, password=None, proxy=None):
client.configure_jump_host(proxy['ip'],
proxy['username'],
proxy['password'])
-
if client is None:
raise Exception('Could not connect to client')
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- client.connect(hostname,
- username=username,
- password=password)
+ if pkey_file is not None:
+ key = paramiko.RSAKey.from_private_key_file(pkey_file)
+ client.load_system_host_keys()
+ client.connect(hostname,
+ username=username,
+ pkey=key)
+ else:
+ client.connect(hostname,
+ username=username,
+ password=password)
+
return client
except Exception, e:
logger.error(e)
@@ -66,6 +77,7 @@ class ProxyHopClient(paramiko.SSHClient):
'''
Connect to a remote server using a proxy hop
'''
+
def __init__(self, *args, **kwargs):
self.logger = OPNFVLogger.Logger("ProxyHopClient").getLogger()
self.proxy_ssh = None
diff --git a/prototypes/bifrost/scripts/destroy-env.sh b/prototypes/bifrost/scripts/destroy-env.sh
index cdc55df1b..b73092b0f 100755
--- a/prototypes/bifrost/scripts/destroy-env.sh
+++ b/prototypes/bifrost/scripts/destroy-env.sh
@@ -14,24 +14,23 @@ if [[ $(whoami) != "root" ]]; then
exit 1
fi
-virsh destroy jumphost.opnfvlocal || true
-virsh destroy controller00.opnfvlocal || true
-virsh destroy compute00.opnfvlocal || true
-virsh undefine jumphost.opnfvlocal || true
-virsh undefine controller00.opnfvlocal || true
-virsh undefine compute00.opnfvlocal || true
-
-service ironic-conductor stop
-
-echo "removing from database"
-mysql -u root ironic --execute "truncate table ports;"
-mysql -u root ironic --execute "delete from node_tags;"
-mysql -u root ironic --execute "delete from nodes;"
-mysql -u root ironic --execute "delete from conductors;"
+# Delete all VMs on the slave since proposed patchsets
+# may leave undesired VM leftovers
+for vm in $(virsh list --all --name); do
+ virsh destroy $vm || true
+ virsh undefine $vm || true
+done
+
+service ironic-conductor stop || true
+
+echo "removing ironic database"
+if $(which mysql &> /dev/null); then
+ mysql -u root ironic --execute "drop database ironic;"
+fi
echo "removing leases"
[[ -e /var/lib/misc/dnsmasq/dnsmasq.leases ]] && > /var/lib/misc/dnsmasq/dnsmasq.leases
echo "removing logs"
-rm -rf /var/log/libvirt/baremetal_logs/*.log
+rm -rf /var/log/libvirt/baremetal_logs/*
# clean up dib images only if requested explicitly
CLEAN_DIB_IMAGES=${CLEAN_DIB_IMAGES:-false}
@@ -48,6 +47,6 @@ rm -rf /var/lib/libvirt/images/*.qcow2
echo "restarting services"
service dnsmasq restart || true
service libvirtd restart
-service ironic-api restart
-service ironic-conductor start
-service ironic-inspector restart
+service ironic-api restart || true
+service ironic-conductor start || true
+service ironic-inspector restart || true
diff --git a/prototypes/bifrost/scripts/test-bifrost-deployment.sh b/prototypes/bifrost/scripts/test-bifrost-deployment.sh
index 90f014c74..914a906f4 100755
--- a/prototypes/bifrost/scripts/test-bifrost-deployment.sh
+++ b/prototypes/bifrost/scripts/test-bifrost-deployment.sh
@@ -36,6 +36,7 @@ export TEST_VM_NODE_NAMES="jumphost.opnfvlocal controller00.opnfvlocal compute00
export VM_DOMAIN_TYPE="kvm"
export VM_CPU=${VM_CPU:-4}
export VM_DISK=${VM_DISK:-100}
+export VM_DISK_CACHE=${VM_DISK_CACHE:-unsafe}
TEST_PLAYBOOK="test-bifrost-infracloud.yaml"
USE_INSPECTOR=true
USE_CIRROS=false
diff --git a/utils/push-test-logs.sh b/utils/push-test-logs.sh
index 265ca6120..ed6825be2 100644
--- a/utils/push-test-logs.sh
+++ b/utils/push-test-logs.sh
@@ -15,7 +15,7 @@ export PATH=$PATH:/usr/local/bin/
git_sha1="$(git rev-parse HEAD)"
res_build_date=${1:-$(date -u +"%Y-%m-%d_%H-%M-%S")}
project=$PROJECT
-branch=${GIT_BRANCH##*/}
+branch=${BRANCH##*/}
testbed=$NODE_NAME
dir_result="${HOME}/opnfv/$project/results/${branch}"
# src: https://wiki.opnfv.org/display/INF/Hardware+Infrastructure
diff --git a/utils/test/testapi/htmlize/htmlize.py b/utils/test/testapi/htmlize/htmlize.py
index 075e31f79..70976d2bc 100644
--- a/utils/test/testapi/htmlize/htmlize.py
+++ b/utils/test/testapi/htmlize/htmlize.py
@@ -39,12 +39,12 @@ if __name__ == '__main__':
parser.add_argument('-ru', '--resource-listing-url',
type=str,
required=False,
- default='http://testresults.opnfv.org/test/swagger/spec.json',
+ default='http://testresults.opnfv.org/auto/swagger/spec.json',
help='Resource Listing Spec File')
parser.add_argument('-au', '--api-declaration-url',
type=str,
required=False,
- default='http://testresults.opnfv.org/test/swagger/spec',
+ default='http://testresults.opnfv.org/auto/swagger/spec',
help='API Declaration Spec File')
parser.add_argument('-o', '--output-directory',
required=True,
diff --git a/utils/test/vnfcatalogue/assets/Vnf_landing/assets/css/3rd_party/bootstrap.css b/utils/test/vnfcatalogue/assets/Vnf_landing/assets/css/3rd_party/bootstrap.css
new file mode 100755
index 000000000..b9c239621
--- /dev/null
+++ b/utils/test/vnfcatalogue/assets/Vnf_landing/assets/css/3rd_party/bootstrap.css
@@ -0,0 +1,1299 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2017 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+/*!
+ * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=73eb1273dd80c57866adeff88f30374f)
+ * Config saved to config.json and https://gist.github.com/73eb1273dd80c57866adeff88f30374f
+ */
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+}
+body {
+ margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+[hidden],
+template {
+ display: none;
+}
+a {
+ background-color: transparent;
+}
+a:active,
+a:hover {
+ outline: 0;
+}
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+b,
+strong {
+ font-weight: bold;
+}
+dfn {
+ font-style: italic;
+}
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+mark {
+ background: #ff0;
+ color: #000;
+}
+small {
+ font-size: 80%;
+}
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+img {
+ border: 0;
+}
+svg:not(:root) {
+ overflow: hidden;
+}
+figure {
+ margin: 1em 40px;
+}
+hr {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+pre {
+ overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0;
+}
+button {
+ overflow: visible;
+}
+button,
+select {
+ text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+input {
+ line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+input[type="search"] {
+ -webkit-appearance: textfield;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+legend {
+ border: 0;
+ padding: 0;
+}
+textarea {
+ overflow: auto;
+}
+optgroup {
+ font-weight: bold;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+td,
+th {
+ padding: 0;
+}
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+ *,
+ *:before,
+ *:after {
+ background: transparent !important;
+ color: #000 !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: "";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ .navbar {
+ display: none;
+ }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .label {
+ border: 1px solid #000;
+ }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+html {
+ font-size: 10px;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #333333;
+ background-color: #ffffff;
+}
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+a {
+ color: #337ab7;
+ text-decoration: none;
+}
+a:hover,
+a:focus {
+ color: #23527c;
+ text-decoration: underline;
+}
+a:focus {
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+figure {
+ margin: 0;
+}
+img {
+ vertical-align: middle;
+}
+.img-responsive {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.img-rounded {
+ border-radius: 6px;
+}
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+.img-circle {
+ border-radius: 50%;
+}
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #eeeeee;
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+[role="button"] {
+ cursor: pointer;
+}
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+@media (min-width: 768px) {
+ .container {
+ width: 750px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ width: 970px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ width: 1170px;
+ }
+}
+.container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.row {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+ float: left;
+}
+.col-xs-12 {
+ width: 100%;
+}
+.col-xs-11 {
+ width: 91.66666667%;
+}
+.col-xs-10 {
+ width: 83.33333333%;
+}
+.col-xs-9 {
+ width: 75%;
+}
+.col-xs-8 {
+ width: 66.66666667%;
+}
+.col-xs-7 {
+ width: 58.33333333%;
+}
+.col-xs-6 {
+ width: 50%;
+}
+.col-xs-5 {
+ width: 41.66666667%;
+}
+.col-xs-4 {
+ width: 33.33333333%;
+}
+.col-xs-3 {
+ width: 25%;
+}
+.col-xs-2 {
+ width: 16.66666667%;
+}
+.col-xs-1 {
+ width: 8.33333333%;
+}
+.col-xs-pull-12 {
+ right: 100%;
+}
+.col-xs-pull-11 {
+ right: 91.66666667%;
+}
+.col-xs-pull-10 {
+ right: 83.33333333%;
+}
+.col-xs-pull-9 {
+ right: 75%;
+}
+.col-xs-pull-8 {
+ right: 66.66666667%;
+}
+.col-xs-pull-7 {
+ right: 58.33333333%;
+}
+.col-xs-pull-6 {
+ right: 50%;
+}
+.col-xs-pull-5 {
+ right: 41.66666667%;
+}
+.col-xs-pull-4 {
+ right: 33.33333333%;
+}
+.col-xs-pull-3 {
+ right: 25%;
+}
+.col-xs-pull-2 {
+ right: 16.66666667%;
+}
+.col-xs-pull-1 {
+ right: 8.33333333%;
+}
+.col-xs-pull-0 {
+ right: auto;
+}
+.col-xs-push-12 {
+ left: 100%;
+}
+.col-xs-push-11 {
+ left: 91.66666667%;
+}
+.col-xs-push-10 {
+ left: 83.33333333%;
+}
+.col-xs-push-9 {
+ left: 75%;
+}
+.col-xs-push-8 {
+ left: 66.66666667%;
+}
+.col-xs-push-7 {
+ left: 58.33333333%;
+}
+.col-xs-push-6 {
+ left: 50%;
+}
+.col-xs-push-5 {
+ left: 41.66666667%;
+}
+.col-xs-push-4 {
+ left: 33.33333333%;
+}
+.col-xs-push-3 {
+ left: 25%;
+}
+.col-xs-push-2 {
+ left: 16.66666667%;
+}
+.col-xs-push-1 {
+ left: 8.33333333%;
+}
+.col-xs-push-0 {
+ left: auto;
+}
+.col-xs-offset-12 {
+ margin-left: 100%;
+}
+.col-xs-offset-11 {
+ margin-left: 91.66666667%;
+}
+.col-xs-offset-10 {
+ margin-left: 83.33333333%;
+}
+.col-xs-offset-9 {
+ margin-left: 75%;
+}
+.col-xs-offset-8 {
+ margin-left: 66.66666667%;
+}
+.col-xs-offset-7 {
+ margin-left: 58.33333333%;
+}
+.col-xs-offset-6 {
+ margin-left: 50%;
+}
+.col-xs-offset-5 {
+ margin-left: 41.66666667%;
+}
+.col-xs-offset-4 {
+ margin-left: 33.33333333%;
+}
+.col-xs-offset-3 {
+ margin-left: 25%;
+}
+.col-xs-offset-2 {
+ margin-left: 16.66666667%;
+}
+.col-xs-offset-1 {
+ margin-left: 8.33333333%;
+}
+.col-xs-offset-0 {
+ margin-left: 0%;
+}
+@media (min-width: 768px) {
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+ float: left;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-11 {
+ width: 91.66666667%;
+ }
+ .col-sm-10 {
+ width: 83.33333333%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-8 {
+ width: 66.66666667%;
+ }
+ .col-sm-7 {
+ width: 58.33333333%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-5 {
+ width: 41.66666667%;
+ }
+ .col-sm-4 {
+ width: 33.33333333%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-2 {
+ width: 16.66666667%;
+ }
+ .col-sm-1 {
+ width: 8.33333333%;
+ }
+ .col-sm-pull-12 {
+ right: 100%;
+ }
+ .col-sm-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-sm-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-sm-pull-9 {
+ right: 75%;
+ }
+ .col-sm-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-sm-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-sm-pull-6 {
+ right: 50%;
+ }
+ .col-sm-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-sm-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-sm-pull-3 {
+ right: 25%;
+ }
+ .col-sm-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-sm-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-sm-pull-0 {
+ right: auto;
+ }
+ .col-sm-push-12 {
+ left: 100%;
+ }
+ .col-sm-push-11 {
+ left: 91.66666667%;
+ }
+ .col-sm-push-10 {
+ left: 83.33333333%;
+ }
+ .col-sm-push-9 {
+ left: 75%;
+ }
+ .col-sm-push-8 {
+ left: 66.66666667%;
+ }
+ .col-sm-push-7 {
+ left: 58.33333333%;
+ }
+ .col-sm-push-6 {
+ left: 50%;
+ }
+ .col-sm-push-5 {
+ left: 41.66666667%;
+ }
+ .col-sm-push-4 {
+ left: 33.33333333%;
+ }
+ .col-sm-push-3 {
+ left: 25%;
+ }
+ .col-sm-push-2 {
+ left: 16.66666667%;
+ }
+ .col-sm-push-1 {
+ left: 8.33333333%;
+ }
+ .col-sm-push-0 {
+ left: auto;
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-sm-offset-0 {
+ margin-left: 0%;
+ }
+}
+@media (min-width: 992px) {
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+ float: left;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-11 {
+ width: 91.66666667%;
+ }
+ .col-md-10 {
+ width: 83.33333333%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-8 {
+ width: 66.66666667%;
+ }
+ .col-md-7 {
+ width: 58.33333333%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-5 {
+ width: 41.66666667%;
+ }
+ .col-md-4 {
+ width: 33.33333333%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-2 {
+ width: 16.66666667%;
+ }
+ .col-md-1 {
+ width: 8.33333333%;
+ }
+ .col-md-pull-12 {
+ right: 100%;
+ }
+ .col-md-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-md-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-md-pull-9 {
+ right: 75%;
+ }
+ .col-md-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-md-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-md-pull-6 {
+ right: 50%;
+ }
+ .col-md-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-md-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-md-pull-3 {
+ right: 25%;
+ }
+ .col-md-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-md-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-md-pull-0 {
+ right: auto;
+ }
+ .col-md-push-12 {
+ left: 100%;
+ }
+ .col-md-push-11 {
+ left: 91.66666667%;
+ }
+ .col-md-push-10 {
+ left: 83.33333333%;
+ }
+ .col-md-push-9 {
+ left: 75%;
+ }
+ .col-md-push-8 {
+ left: 66.66666667%;
+ }
+ .col-md-push-7 {
+ left: 58.33333333%;
+ }
+ .col-md-push-6 {
+ left: 50%;
+ }
+ .col-md-push-5 {
+ left: 41.66666667%;
+ }
+ .col-md-push-4 {
+ left: 33.33333333%;
+ }
+ .col-md-push-3 {
+ left: 25%;
+ }
+ .col-md-push-2 {
+ left: 16.66666667%;
+ }
+ .col-md-push-1 {
+ left: 8.33333333%;
+ }
+ .col-md-push-0 {
+ left: auto;
+ }
+ .col-md-offset-12 {
+ margin-left: 100%;
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-md-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .col-md-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-md-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-md-offset-0 {
+ margin-left: 0%;
+ }
+}
+@media (min-width: 1200px) {
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ float: left;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-11 {
+ width: 91.66666667%;
+ }
+ .col-lg-10 {
+ width: 83.33333333%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-8 {
+ width: 66.66666667%;
+ }
+ .col-lg-7 {
+ width: 58.33333333%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-5 {
+ width: 41.66666667%;
+ }
+ .col-lg-4 {
+ width: 33.33333333%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-2 {
+ width: 16.66666667%;
+ }
+ .col-lg-1 {
+ width: 8.33333333%;
+ }
+ .col-lg-pull-12 {
+ right: 100%;
+ }
+ .col-lg-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-lg-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-lg-pull-9 {
+ right: 75%;
+ }
+ .col-lg-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-lg-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-lg-pull-6 {
+ right: 50%;
+ }
+ .col-lg-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-lg-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-lg-pull-3 {
+ right: 25%;
+ }
+ .col-lg-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-lg-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-lg-pull-0 {
+ right: auto;
+ }
+ .col-lg-push-12 {
+ left: 100%;
+ }
+ .col-lg-push-11 {
+ left: 91.66666667%;
+ }
+ .col-lg-push-10 {
+ left: 83.33333333%;
+ }
+ .col-lg-push-9 {
+ left: 75%;
+ }
+ .col-lg-push-8 {
+ left: 66.66666667%;
+ }
+ .col-lg-push-7 {
+ left: 58.33333333%;
+ }
+ .col-lg-push-6 {
+ left: 50%;
+ }
+ .col-lg-push-5 {
+ left: 41.66666667%;
+ }
+ .col-lg-push-4 {
+ left: 33.33333333%;
+ }
+ .col-lg-push-3 {
+ left: 25%;
+ }
+ .col-lg-push-2 {
+ left: 16.66666667%;
+ }
+ .col-lg-push-1 {
+ left: 8.33333333%;
+ }
+ .col-lg-push-0 {
+ left: auto;
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-lg-offset-0 {
+ margin-left: 0%;
+ }
+}
+.clearfix:before,
+.clearfix:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after {
+ content: " ";
+ display: table;
+}
+.clearfix:after,
+.container:after,
+.container-fluid:after,
+.row:after {
+ clear: both;
+}
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+.pull-right {
+ float: right !important;
+}
+.pull-left {
+ float: left !important;
+}
+.hide {
+ display: none !important;
+}
+.show {
+ display: block !important;
+}
+.invisible {
+ visibility: hidden;
+}
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+.hidden {
+ display: none !important;
+}
+.affix {
+ position: fixed;
+}
+@-ms-viewport {
+ width: device-width;
+}
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+ display: none !important;
+}
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important;
+ }
+ table.visible-xs {
+ display: table !important;
+ }
+ tr.visible-xs {
+ display: table-row !important;
+ }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-block {
+ display: block !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-inline {
+ display: inline !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important;
+ }
+ table.visible-sm {
+ display: table !important;
+ }
+ tr.visible-sm {
+ display: table-row !important;
+ }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-block {
+ display: block !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important;
+ }
+ table.visible-md {
+ display: table !important;
+ }
+ tr.visible-md {
+ display: table-row !important;
+ }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-block {
+ display: block !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important;
+ }
+ table.visible-lg {
+ display: table !important;
+ }
+ tr.visible-lg {
+ display: table-row !important;
+ }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-block {
+ display: block !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important;
+ }
+}
+.visible-print {
+ display: none !important;
+}
+@media print {
+ .visible-print {
+ display: block !important;
+ }
+ table.visible-print {
+ display: table !important;
+ }
+ tr.visible-print {
+ display: table-row !important;
+ }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell !important;
+ }
+}
+.visible-print-block {
+ display: none !important;
+}
+@media print {
+ .visible-print-block {
+ display: block !important;
+ }
+}
+.visible-print-inline {
+ display: none !important;
+}
+@media print {
+ .visible-print-inline {
+ display: inline !important;
+ }
+}
+.visible-print-inline-block {
+ display: none !important;
+}
+@media print {
+ .visible-print-inline-block {
+ display: inline-block !important;
+ }
+}
+@media print {
+ .hidden-print {
+ display: none !important;
+ }
+}
diff --git a/utils/test/vnfcatalogue/assets/Vnf_landing/assets/css/style.css b/utils/test/vnfcatalogue/assets/Vnf_landing/assets/css/style.css
new file mode 100644
index 000000000..a37340cd3
--- /dev/null
+++ b/utils/test/vnfcatalogue/assets/Vnf_landing/assets/css/style.css
@@ -0,0 +1,252 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Kumar Rishabh and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Apache License, Version 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *******************************************************************************/
+@import url('https://fonts.googleapis.com/css?family=Muli:300,400,600,700,800');
+*
+{
+ color: #333333;
+ font-family: 'Muli', sans-serif;
+}
+*:focus
+{
+ outline: none;
+}
+html,
+body
+{
+ margin: 0;
+ padding: 0;
+ background: #ffffff;
+ font-family: 'Muli', sans-serif;
+}
+header
+{
+ padding: 10px 35px 0 0px;
+}
+header ul
+{
+ list-style: none;
+ display: inline-block;
+}
+header ul li
+{
+ display: inline-block;
+}
+header .logo
+{
+ background: url(../images/logo.png) no-repeat;
+ background-size: cover;
+ width: 155px;
+ height: 34px;
+ display: inline-block;
+ margin-right: 20px;
+ margin-left: 0;
+ float: left;
+}
+header ul li.links
+{
+ margin: 7px 10px 0 0;
+}
+header ul li > a,
+.content ul.most-menu li.items a
+{
+ color: #333333;
+ font-weight: 800;
+ font-size: 14px;
+ letter-spacing: 0.6px;
+ font-family: 'Muli', sans-serif;
+}
+header ul.navigation-right
+{
+ float: right;
+ padding-top: 8px;
+}
+header ul.navigation-right li.signup > a
+{
+ border: 2px solid #333333;
+ border-radius: 4px;
+ font-size: 13px;
+ font-weigt: 700;
+ padding: 9px 15px;
+}
+header ul.navigation-right li.signin > a
+{
+ border-bottom: 2px solid #333333;
+ font-size: 13px;
+ font-weight: 700;
+ padding: 9px 2px;
+}
+header ul.navigation-right li.option
+{
+ font-weight: 800;
+ padding: 0 10px;
+}
+header ul li > a:hover,
+header ul.navigation-right li.signin > a:hover,
+header ul.navigation-right li.signup > a:hover,
+header ul li > a:focus,
+header ul.navigation-right li.signin > a:focus,
+header ul.navigation-right li.signup > a:focus,
+.content ul.most-menu li a:hover,
+.content ul.most-menu li a:focus
+{
+ text-decoration: none;
+ cursor: pointer;
+ color: #333333;
+}
+header ul.navigation-right li.signup > a:hover
+{
+ background: #333333;
+ color: #ffffff;
+}
+.search-box
+{
+ text-align: center;
+ padding: 100px 0;
+}
+.search-box h1
+{
+ font-size: 30px;
+ letter-spacing: 2px;
+ color: #333333;
+ font-weight: 600;
+}
+form.search-form
+{
+ padding: 10px 20px;
+}
+form.search-form input.search-input
+{
+ font-weight: 400;
+ margin: 30px 0;
+ height: 80px;
+ padding: 10px 30px;
+ max-width: 800px;
+ width: 70%;
+ border-radius: 5px;
+ border: 2px solid #333333;
+ box-shadow: 0 0 15px 1px rgba(0,0,0,0.50);
+ color: #333333;
+ font-size: 22px;
+}
+form.search-form button.search-button
+{
+ padding: 18px 35px;
+ background: #FFF572;
+ border: 0;
+ box-shadow: 0 0 15px 1px #958F40;
+ border-radius: 1px;
+ font-size: 20px;
+ color: #393E41;
+ letter-spacing: 1px;
+ border-radius: 5px;
+ font-weight: 600;
+}
+form.search-form input:focus
+{
+ outline: none;
+}
+form.search-form input::-webkit-input-placeholder
+{
+ font-weight: 400;
+ letter-spacing: 1px;
+ color: #333333;
+}
+form.search-form input::-moz-placeholder
+{
+ font-weight: 400;
+ letter-spacing: 1px;
+ color: #333333;
+}
+form.search-form input:-moz-placeholder
+{
+ font-weight: 400;
+ letter-spacing: 5px;
+ color: #333333;
+}
+form.search-form input:-ms-input-placeholder
+{
+ font-weight: 400;
+ letter-spacing: 1px;
+ color: #333333;
+}
+.content
+{
+ height: 500px;
+ background: #f9f9f9;
+ padding: 10px 0;
+}
+.content ul.most-menu
+{
+ list-style: none;
+ text-align: center;
+ padding-bottom: 10px;
+}
+.content ul.most-menu li.items
+{
+ display: inline-block;
+ margin-right: 5px;
+ padding: 15px 25px;
+}
+.content ul.most-menu li.active
+{
+ background: #FFF572;
+}
+.content-box
+{
+ overflow: hidden;
+ padding: 20px 0 50px 0;
+ display: flex;
+ justify-content: center;
+ background: #FFFFFF;
+ box-shadow: 0 2px 3px 0 rgba(0,0,0,0.50);
+ border-bottom: 2px solid #8B19A2;
+ margin-bottom: 30px;
+}
+.content-data
+{
+ align-self: center;
+}
+.content-data h1.content-title
+{
+ font-size: 25px;
+ color: #000000;
+ letter-spacing: 1.2px;
+}
+.content-data .box
+{
+ padding: 10px 0;
+ height: 90px;
+ text-align: center;
+ border: 2px solid #4D4D4D;
+ border-radius: 2px;
+}
+.content-data .commit-icon
+{
+ width: 23px;
+ height: 16px;
+}
+.content-data .box h3.commits
+{
+ text-align: center;
+ font-size: 12px;
+ color: #333333;
+ letter-spacing: 0.03px;
+}
+footer
+{
+ font-size: 12px;
+ font-weight: 800;
+ color: #333333;
+ text-align: center;
+ padding: 20px;
+}
+.space-10
+{
+ height: 10px;
+}
diff --git a/utils/test/vnfcatalogue/assets/Vnf_landing/assets/images/3rd_party/commits.png b/utils/test/vnfcatalogue/assets/Vnf_landing/assets/images/3rd_party/commits.png
new file mode 100644
index 000000000..1247621a7
--- /dev/null
+++ b/utils/test/vnfcatalogue/assets/Vnf_landing/assets/images/3rd_party/commits.png
Binary files differ
diff --git a/utils/test/vnfcatalogue/assets/Vnf_landing/assets/images/logo.png b/utils/test/vnfcatalogue/assets/Vnf_landing/assets/images/logo.png
new file mode 100644
index 000000000..fe18194ec
--- /dev/null
+++ b/utils/test/vnfcatalogue/assets/Vnf_landing/assets/images/logo.png
Binary files differ
diff --git a/utils/test/vnfcatalogue/assets/Vnf_landing/index.html b/utils/test/vnfcatalogue/assets/Vnf_landing/index.html
new file mode 100644
index 000000000..5aebd4681
--- /dev/null
+++ b/utils/test/vnfcatalogue/assets/Vnf_landing/index.html
@@ -0,0 +1,145 @@
+<!--
+ Copyright (c) 2017 Kumar Rishabh and others.
+
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Apache License, Version 2.0
+ which accompanies this distribution, and is available at
+ http://www.apache.org/licenses/LICENSE-2.0
+-->
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>Document</title>
+ <link rel="stylesheet" href="assets/css/3rd_party/bootstrap.css">
+ <link rel="stylesheet" href="assets/css/style.css">
+</head>
+<body>
+<header>
+ <ul class="navigation">
+ <li class="logo"></li>
+ <li class="links"><a href="#">Projects</a></li>
+ <li class="links"><a href="#">People</a></li>
+ <li class="links"><a href="#">About</a></li>
+ </ul>
+ <ul class="navigation-right">
+ <li class="signup"><a href="#">Sign up</a></li>
+ <li class="option">or</li>
+ <li class="signin"><a href="#">Sign in</a></li>
+ </ul>
+</header>
+<div class="search-box">
+ <h1>VNF Catalogue</h1>
+ <form class="search-form">
+ <input type="text" placeholder="Search..." class="search-input">
+ <div class="space-10"></div>
+ <button type="submit" value="Search" class="search-button">Search</button>
+ </form>
+</div>
+<div class="content">
+<ul class="most-menu">
+ <li class="items active"><a href="#">Most Popular</a></li>
+ <li class="items"><a href="#">Most Active</a></li>
+ <li class="items"><a href="#">Most Active Contributions</a></li>
+</ul>
+<div class="container">
+ <div class="row">
+ <div class="box-container">
+ <div class="col-md-3">
+ <div class="content-box">
+ <div class="content-data">
+ <h1 class="content-title">AAA</h1>
+ <div class="box">
+ <img src="assets/images/3rd_party/commits.png" class="commit-icon">
+ <h3 class="commits">4,845<br>commits</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-3">
+ <div class="content-box">
+ <div class="content-data">
+ <h1 class="content-title">AAA</h1>
+ <div class="box">
+ <img src="assets/images/3rd_party/commits.png" class="commit-icon">
+ <h3 class="commits">4,845<br>commits</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-3">
+ <div class="content-box">
+ <div class="content-data">
+ <h1 class="content-title">AAA</h1>
+ <div class="box">
+ <img src="assets/images/3rd_party/commits.png" class="commit-icon">
+ <h3 class="commits">4,845<br>commits</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-3">
+ <div class="content-box">
+ <div class="content-data">
+ <h1 class="content-title">AAA</h1>
+ <div class="box">
+ <img src="assets/images/3rd_party/commits.png" class="commit-icon">
+ <h3 class="commits">4,845<br>commits</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-3">
+ <div class="content-box">
+ <div class="content-data">
+ <h1 class="content-title">AAA</h1>
+ <div class="box">
+ <img src="assets/images/3rd_party/commits.png" class="commit-icon">
+ <h3 class="commits">4,845<br>commits</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-3">
+ <div class="content-box">
+ <div class="content-data">
+ <h1 class="content-title">AAA</h1>
+ <div class="box">
+ <img src="assets/images/3rd_party/commits.png" class="commit-icon">
+ <h3 class="commits">4,845<br>commits</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-3">
+ <div class="content-box">
+ <div class="content-data">
+ <h1 class="content-title">AAA</h1>
+ <div class="box">
+ <img src="assets/images/3rd_party/commits.png" class="commit-icon">
+ <h3 class="commits">4,845<br>commits</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-3">
+ <div class="content-box">
+ <div class="content-data">
+ <h1 class="content-title">AAA</h1>
+ <div class="box">
+ <img src="assets/images/3rd_party/commits.png" class="commit-icon">
+ <h3 class="commits">4,845<br>commits</h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<footer>
+ &copy; 2017 OPNFV
+</footer>
+</div>
+</body>
+</html>
diff --git a/utils/test/vnfcatalogue/helpers/README.md b/utils/test/vnfcatalogue/helpers/README.md
new file mode 100644
index 000000000..6c0ca78c3
--- /dev/null
+++ b/utils/test/vnfcatalogue/helpers/README.md
@@ -0,0 +1,22 @@
+# Helper Directory
+
+## Helper to migrate database
+
+First make sure nodejs and mysql are installed. Then use
+
+```bash
+npm install bookshelf mysql knex when lodash --save
+```
+
+Create a database named **vnf_catalogue**.
+Enter the mysql credentials in migrate.js.
+
+Then use
+
+```bash
+node migrate
+```
+
+If successful the script will return success message. The current script is
+idempotent is nature, if run twice it will just return error and write nothing.
+
diff --git a/utils/test/vnfcatalogue/helpers/migrate.js b/utils/test/vnfcatalogue/helpers/migrate.js
new file mode 100644
index 000000000..ec209053c
--- /dev/null
+++ b/utils/test/vnfcatalogue/helpers/migrate.js
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Kumar Rishabh(penguinRaider) and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Apache License, Version 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *******************************************************************************/
+
+var knex = require('knex')({
+ client: 'mysql',
+ connection: {
+ host : 'localhost',
+ user : '*',
+ password : '*',
+ database : 'vnf_catalogue',
+ charset : 'utf8'
+ }
+});
+var Schema = require('./schema');
+var sequence = require('when/sequence');
+var _ = require('lodash');
+function createTable(tableName) {
+ return knex.schema.createTable(tableName, function (table) {
+ var column;
+ var columnKeys = _.keys(Schema[tableName]);
+ _.each(columnKeys, function (key) {
+ if (Schema[tableName][key].type === 'text' && Schema[tableName][key].hasOwnProperty('fieldtype')) {
+ column = table[Schema[tableName][key].type](key, Schema[tableName][key].fieldtype);
+ }
+ else if (Schema[tableName][key].type === 'string' && Schema[tableName][key].hasOwnProperty('maxlength')) {
+ column = table[Schema[tableName][key].type](key, Schema[tableName][key].maxlength);
+ }
+ else {
+ column = table[Schema[tableName][key].type](key);
+ }
+ if (Schema[tableName][key].hasOwnProperty('nullable') && Schema[tableName][key].nullable === true) {
+ column.nullable();
+ }
+ else {
+ column.notNullable();
+ }
+ if (Schema[tableName][key].hasOwnProperty('primary') && Schema[tableName][key].primary === true) {
+ column.primary();
+ }
+ if (Schema[tableName][key].hasOwnProperty('unique') && Schema[tableName][key].unique) {
+ column.unique();
+ }
+ if (Schema[tableName][key].hasOwnProperty('unsigned') && Schema[tableName][key].unsigned) {
+ column.unsigned();
+ }
+ if (Schema[tableName][key].hasOwnProperty('references')) {
+ column.references(Schema[tableName][key].references);
+ }
+ if (Schema[tableName][key].hasOwnProperty('defaultTo')) {
+ column.defaultTo(Schema[tableName][key].defaultTo);
+ }
+ });
+ });
+}
+function createTables () {
+ var tables = [];
+ var tableNames = _.keys(Schema);
+ tables = _.map(tableNames, function (tableName) {
+ return function () {
+ return createTable(tableName);
+ };
+ });
+ return sequence(tables);
+}
+createTables()
+.then(function() {
+ console.log('Tables created!!');
+ process.exit(0);
+})
+.catch(function (error) {
+ throw error;
+});
diff --git a/utils/test/vnfcatalogue/helpers/schema.js b/utils/test/vnfcatalogue/helpers/schema.js
new file mode 100644
index 000000000..2aaf99ae2
--- /dev/null
+++ b/utils/test/vnfcatalogue/helpers/schema.js
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Kumar Rishabh(penguinRaider) and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Apache License, Version 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *******************************************************************************/
+var Schema = {
+ photo: {
+ photo_id: {type: 'increments', nullable: false, primary: true},
+ photo_url: {type: 'string', maxlength: 254, nullable: false}
+ },
+ user: {
+ user_id: {type: 'increments', nullable: false, primary: true},
+ user_name: {type: 'string', maxlength: 254, nullable: false},
+ password: {type: 'string', maxlength: 150, nullable: false},
+ email_id: {type: 'string', maxlength: 254, nullable: false, unique: true, validations: {isEmail: true}},
+ photo_id: {type: 'integer', nullable: true, unsigned: true, references: 'photo.photo_id'},
+ company: {type: 'string', maxlength: 254, nullable: false},
+ introduction: {type: 'string', maxlength: 510, nullable: false},
+ last_login: {type: 'dateTime', nullable: true},
+ created_at: {type: 'dateTime', nullable: false},
+ },
+ vnf: {
+ vnf_id: {type: 'increments', nullable: false, primary: true},
+ vnf_name: {type: 'string', maxlength: 254, nullable: false},
+ repo_url: {type: 'string', maxlength: 254, nullable: false},
+ photo_id: {type: 'integer', nullable: true, unsigned: true, references: 'photo.photo_id'},
+ submitter_id: {type: 'integer', nullable: false, unsigned: true, references: 'user.user_id'},
+ lines_of_code: {type: 'integer', nullable: true, unsigned: true},
+ versions: {type: 'integer', nullable: true, unsigned: true},
+ no_of_developers: {type: 'integer', nullable: true, unsigned: true},
+ },
+ tag: {
+ tag_id: {type: 'increments', nullable: false, primary: true},
+ name: {type: 'string', maxlength: 150, nullable: false}
+ },
+ vnf_tags: {
+ vnf_tag_id: {type: 'increments', nullable: false, primary: true},
+ tag_id: {type: 'integer', nullable: false, unsigned: true, references: 'tag.tag_id'},
+ vnf_id: {type: 'integer', nullable: false, unsigned: true, references: 'vnf.vnf_id'},
+ },
+ vnf_contributors: {
+ vnf_contributors_id: {type: 'increments', nullable: false, primary: true},
+ user_id: {type: 'integer', nullable: false, unsigned: true, references: 'user.user_id'},
+ vnf_id: {type: 'integer', nullable: false, unsigned: true, references: 'vnf.vnf_id'},
+ created_at: {type: 'dateTime', nullable: false},
+ }
+};
+module.exports = Schema;