summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYujun Zhang <zhang.yujunz@zte.com.cn>2017-08-18 09:12:33 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-08-18 09:12:33 +0000
commit17209935c79e52f763aa41fd5da8a3c0f847e994 (patch)
tree24d6e7966e0ae7bc256817b5f6652cd76c4be117
parent3c672cfb23e34e030a8654a8628a6351b1135c8c (diff)
parent70fc96ee9d7785a46de6847cd8bbb54a26bff3eb (diff)
Merge "refactor storperf scripts structure"
-rw-r--r--integration/storperf/README.md45
-rw-r--r--integration/storperf/docker-compose.yaml48
-rwxr-xr-xintegration/storperf/launch_containers.sh100
-rwxr-xr-xintegration/storperf/run_ci.sh21
-rw-r--r--tests/ci/experimental.sh2
-rwxr-xr-xtests/ci/run_storage_qpi.sh (renamed from integration/storperf/cleanup.sh)8
-rwxr-xr-xtests/ci/storperf/containers.sh49
-rw-r--r--tests/ci/storperf/default_job.json (renamed from integration/storperf/default_job.json)2
-rw-r--r--tests/ci/storperf/default_stack.json (renamed from integration/storperf/default_stack.json)0
-rwxr-xr-xtests/ci/storperf/prepare.sh (renamed from integration/storperf/prepare.sh)29
-rw-r--r--tests/ci/storperf/qtip-storperf-docker-compose.yaml45
-rwxr-xr-xtests/ci/storperf/start_job.sh (renamed from integration/storperf/start_job.sh)1
-rw-r--r--tests/ci/storperf/storperf_requirements.txt (renamed from integration/storperf/storperf_requirments.txt)0
-rwxr-xr-xtests/ci/verify_storage.sh62
14 files changed, 176 insertions, 236 deletions
diff --git a/integration/storperf/README.md b/integration/storperf/README.md
deleted file mode 100644
index bdcc7e70..00000000
--- a/integration/storperf/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Usage
-
-Please make sure pip, docker and docker-compose are installer on your environment.
-
-1. Launch qtip and storperf containers.
-
- ```
- $ cd qtip/integration/storperf
- $ bash launch_containers.sh -t apex -n ""
-
- Arguments:
-
- -t : Installer type. For now only supports Apex.
- -n : Node name.
- ```
-
- Then you will get 5 containers:
-
- ```
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 2c079d5d88bc opnfv/qtip "/usr/bin/supervisord" 38 minutes ago Up 38 minutes 5000/tcp qtip
- 2032a16dab17 opnfv/storperf-httpfrontend "nginx -g 'daemon ..." 38 minutes ago Up 38 minutes 80/tcp, 0.0.0.0:5000->5000/tcp storperf-httpfrontend
- c0d3e2763d35 schickling/swagger-ui "sh run.sh" 39 minutes ago Up 38 minutes 80/tcp storperf-swaggerui
- 0e08a1968829 opnfv/storperf-reporting "python app.py" 39 minutes ago Up 38 minutes 0.0.0.0:5080->5000/tcp storperf-reporting
- b92967139d8e opnfv/storperf-master "/usr/bin/supervisord" 39 minutes ago Up 39 minutes 5000/tcp, 0.0.0.0:8000->8000/tcp storperf-master
- ```
-
-2. Prepare environment.
-
- ```
- $ docker exec qtip bash -c "/home/opnfv/repos/qtip/integration/storperf/prepare.sh"
- ```
-
- This command can create a flavor and upload a Ubuntu 16.04 image on OpenStack.
-
-3. Run storperf job.
-
- ```
- $ docker exec qtip bash -c "/home/opnfv/repos/qtip/integration/storperf/start_job.sh -s stack.json -j job.json"
-
- Arguments:
-
- -s : Stack configuration json file. If not given, default_stack.json will be used.
- -j : Storperf job configuration json file. If not given, default_job.json will be used.
- ```
diff --git a/integration/storperf/docker-compose.yaml b/integration/storperf/docker-compose.yaml
deleted file mode 100644
index 8cef5bc3..00000000
--- a/integration/storperf/docker-compose.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Dell EMC, ZTE 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
-##############################################################################
-
-version: '2'
-services:
-
-
- storperf-master:
- container_name: "storperf-master"
- image: opnfv/storperf-master
- ports:
- - "8000:8000"
- env_file: ${ENV_FILE}
- volumes:
- - ${CARBON_DIR}:/opt/graphite/storage/whisper
-
- storperf-reporting:
- container_name: "storperf-reporting"
- image: opnfv/storperf-reporting
- ports:
- - "5080:5000"
-
- storperf-swaggerui:
- container_name: "storperf-swaggerui"
- image: "schickling/swagger-ui"
-
- storperf-httpfrontend:
- container_name: "storperf-httpfrontend"
- image: opnfv/storperf-httpfrontend
- ports:
- - "5000:5000"
- links:
- - storperf-master
- - storperf-reporting
- - storperf-swaggerui
-
- qtip:
- container_name: qtip
- image: opnfv/qtip
- env_file: ${ENV_FILE}
- links:
- - storperf-httpfrontend
diff --git a/integration/storperf/launch_containers.sh b/integration/storperf/launch_containers.sh
deleted file mode 100755
index 3fcf8052..00000000
--- a/integration/storperf/launch_containers.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-#! /bin/bash
-##############################################################################
-# Copyright (c) 2017 ZTE 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
-##############################################################################
-
-usage(){
- echo "usage: $0 -t <installer_type> -n <node_name>" >&2
-}
-
-#Get options
-while getopts ":t:n:he" optchar; do
- case "${optchar}" in
- t) installer_type=${OPTARG} ;;
- n) node_name=${OPTARG} ;;
- h) usage
- exit 0
- ;;
- *) echo "Non-option argument: '-${OPTARG}'" >&2
- usage
- exit 2
- ;;
- esac
-done
-
-
-#set vars from env if not provided by user as options
-installer_type=${installer_type:-$INSTALLER_TYPE}
-node_name=${node_name:-$NODE_NAME}
-
-case $installer_type in
- apex)
- installer_ip=`sudo virsh domifaddr undercloud | grep ipv4 | awk '{print $4}' | cut -d/ -f1`
- ;;
- *)
-
- echo "Unsupported $installer_type. Cannot continue!"
- exit 1
-esac
-
-if [[ -z $WORKSPACE ]];then
- WORKSPACE=`pwd`
-fi
-
-git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng
-
-$WORKSPACE/releng/utils/fetch_os_creds.sh -i ${installer_type} -a ${installer_ip} -d $WORKSPACE/openrc
-
-grep "export" $WORKSPACE/openrc | sed "s/export //" > $WORKSPACE/admin.rc
-echo "INSTALLER_TYPE=${installer_type}" >> $WORKSPACE/admin.rc
-echo "INSTALLER_IP=${installer_ip}" >> $WORKSPACE/admin.rc
-echo "NODE_NAME=${node_name}" >> $WORKSPACE/admin.rc
-export ENV_FILE=$WORKSPACE/admin.rc
-
-export CARBON_DIR=$WORKSPACE/carbon/
-WWW_DATA_UID=33
-WWW_DATA_GID=33
-sudo install --owner=${WWW_DATA_UID} --group=${WWW_DATA_GID} -d "${CARBON_DIR}"
-
-clean_storperf_container()
-{
- docker-compose -f docker-compose.yaml down
-
- for name in qtip storperf-master storperf-swaggerui storperf-httpfrontend storperf-reporting
- do
- container=`docker ps -a -q -f name=$name`
- if [[ ! -z $container ]];then
- echo "Stopping any existing $name container"
- docker rm -fv $container
- fi
-
- image=`docker images opnfv/$name`
- if [[ ! -z $image ]];then
- echo "Deleteing any existing opnfv/$name image"
- docker rmi -f opnfv/$container_name
- fi
- done
-}
-
-launch_storperf_container()
-{
- docker-compose pull
- docker-compose -f docker-compose.yaml up -d
-
- echo "Waiting for StorPerf to become active"
-
- while [ $(curl -s -o /dev/null -I -w "%{http_code}" -X GET http://127.0.0.1:5000/api/v1.0/configurations) != "200" ]
- do
- sleep 1
- done
-}
-
-echo "Clean existing storperf containers"
-clean_storperf_container
-
-echo "Launch new storperf containers"
-launch_storperf_container \ No newline at end of file
diff --git a/integration/storperf/run_ci.sh b/integration/storperf/run_ci.sh
deleted file mode 100755
index ca67ac62..00000000
--- a/integration/storperf/run_ci.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#! /bin/bash
-##############################################################################
-# Copyright (c) 2017 ZTE 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
-##############################################################################
-
-
-source $WORKSPACE/integration/storperf/launch_containers.sh -t $INSTALLER_TYPE -n $NODE_NAME
-
-docker exec qtip bash -c "/home/opnfv/repos/qtip/integration/storperf/prepare.sh"
-
-docker exec qtip bash -c "/home/opnfv/repos/qtip/integration/storperf/start_job.sh"
-
-docker exec qtip bash -c "/home/opnfv/repos/qtip/integration/storperf/cleanup.sh"
-
-exit 0
-
-
diff --git a/tests/ci/experimental.sh b/tests/ci/experimental.sh
index c5572059..379e8602 100644
--- a/tests/ci/experimental.sh
+++ b/tests/ci/experimental.sh
@@ -1,3 +1,3 @@
#!/usr/bin/env bash
-source interation/storperf/run_ci.sh
+source tests/ci/verify_storage.sh
diff --git a/integration/storperf/cleanup.sh b/tests/ci/run_storage_qpi.sh
index 1aee1658..d4859d56 100755
--- a/integration/storperf/cleanup.sh
+++ b/tests/ci/run_storage_qpi.sh
@@ -7,8 +7,8 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-echo "Deleting image"
-openstack image delete "Ubuntu 16.04 x86_64"
+#TODO: These will be replaced by qtip cli
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-echo "Deteing flavor"
-openstack flavor delete storperf
+$script_dir/storperf/prepare.sh
+$script_dir/storperf/start_job.sh \ No newline at end of file
diff --git a/tests/ci/storperf/containers.sh b/tests/ci/storperf/containers.sh
new file mode 100755
index 00000000..1c48a62e
--- /dev/null
+++ b/tests/ci/storperf/containers.sh
@@ -0,0 +1,49 @@
+#! /bin/bash
+##############################################################################
+# Copyright (c) 2017 ZTE 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
+##############################################################################
+
+clean_containers()
+{
+ echo "Cleanup existing qtip and storperf containers"
+ docker-compose -f qtip-storperf-docker-compose.yaml down
+
+ for name in qtip storperf-master storperf-swaggerui storperf-httpfrontend storperf-reporting
+ do
+ container=$(docker ps -a | grep "opnfv/${name}:${DOCKER_TAG}" | awk '{print $1}')
+ if [[ ! -z "$container" ]]; then
+ echo "Removing any existing $name container"
+ docker rm -fv $container
+ fi
+
+ if [[ $(docker images opnfv/${name}:${DOCKER_TAG} | wc -l) -gt 1 ]]; then
+ echo "QTIP: Removing docker image opnfv/$name :$DOCKER_TAG..."
+ docker rmi -f opnfv/${name}:${DOCKER_TAG}
+ fi
+ done
+}
+
+
+launch_containers()
+{
+ echo "Launch new qtip and storperf containers"
+ docker-compose -f qtip-storperf-docker-compose.yaml pull
+ docker-compose -f qtip-storperf-docker-compose.yaml up -d
+
+ echo "Waiting for StorPerf to become active"
+
+ while [ $(curl -s -o /dev/null -I -w "%{http_code}" -X GET http://127.0.0.1:5000/api/v1.0/configurations) != "200" ]
+ do
+ sleep 1
+ done
+
+ container_id=$(docker ps | grep "opnfv/qtip:${DOCKER_TAG}" | awk '{print $1}' | head -1)
+ if [[ -z "$container_id" ]]; then
+ echo "The container opnfv/qtip with ID=${container_id} has not been properly started. Exiting..."
+ exit 1
+ fi
+}
diff --git a/integration/storperf/default_job.json b/tests/ci/storperf/default_job.json
index d0e1516d..4e5e2dfd 100644
--- a/integration/storperf/default_job.json
+++ b/tests/ci/storperf/default_job.json
@@ -6,7 +6,7 @@
"workload": "rw",
"metadata": {
"disk_type": "HDD",
- "scenario_name": "none",
+ "scenario_name": "",
"storage_node_count": 2,
"version": "",
"build_tag": "",
diff --git a/integration/storperf/default_stack.json b/tests/ci/storperf/default_stack.json
index 79d8fc46..79d8fc46 100644
--- a/integration/storperf/default_stack.json
+++ b/tests/ci/storperf/default_stack.json
diff --git a/integration/storperf/prepare.sh b/tests/ci/storperf/prepare.sh
index 345a80bc..fe0708ad 100755
--- a/integration/storperf/prepare.sh
+++ b/tests/ci/storperf/prepare.sh
@@ -7,34 +7,32 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-# See https://stackoverflow.com/questions/59895/getting-the-source-directory-of-a-bash-script-from-within
-script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-pip install -r $script_dir/storperf_requirements.txt
-
if [[ -z $WORKSPACE ]];then
WORKSPACE=`pwd`
fi
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+pip install -r $script_dir/storperf_requirements.txt
delete_storperf_stack()
{
- echo "Checking for an existing stack"
+ echo "Checking for storperf stack"
STACK_ID=`openstack stack list | grep StorPerfAgentGroup | awk '{print $2}'`
if [[ ! -z $STACK_ID ]];then
+ echo "Deleting any existing storperf stack"
openstack stack delete --yes --wait StorPerfAgentGroup
fi
}
-
load_ubuntu_image()
{
echo "Checking for Ubuntu 16.04 image in Glance"
- IMAGE=`openstack image list | grep "Ubuntu 16.04 x86_64"`
+ IMAGE=`openstack image list | grep "Ubuntu 16.04 x86_64" | awk '{print $2}'`
if [[ -z "$IMAGE" ]];then
cd $WORKSPACE
if [[ ! -f ubuntu-16.04-server-cloudimg-amd64-disk1.img ]];then
- echo "download Ubuntu 16.04 image"
+ echo "Download Ubuntu 16.04 image"
wget -q https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img
wget -q https://cloud-images.ubuntu.com/releases/16.04/release/MD5SUMS
checksum=$(cat ./MD5SUMS |grep ubuntu-16.04-server-cloudimg-amd64-disk1.img | md5sum -c)
@@ -44,31 +42,30 @@ load_ubuntu_image()
fi
fi
- echo "Create openstack image Ubuntu 16.04"
+ echo "Creating openstack image Ubuntu 16.04"
openstack image create "Ubuntu 16.04 x86_64" --disk-format qcow2 --public \
--container-format bare --file $WORKSPACE/ubuntu-16.04-server-cloudimg-amd64-disk1.img
+ else
+ openstack image show "Ubuntu 16.04 x86_64"
fi
-
- openstack image show "Ubuntu 16.04 x86_64"
}
-
create_storperf_flavor()
{
echo "Checking for StorPerf flavor"
openstack flavor delete storperf
- FLAVOR=`openstack flavor list | grep "storperf"`
+ FLAVOR=`openstack flavor list | grep "storperf" | awk '{print $2}'`
if [[ -z "$FLAVOR" ]];then
openstack flavor create storperf \
--id auto \
--ram 2048 \
--disk 4 \
--vcpus 2
+ else
+ openstack flavor show storperf
fi
- openstack flavor show storperf
}
-
delete_storperf_stack
load_ubuntu_image
create_storperf_flavor
diff --git a/tests/ci/storperf/qtip-storperf-docker-compose.yaml b/tests/ci/storperf/qtip-storperf-docker-compose.yaml
new file mode 100644
index 00000000..fc837139
--- /dev/null
+++ b/tests/ci/storperf/qtip-storperf-docker-compose.yaml
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2017 Dell EMC, ZTE 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
+##############################################################################
+
+version: '2'
+services:
+
+ storperf-master:
+ container_name: "storperf-master"
+ image: opnfv/storperf-master:${DOCKER_TAG}
+ ports:
+ - "8000:8000"
+ env_file: ${ENV_FILE}
+
+ storperf-reporting:
+ container_name: "storperf-reporting"
+ image: opnfv/storperf-reporting:${DOCKER_TAG}
+ ports:
+ - "5080:5000"
+
+ storperf-swaggerui:
+ container_name: "storperf-swaggerui"
+ image: "schickling/swagger-ui"
+
+ storperf-httpfrontend:
+ container_name: "storperf-httpfrontend"
+ image: opnfv/storperf-httpfrontend:${DOCKER_TAG}
+ ports:
+ - "5000:5000"
+ links:
+ - storperf-master
+ - storperf-reporting
+ - storperf-swaggerui
+
+ qtip:
+ container_name: qtip
+ image: opnfv/qtip:${DOCKER_TAG}
+ env_file: ${ENV_FILE}
+ links:
+ - storperf-httpfrontend \ No newline at end of file
diff --git a/integration/storperf/start_job.sh b/tests/ci/storperf/start_job.sh
index 672dabef..15785036 100755
--- a/integration/storperf/start_job.sh
+++ b/tests/ci/storperf/start_job.sh
@@ -42,6 +42,7 @@ nova_vm_mapping()
openstack server list --name storperf-agent -c ID -c Host --long -f json > $WORKSPACE/nova_vm.json
echo ==========================================================================
+ echo "Vms vs. Compute nodes"
cat $WORKSPACE/nova_vm.json
echo ==========================================================================
}
diff --git a/integration/storperf/storperf_requirments.txt b/tests/ci/storperf/storperf_requirements.txt
index 4a279ae5..4a279ae5 100644
--- a/integration/storperf/storperf_requirments.txt
+++ b/tests/ci/storperf/storperf_requirements.txt
diff --git a/tests/ci/verify_storage.sh b/tests/ci/verify_storage.sh
new file mode 100755
index 00000000..00120211
--- /dev/null
+++ b/tests/ci/verify_storage.sh
@@ -0,0 +1,62 @@
+#! /bin/bash -x
+##############################################################################
+# Copyright (c) 2017 ZTE 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
+##############################################################################
+
+WORKSPACE=${WORKSPACE:=`pwd`}
+
+export DOCKER_TAG=${DOCKER_TAG:-latest}
+export ENV_FILE=$WORKSPACE/env_file
+
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+case $INSTALLER_TYPE in
+ apex)
+ INSTALLER_IP=`sudo virsh domifaddr undercloud | grep ipv4 | awk '{print $4}' | cut -d/ -f1`
+ ;;
+esac
+
+git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng
+$WORKSPACE/releng/utils/fetch_os_creds.sh -i $INSTALLER_TYPE -a $INSTALLER_IP -d $WORKSPACE/openrc
+
+grep "export" $WORKSPACE/openrc | sed "s/export //" > $WORKSPACE/env_file
+echo "INSTALLER_TYPE=$INSTALLER_TYPE" >> $WORKSPACE/env_file
+echo "INSTALLER_IP=$INSTALLER_IP" >> $WORKSPACE/env_file
+echo "NODE_NAME=$NODE_NAME" >> $WORKSPACE/env_file
+echo "SCENARIO=$DEPLOY_SCENARIO" >> $WORKSPACE/env_file
+echo "TESTAPI_URL=$TESTAPI_URL" >> $WORKSPACE/env_file
+echo "DOCKER_TAG=$DOCKER_TAG" >> $WORKSPACE/env_file
+
+echo "--------------------ENV_FILE----------------------------"
+cat $WORKSPACE/env_file
+echo "--------------------------------------------------------"
+
+source $script_dir/storperf/containers.sh
+cd $script_dir/storperf
+clean_containers
+launch_containers
+
+container_id=$(docker ps | grep "opnfv/qtip:${DOCKER_TAG}" | awk '{print $1}' | head -1)
+
+if [[ "$INSTALLER_TYPE" == "apex" ]];then
+ if [ -f /root/.ssh/id_rsa ]; then
+ sudo chmod 600 /root/.ssh/id_rsa
+ sudo docker cp /root/.ssh/id_rsa ${container_id}:/root/.ssh/
+ fi
+fi
+
+QTIP_REPO=/home/opnfv/repos/qtip
+
+echo "QTIP: Copying current submit patch to the container ${container_id}"
+cd $WORKSPACE
+docker cp . ${container_id}:${QTIP_REPO}
+docker exec ${container_id} bash -c "cd ${QTIP_REPO} && pip install -U -e ."
+
+docker exec -t ${container_id} bash -c "bash ${QTIP_REPO}/tests/ci/run_storage_qpi.sh"
+
+echo "Verify storage done!"
+exit 0 \ No newline at end of file