Merge "Adding POSCA build job for Bottlenecks"
[releng.git] / jjb / releng / testapi-docker-deploy.sh
1 #!/bin/bash
2
3 function check() {
4
5     # Verify hosted
6     sleep 5
7     cmd=`curl -s --head  --request GET http://testresults.opnfv.org/auto/swagger/spec | grep '200 OK' > /dev/null`
8     rc=$?
9     echo $rc
10
11     if [[ $rc == 0 ]]
12     then
13         return 0
14     else
15         return 1
16     fi
17
18 }
19
20 echo "Getting contianer Id of the currently running one"
21 contId=$(sudo docker ps | grep "opnfv/testapi:latest" | awk '{print $1}')
22
23 echo "Pulling the latest image"
24 sudo docker pull opnfv/testapi:latest
25
26 echo "Deleting old containers of opnfv/testapi:old"
27 sudo docker ps -a | grep "opnfv/testapi" | grep "old" | awk '{print $1}' | xargs -r sudo docker rm -f
28
29 echo "Deleting old images of opnfv/testapi:latest"
30 sudo docker images | grep "opnfv/testapi" | grep "old" | awk '{print $3}' | xargs -r sudo docker rmi -f
31
32
33 if [[ -z "$contId" ]]
34 then
35     echo "No running testapi container"
36
37     echo "Removing stopped testapi containers in the previous iterations"
38     sudo docker ps -f status=exited | grep "opnfv_testapi" | awk '{print $1}' | xargs -r sudo docker rm -f
39 else
40     echo $contId
41
42     echo "Get the image id of the currently running conatiner"
43     currImgId=$(sudo docker ps | grep "$contId" | awk '{print $2}')
44     echo $currImgId
45
46     if [[ -z "$currImgId" ]]
47     then
48         echo "No image id found for the container id"
49         exit 1
50     fi
51
52     echo "Changing current image tag to old"
53     sudo docker tag "$currImgId" opnfv/testapi:old
54
55     echo "Removing stopped testapi containers in the previous iteration"
56     sudo docker ps -f status=exited | grep "opnfv_testapi" | awk '{print $1}' | xargs -r sudo docker rm -f
57
58     echo "Renaming the running container name to opnfv_testapi as to identify it."
59     sudo docker rename $contId opnfv_testapi
60
61     echo "Stop the currently running container"
62     sudo docker stop $contId
63 fi
64
65 echo "Running a container with the new image"
66 sudo docker run -dti -p "8711:8000" -e "mongodb_url=mongodb://172.17.0.1:27017" -e "swagger_url=http://testresults.opnfv.org/auto" opnfv/testapi:latest
67
68 if check; then
69     echo "TestResults Hosted."
70 else
71     echo "TestResults Hosting Failed"
72     if [[ $(sudo docker images | grep "opnfv/testapi" | grep "old" | awk '{print $3}') ]]; then
73         echo "Running old Image"
74         sudo docker run -dti -p "8711:8000" -e "mongodb_url=mongodb://172.17.0.1:27017" -e "swagger_url=http://testresults.opnfv.org/auto" opnfv/testapi:old
75         exit 1
76     fi
77 fi
78
79 # Echo Images and Containers
80 sudo docker images
81 sudo docker ps -a