f6f99db4a2
Allow remove all kolla images Allow remove specific kolla version images Allow remove dangling images Allow remove single images, all images matched Usage examples: * cleanup-images --all - Remove all kolla images * cleanup-images --image-version 4.0.0 - Remove all images matching 4.0.0 kolla_version * cleanup-images --dangling - Remove all dangling images * cleanup-images --image nova - Remove all nova images * cleanup-images --image nova-scheduler - Only remove nova-scheduler image Implements: blueprint add-cleanup-images-cli-options Change-Id: I997272098879350e13e0ac00762ae3485e618355
79 lines
1.8 KiB
Bash
Executable File
79 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Move to top level directory
|
|
REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')")
|
|
cd "$(dirname "$REAL_PATH")/.."
|
|
|
|
. tools/validate-docker-execute.sh
|
|
|
|
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 <<EOF
|
|
Usage: $0 COMMAND [options]
|
|
|
|
Options:
|
|
--all, -a Remove all kolla images
|
|
--dangling Remove orphaned images
|
|
--help, -h Show this usage information
|
|
--image, -i <image> Delete selected images
|
|
--image-version <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="$(docker images -a --filter "label=kolla_version" --format "{{.ID}}")"
|
|
shift
|
|
;;
|
|
|
|
(--dangling)
|
|
KOLLA_IMAGES="$(docker images -a --filter dangling=true --format "{{.ID}}")"
|
|
shift
|
|
;;
|
|
|
|
(--image|-i)
|
|
KOLLA_IMAGES="$(docker images -a --filter "label=kolla_version" --format "{{.Repository}}\t{{.ID}}" | grep -E "$2" | awk '{print $2}')"
|
|
shift 2
|
|
;;
|
|
|
|
(--image-version)
|
|
KOLLA_IMAGES="$(docker images -a --filter "label=kolla_version=${2}" --format "{{.ID}}")"
|
|
shift 2
|
|
;;
|
|
|
|
(--help|-h)
|
|
usage
|
|
shift
|
|
exit 0
|
|
;;
|
|
|
|
(--)
|
|
shift
|
|
break
|
|
;;
|
|
|
|
esac
|
|
|
|
CMD="docker rmi -f $@ $KOLLA_IMAGES"
|
|
process_cmd
|