aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYujun Zhang <zhang.yujunz@zte.com.cn>2017-05-13 01:52:55 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-05-13 01:52:55 +0000
commit8522b38a1b06bfe3c334c4d70d365058b7bf03ca (patch)
tree689518501214841f44d684efd272e818dbb5576c
parent79747348572401f0cf48f141f054cc4203d6d846 (diff)
parent9be42d3ab9702e5a44132161fa4d86e5a47d258f (diff)
Merge "The script for CI"
-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