summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjose.lausuch <jose.lausuch@ericsson.com>2015-10-07 15:26:56 +0200
committerjose.lausuch <jose.lausuch@ericsson.com>2015-10-08 11:16:29 +0200
commitfd8b7c2714925e61fb9d3764cf047615b70b9b29 (patch)
treeb126e1dc2b03be176afd9dff50693b44cc178110
parentce7c448901f386b935a0f03d5f17ca6e541b9a49 (diff)
Update Functest job to use Docker
JIRA: FUNCTEST-29 Change-Id: I1d0b50be955ec511b3039d57ebe25ae9c654b7ce Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
-rw-r--r--jjb/functest/functest.yml276
1 files changed, 101 insertions, 175 deletions
diff --git a/jjb/functest/functest.yml b/jjb/functest/functest.yml
index 139d102c3..6268f27d2 100644
--- a/jjb/functest/functest.yml
+++ b/jjb/functest/functest.yml
@@ -9,15 +9,18 @@
node: 'opnfv-jump-2'
installer_type: 'fuel'
installer_ip: '10.20.0.2'
+ functest_repo_dir: '/home/opnfv/repos/functest'
- foreman:
node: 'opnfv-jump-2'
installer_type: 'foreman'
installer_ip: '172.30.10.73'
+ functest_repo_dir: '/home/opnfv/repos/functest'
pod:
- orange-build:
node: 'orange-build'
installer_type: 'foreman'
installer_ip: '172.30.10.73'
+ functest_repo_dir: '/home/opnfv/repos/functest'
jobs:
- 'set-functest-env-{pod}'
@@ -64,26 +67,9 @@
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
+ - 'set-functest-env'
- echo "Functest: prepare Functest environment"
- mkdir -p $HOME/functest/
- # source openstack vars
- if [[ ! -f $HOME/opnfv-openrc.sh ]]; then
- echo "Unable to access file $HOME/opnfv-openrc.sh"
- exit 1
- fi
- source $HOME/opnfv-openrc.sh
- # WORKSPACE is the root of the functest repo
- # go into WORKSPACE where the functest repo is cloned
- cd $WORKSPACE
-
- # prepare
- echo "Functest: prepare Functest environment"
- python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
- job-template:
name: clean-functest-env-{pod}
@@ -99,24 +85,8 @@
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- # collect results
- echo "Functest: copy results and clean Functest environment"
- mkdir -p $HOME/functest/results
-
- # save ODL results
- cp -Rf $WORSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
-
- # save tempest.conf for further troubleshooting
- cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
+ - 'functest-cleanup'
- # cleanup
- # source openstack vars
- source $HOME/opnfv-openrc.sh
- python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
- job-template:
name: set-functest-env-{installer}-{stream}
@@ -132,26 +102,8 @@
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
+ - 'set-functest-env'
- echo "Functest: prepare Functest environment"
- mkdir -p $HOME/functest/
- # source openstack vars
- if [[ ! -f $HOME/opnfv-openrc.sh ]]; then
- echo "Unable to access file $HOME/opnfv-openrc.sh"
- exit 1
- fi
- source $HOME/opnfv-openrc.sh
-
- # WORKSPACE is the root of the functest repo
- # go into WORKSPACE where the functest repo is cloned
- cd $WORKSPACE
-
- # prepare
- echo "Functest: prepare Functest environment"
- python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
- job-template:
name: clean-functest-env-{installer}-{stream}
@@ -167,24 +119,7 @@
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- # collect results
- echo "Functest: copy results and clean Functest environment"
- mkdir -p $HOME/functest/results
-
- # save ODL results
- cp -Rf $WORSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
-
- # save tempest.conf for further troubleshooting
- cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
-
- # cleanup
- # source openstack vars
- source $HOME/opnfv-openrc.sh
- python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+ - 'functest-cleanup'
- job-template:
name: functest-openstack-bench-test-{pod}
@@ -200,12 +135,8 @@
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
+ - 'functest-rally-bench'
- echo "Functest: run Functest Rally Bench suites"
- python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
- job-template:
name: functest-openstack-tempest-smoke-test-{pod}
@@ -221,14 +152,7 @@
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
-
- # tempest
- echo "Functest: run Tempest suite"
- rally verify start smoke
- rally verify list
+ - 'functest-tempest-smoke'
- job-template:
name: functest-odl-test-{pod}
@@ -245,11 +169,8 @@
builders:
- shell: |
- #!/bin/bash
- set +e
+ - 'functest-odl'
- echo "Functest: run ODL suite"
- $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
- job-template:
name: functest-vping-test-{pod}
@@ -265,13 +186,8 @@
artifactNumToKeep: -1
builders:
- - shell: |
- #!/bin/bash
- set +e
+ - 'functest-vping'
- # vPing
- echo "Functest: run vPing"
- python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/ -r
- job-template:
name: functest-{pod}
@@ -291,6 +207,10 @@
name: INSTALLER_IP
default: '{installer_ip}'
description: "Installer IP."
+ - string:
+ name: FUNCTEST_REPO_DIR
+ default: '{functest_repo_dir}'
+ description: "Directory where the root functest repo is cloned in the docker."
- '{pod}'
scm:
@@ -306,7 +226,6 @@
artifactNumToKeep: -1
builders:
- - 'functest-fetch-os-creds'
- 'functest-all'
- 'functest-store-results'
- 'functest-cleanup'
@@ -330,6 +249,10 @@
default: '{installer_ip}'
description: "Installer IP."
- string:
+ name: FUNCTEST_REPO_DIR
+ default: '{functest_repo_dir}'
+ description: "Directory where the root functest repo is cloned in the docker."
+ - string:
name: GIT_BASE
default: ssh://gerrit.opnfv.org:29418/$PROJECT
description: "Override GIT_BASE"
@@ -347,7 +270,6 @@
artifactNumToKeep: -1
builders:
- - 'functest-fetch-os-creds'
- 'functest-all'
- 'functest-store-results'
- 'functest-cleanup'
@@ -371,6 +293,10 @@
default: '{installer_ip}'
description: "Installer IP."
- string:
+ name: FUNCTEST_REPO_DIR
+ default: '{functest_repo_dir}'
+ description: "Directory where the root functest repo is cloned in the docker."
+ - string:
name: GIT_BASE
default: ssh://gerrit.opnfv.org:29418/$PROJECT
description: "Override GIT_BASE"
@@ -388,7 +314,6 @@
artifactNumToKeep: -1
builders:
- - 'functest-fetch-os-creds'
- 'functest-vims'
- job-template:
@@ -599,93 +524,98 @@
#!/bin/bash
set +e
- echo "Functest: prepare Functest environment"
- mkdir -p $HOME/functest/
-
- # source openstack vars
- if [ ! -f $HOME/opnfv-openrc.sh ]; then
- echo "Credentials file not found in "$HOME/opnfv-openrc.sh
- exit 1
- fi
- echo "Sourcing the OpenStack credentials in"$HOME/opnfv-openrc.sh
- source $HOME/opnfv-openrc.sh
-
- # WORKSPACE is the root of the functest repo
- # go into WORKSPACE where the functest repo is cloned
- cd $WORKSPACE
-
- # prepare
- echo "Functest: prepare Functest environment"
- python $WORKSPACE/testcases/config_functest.py --debug $WORKSPACE/ start
- if [ $? != 0 ]; then
- echo "Error when configuring Functest environment"
- exit 1
- fi
-
- # vPing
+ # Remove any docker containers leftovers
+ $ docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop &>/dev/null
+ $ docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm &>/dev/null
+ $ docker images | grep opnfv/functest | awk '{print $3}' | xargs docker rmi &>/dev/null
+
+ # Pull and store fresh image from Dockerhub
+ $ docker pull opnfv/functest
+
+ # Run Docker and Functest tests
+ cmd="${FUNCTEST_REPO_DIR}/docker/start.sh"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
+
+- builder:
+ name: set-functest-env
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+
+ echo "Functest: spawn Docker and run Functest suite"
+ cmd="${FUNCTEST_REPO_DIR}/docker/start.sh"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
+
+- builder:
+ name: functest-vping
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+
echo "Functest: run vPing"
- python $WORKSPACE/testcases/vPing/CI/libraries/vPing.py --debug $WORKSPACE/ -r
+ cmd="python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing.py \
+ --debug ${FUNCTEST_REPO_DIR}/ -r"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
+- builder:
+ name: functest-odl
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
- # ODL
echo "Functest: run ODL suite"
+ cmd="${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
- if [ $INSTALLER_TYPE == "fuel" ]; then
- odl_ip=$(keystone catalog --service network | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- neutron_ip=$(keystone catalog --service identity | grep publicURL | cut -f3 -d"/" | cut -f1 -d":")
- usr_name=$(env | grep OS | grep OS_USERNAME | cut -f2 -d'=')
- pass=$(env | grep OS | grep OS_PASSWORD | cut -f2 -d'=')
- odl_port=8181
- ODL_PORT=$odl_port ODL_IP=$odl_ip NEUTRON_IP=$neutron_ip USR_NAME=$usr_name PASS=$pass \
- $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
- elif [ $INSTALLER_TYPE == "foreman" ]; then
- #odl_port=8081
- $WORKSPACE/testcases/Controllers/ODL/CI/start_tests.sh
- else
- echo "INSTALLER_TYPE not valid."
- exit 1
- fi
-
- # rally
- echo "Functest: run Functest Rally Bench suites"
- python $WORKSPACE/testcases/VIM/OpenStack/CI/libraries/run_rally.py --debug $WORKSPACE/ all
+- builder:
+ name: functest-tempest-smoke
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
# tempest
echo "Functest: run Tempest suite"
- rally verify start smoke
- rally verify list
-
- # collect results
- echo "Functest: copy results and clean Functest environment"
- mkdir -p $HOME/functest/results
+ cmd="rally verify start smoke; rally verify list;"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
- # save ODL results
- cp -Rf $WORKSPACE/testcases/Controllers/ODL/CI/logs $HOME/functest/results/ODL
- # save tempest.conf for further troubleshooting
- cp $HOME/.rally/tempest/for-deployment-*/tempest.conf $HOME/functest/results
- builder:
- name: functest-vims
+ name: functest-rally-bench
builders:
- shell: |
#!/bin/bash
set +e
- # source openstack vars
- if [ ! -f $HOME/opnfv-openrc.sh ]; then
- echo "Credentials file not found in "$HOME/opnfv-openrc.sh
- exit 1
- fi
- echo "Sourcing the OpenStack credentials in"$HOME/opnfv-openrc.sh
- source $HOME/opnfv-openrc.sh
+ echo "Functest: run Functest Rally Bench suites"
+ cmd="python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally.py \
+ --debug ${FUNCTEST_REPO_DIR}/ all"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
- # WORKSPACE is the root of the functest repo
- # go into WORKSPACE where the functest repo is cloned
- cd $WORKSPACE
- # vIMS
- echo "Functest: run vIMS"
- python $WORKSPACE/testcases/vIMS/CI/vIMS.py --debug $WORKSPACE/
+- builder:
+ name: functest-vims
+ builders:
+ - shell: |
+ #!/bin/bash
+ set +e
+ cmd="python ${FUNCTEST_REPO_DIR}/testcases/vIMS/CI/vIMS.py \
+ --debug ${FUNCTEST_REPO_DIR}/"
+ docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
- builder:
@@ -701,12 +631,8 @@
#!/bin/bash
set +e
- # cleanup
- source $HOME/opnfv-openrc.sh
- python $WORKSPACE/testcases/config_functest.py --debug --force $WORKSPACE/ clean
+ # cleanup: remove any docker containers leftovers
+ $ docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop &>/dev/null
+ $ docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm &>/dev/null
+ $ docker images | grep opnfv/functest | awk '{print $3}' | xargs docker rmi &>/dev/null
-- builder:
- name: functest-fetch-os-creds
- builders:
- - shell:
- !include-raw ../../utils/fetch_os_creds.sh