-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path080-delete-image.sh
executable file
·55 lines (50 loc) · 1.45 KB
/
080-delete-image.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
set -e
set -o pipefail
success=false
trap check_finish EXIT
check_finish() {
if [ $success = true ]; then
echo '>>>' success
else
echo "FAILED"
fi
}
image_deleted() {
local image_id=$1
local images_json=$(ibmcloud is images --visibility private --output json)
image_json=$(jq -e '.[]|select(.id == "'$image_id'")' <<< "$images_json")
ret=$?
if [ $ret = 4 ]; then
return 0; #true not found, it has been deleted
fi
if [ $ret != 0 ]; then
echo jq failed to parse the following string: "$images_json"
exit 1
fi
local status
status=$(jq -r .status <<< "$image_json")
case $status in
available|deleting|pending) false ;;
*) echo expecting status available, deleting or pending got $status; exit 1 ;;
esac
false
}
this_dir=$(dirname "$0")
source $this_dir/shared.sh
image_name=$TF_VAR_image_name
echo '>>>' finding image $image_name
images_json=$(ibmcloud is images --resource-group-name $TF_VAR_resource_group_name --output json)
if ! image_json=$(jq -e -r '.[]|select(.name == "'$image_name'")' <<< "$images_json"); then
echo '>>>' image $image_name not found
else
image_id=$(jq -r .id <<< "$image_json")
image_status=$(jq -r .status <<< "$image_json")
if [ $image_status = available ]; then
echo '>>>' deleting image $image_id
ibmcloud is image-delete --force $image_id
fi
echo '>>>' waiting for image, $image_id, to be deleted
wait_for_command "image_deleted $image_id"
fi
success=true