aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzhihui wu <wu.zhihui1@zte.com.cn>2017-05-11 14:07:32 +0800
committerzhihui wu <wu.zhihui1@zte.com.cn>2017-05-11 16:54:10 +0800
commit9be42d3ab9702e5a44132161fa4d86e5a47d258f (patch)
treef5ff1a384cb636f2cea3d66fe427a411e9b58ebd
parentdae8de048d633997b5c96a773d29f52d65af462f (diff)
The script for CI
- The script includes all steps to trigger QTIP test On CI. - Add a dependency iputils-ping for command "ping" Change-Id: Ia7712cc9eedf227686896e2a38f3b8baf03d7397 Signed-off-by: zhihui wu <wu.zhihui1@zte.com.cn>
-rw-r--r--docker/Dockerfile1
-rw-r--r--tests/ci/run_ci.sh91
2 files changed, 92 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 16e552f1..027fd74a 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -27,6 +27,7 @@ RUN apt-get update && apt-get install -y \
python-pip \
python-setuptools \
rsync \
+ iputils-ping \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
diff --git a/tests/ci/run_ci.sh b/tests/ci/run_ci.sh
new file mode 100644
index 00000000..c26ff58c
--- /dev/null
+++ b/tests/ci/run_ci.sh
@@ -0,0 +1,91 @@
+#!/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
+##############################################################################
+set -e
+
+usage(){
+ echo "usage: $0 -t <installer_type> -i <installer_ip> -p <pod_name> -s <scenario>" >&2
+}
+
+verify_connectivity(){
+ local ip=$1
+ echo "Verifying connectivity to $ip..."
+ for i in $(seq 0 10); do
+ if ping -c 1 -W 1 $ip > /dev/null; then
+ echo "$ip is reachable!"
+ return 0
+ fi
+ sleep 1
+ done
+ error "Can not talk to $ip."
+}
+
+#Getoptions
+while getopts ":t:i:p:s:he" optchar; do
+ case "${optchar}" in
+ t) installer_type=${OPTARG} ;;
+ i) installer_ip=${OPTARG} ;;
+ p) pod_name=${OPTARG} ;;
+ s) scenario=${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}
+installer_ip=${installer_ip:-$INSTALLER_IP}
+
+sshoptions="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
+
+verify_connectivity ${installer_ip}
+
+ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa -q
+
+# ssh-copy-id publickey to installer
+case "$installer_type" in
+ fuel)
+ sshpass -p r00tme ssh-copy-id $sshoptions ${installer_ip}
+ ;;
+ *)
+ echo "Unkown installer $installer_type specified"
+ exit 1
+ ;;
+esac
+
+cd /home/opnfv
+
+qtip workspace create --pod ${pod_name} --installer ${installer_type} \
+--master-host ${installer_ip} --scenario ${scenario} workspace
+
+cd /home/opnfv/workspace/
+
+ansible-playbook setup.yml
+eval `ssh-agent`
+ansible-playbook run.yml
+ansible-playbook teardown.yml
+
+# Remove ssh public key from installer
+case "$installer_type" in
+ fuel)
+ publickey=$(sed -r 's/\//\\\//g' /root/.ssh/id_rsa.pub)
+ ssh $sshoptions root@${installer_ip} "sed -i '/$publickey/d' /root/.ssh/authorized_keys"
+ ;;
+ *)
+ echo "Not support $installer_type."
+ exit 1
+ ;;
+esac
+
+echo "Qtip done!"
+exit 0 \ No newline at end of file