0ee789a97e690a9e8350d2ac9670508c2292a7f0
[releng.git] / jjb / dovetail / dovetail-cleanup.sh
1 #!/bin/bash
2
3 [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
4
5 # clean up dependent project docker images, which has no containers and image tag None
6 clean_images=(opnfv/functest opnfv/yardstick opnfv/testapi mongo)
7 for clean_image in "${clean_images[@]}"; do
8     echo "Removing image $image_id, which has no containers and image tag is None"
9     dangling_images=($(docker images -f "dangling=true" | grep ${clean_image} | awk '{print $3}'))
10     if [[ -n ${dangling_images} ]]; then
11         for image_id in "${dangling_images[@]}"; do
12             docker rmi $image_id >${redirect}
13         done
14     fi
15 done
16
17 echo "Remove containers with image opnfv/dovetail:<None>..."
18 dangling_images=($(docker images -f "dangling=true" | grep opnfv/dovetail | awk '{print $3}'))
19 if [[ -n ${dangling_images} ]]; then
20     for image_id in "${dangling_images[@]}"; do
21         echo "Removing image $image_id with tag None and its related containers"
22         docker ps -a | grep $image_id | awk '{print $1}'| xargs docker rm -f >${redirect}
23         docker rmi $image_id >${redirect}
24     done
25 fi
26
27 echo "Cleaning up dovetail docker containers..."
28 if [[ ! -z $(docker ps -a | grep opnfv/dovetail) ]]; then
29     echo "Removing existing opnfv/dovetail containers..."
30     docker ps -a | grep opnfv/dovetail | awk '{print $1}' | xargs docker rm -f >${redirect}
31 fi
32
33 echo "Remove dovetail existing images if exist..."
34 if [[ ! -z $(docker images | grep opnfv/dovetail) ]]; then
35     echo "Docker images to remove:"
36     docker images | head -1 && docker images | grep opnfv/dovetail >${redirect}
37     image_tags=($(docker images | grep opnfv/dovetail | awk '{print $2}'))
38     for tag in "${image_tags[@]}"; do
39         echo "Removing docker image opnfv/dovetail:$tag..."
40         docker rmi opnfv/dovetail:$tag >${redirect}
41     done
42 fi