summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthewLi <matthew.lijun@huawei.com>2016-12-07 02:32:05 -0500
committerMatthewLi <matthew.lijun@huawei.com>2016-12-07 03:32:00 -0500
commit77a2c6708a784ac6af460d454d97faf9fd95312b (patch)
tree29582f6875ba1ed127bc1a286bf17e706326de15
parent8001178dffa20e6e28c93c6027d4e6be6a5cccd6 (diff)
dovetail: docker running method improvement
JIRA: DOVETAIL-152 Change-Id: Ib0ab73278b4a6dad83323647728fc2769cee3839 Signed-off-by: MatthewLi <matthew.lijun@huawei.com>
-rwxr-xr-xjjb/dovetail/dovetail-cleanup.sh7
-rwxr-xr-xjjb/dovetail/dovetail-run.sh39
2 files changed, 33 insertions, 13 deletions
diff --git a/jjb/dovetail/dovetail-cleanup.sh b/jjb/dovetail/dovetail-cleanup.sh
index 297222bb3..f215278db 100755
--- a/jjb/dovetail/dovetail-cleanup.sh
+++ b/jjb/dovetail/dovetail-cleanup.sh
@@ -1,20 +1,21 @@
#!/bin/bash
+
[[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
echo "Cleaning up docker containers/images..."
# Remove previous running containers if exist
if [[ ! -z $(docker ps -a | grep opnfv/dovetail) ]]; then
echo "Removing existing opnfv/dovetail containers..."
- docker ps -a | grep opnfv/dovetail | awk '{print $1}' | xargs docker rm -f >$redirect
+ docker ps -a | grep opnfv/dovetail | awk '{print $1}' | xargs docker rm -f >${redirect}
fi
# Remove existing images if exist
if [[ ! -z $(docker images | grep opnfv/dovetail) ]]; then
echo "Docker images to remove:"
- docker images | head -1 && docker images | grep opnfv/dovetail
+ docker images | head -1 && docker images | grep opnfv/dovetail >${redirect}
image_tags=($(docker images | grep opnfv/dovetail | awk '{print $2}'))
for tag in "${image_tags[@]}"; do
echo "Removing docker image opnfv/dovetail:$tag..."
- docker rmi opnfv/dovetail:$tag >$redirect
+ docker rmi opnfv/dovetail:$tag >${redirect}
done
fi
diff --git a/jjb/dovetail/dovetail-run.sh b/jjb/dovetail/dovetail-run.sh
index 918634740..a41a989fb 100755
--- a/jjb/dovetail/dovetail-run.sh
+++ b/jjb/dovetail/dovetail-run.sh
@@ -22,7 +22,7 @@ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then
# If production lab then creds may be retrieved dynamically
# creds are on the jumphost, always in the same folder
- labconfig="-v $LAB_CONFIG/admin-openrc:/home/opnfv/openrc"
+ labconfig="-v $LAB_CONFIG/admin-openrc:/home/opnfv/functest/conf/openstack.creds"
# If dev lab, credentials may not be the default ones, just provide a path to put them into docker
# replace the default one by the customized one provided by jenkins config
fi
@@ -32,25 +32,44 @@ if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FOR
sudo iptables -I FORWARD -j RETURN
fi
-opts="--privileged=true --rm"
+opts="--privileged=true -id"
envs="-e CI_DEBUG=${CI_DEBUG} \
-e INSTALLER_TYPE=${INSTALLER_TYPE} \
-e INSTALLER_IP=${INSTALLER_IP} \
-e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
- -e DEPLOY_TYPE=${DEPLOY_TYPE} \
- -v /var/run/docker.sock:/var/run/docker.sock \
- -v /home/opnfv/dovetail/results:/home/opnfv/dovetail/results"
+ -e DEPLOY_TYPE=${DEPLOY_TYPE}"
+results_envs="-v /var/run/docker.sock:/var/run/docker.sock \
+ -v /home/opnfv/dovetail/results:/home/opnfv/dovetail/results"
# Pull the image with correct tag
echo "Dovetail: Pulling image opnfv/dovetail:${DOCKER_TAG}"
docker pull opnfv/dovetail:$DOCKER_TAG >$redirect
-# Run docker
-echo "Dovetail: docker running..."
-sudo docker run ${opts} ${envs} ${labconfig} ${sshkey} opnfv/dovetail:${DOCKER_TAG} \
-"python ${DOVETAIL_REPO_DIR}/dovetail/run.py --testsuite ${TESTSUITE}"
+cmd="sudo docker run ${opts} ${envs} ${results_envs} ${labconfig} ${sshkey} \
+ opnfv/dovetail:${DOCKER_TAG} /bin/bash"
+echo "Dovetail: running docker run command: ${cmd}"
+${cmd} >${redirect}
+sleep 5
+container_id=$(docker ps | grep "opnfv/dovetail:${DOCKER_TAG}" | awk '{print $1}' | head -1)
+echo "Container ID=${container_id}"
+if [ -z ${container_id} ]; then
+ echo "Cannot find opnfv/dovetail container ID ${container_id}. Please check if it is existing."
+ docker ps -a
+ exit 1
+fi
+echo "COntainer Start: docker start ${container_id}"
+docker start ${container_id}
+sleep 5
+docker ps >${redirect}
+if [ $(docker ps | grep "opnfv/dovetail:${DOCKER_TAG}" | wc -l) == 0 ]; then
+ echo "The container opnfv/dovetail with ID=${container_id} has not been properly started. Exiting..."
+ exit 1
+fi
+
+exec_cmd="python ${DOVETAIL_REPO_DIR}/dovetail/run.py --testsuite ${TESTSUITE}"
+echo "Container exec command: ${exec_cmd}"
+docker exec ${container_id} ${exec_cmd}
-echo "Dovetail: store results..."
sudo cp -r ${DOVETAIL_REPO_DIR}/results ./
#To make sure the file owner is jenkins, for the copied results files in the above line
#if not, there will be error when next time to wipe workspace