#!/usr/bin/env bash # Move to top level directory REAL_PATH=$(python -c "import os;print os.path.realpath('$0')") cd "$(dirname "$REAL_PATH")/.." function process_cmd { if [[ -z "$KOLLA_IMAGES" ]]; then echo "No images to cleanup, exit now." exit 0 fi $CMD if [[ $? -ne 0 ]]; then echo "Command failed $CMD" exit 1 fi } function usage { cat < Delete selected images --image-version Set Kolla image version EOF } SHORT_OPTS="ahi:" LONG_OPTS="all,dangling,help,image:,image-version:" ARGS=$(getopt -o "${SHORT_OPTS}" -l "${LONG_OPTS}" --name "$0" -- "$@") || { usage >&2; exit 2; } eval set -- "$ARGS" case "$1" in (--all|-a) KOLLA_IMAGES="$(sudo docker images -a --filter "label=kolla_version" --format "{{.ID}}")" shift ;; (--dangling) KOLLA_IMAGES="$(sudo docker images -a --filter dangling=true --format "{{.ID}}")" shift ;; (--image|-i) KOLLA_IMAGES="$(sudo docker images -a --filter "label=kolla_version" --format "{{.Repository}}\t{{.ID}}" | grep -E "$2" | awk '{print $2}')" shift 2 ;; (--image-version) KOLLA_IMAGES="$(sudo docker images -a --filter "label=kolla_version=${2}" --format "{{.ID}}")" shift 2 ;; (--help|-h) usage shift exit 0 ;; (--) echo -e "Error: no argument passed\n" usage exit 0 ;; esac CMD="sudo docker rmi -f $@ $KOLLA_IMAGES" process_cmd