X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=blobdiff_plain;f=shell%2Fopenstack-protect-in-use-images.sh;h=0d1624ca92c249512275df4226d3b6ef5b05d72f;hb=refs%2Fchanges%2F50%2F72650%2F2;hp=08727f61cd0eb8ad62a272894afd180a2f0ef34f;hpb=95c8dba35b02432e6163cc3b9cca0561271d5c4c;p=releng%2Fglobal-jjb.git diff --git a/shell/openstack-protect-in-use-images.sh b/shell/openstack-protect-in-use-images.sh index 08727f61..0d1624ca 100644 --- a/shell/openstack-protect-in-use-images.sh +++ b/shell/openstack-protect-in-use-images.sh @@ -15,23 +15,54 @@ # getting purged by the image cleanup script. # This script assumes images prefixed with the string "ZZCI - " are ci-managed # images. +set -eu -o pipefail echo "---> Protect in-use images" - os_cloud="${OS_CLOUD:-vex}" -set -eu -o pipefail +# shellcheck disable=SC1090 +source ~/lf-env.sh + +lf-activate-venv --python python3 "lftools[openstack]" \ + kubernetes \ + python-heatclient \ + python-openstackclient + +images=() +while read -r -d $'\n' ; do + images+=("$REPLY") +done < <(grep -r IMAGE_NAME --include \*.cfg jenkins-config \ + | awk -F'=' '{print $2}' \ + | sort -u) + +jjbimages=() +while read -r -d $'\n' ; do + jjbimages+=("$REPLY") +done < <(grep -r 'ZZCI - ' --include \*.yaml jjb \ + | awk -F": " '{print $3}' \ + | sed -e "s:'::;s:'$::;/^$/d" -e 's/^"//' -e 's/"$//' \ + | sort -u) -conf_images=("$(grep -r IMAGE_NAME --include \*.cfg jenkins-config \ - | awk -F'=' '{print $2}' | sort -u)") -# If there are no yaml files the 'grep' will fail, which is OK -yaml_images=("$(grep -r 'ZZCI - ' --include \*.yaml jjb \ - | awk -F": " '{print $3}' | sed "s:'::;s:'$::;/^$/d" \ - | sort -u)") || true -readarray -t images <<< "$(for i in "${conf_images[@]}" "${yaml_images[@]}"; do \ - echo "$i"; done | sort)" +if ! [[ ${#images[@]} -eq 0 ]]; then + echo "INFO: There are images to protect defined in jenkins-config." +else + echo "ERROR: No images detected in the jenkins-config dir." + exit 1 +fi + +if ! [[ ${#jjbimages[@]} -eq 0 ]]; then + echo "INFO: There are additional images to protect in the jjb dir." + images=("${images[@]}" "${jjbimages[@]}") + #dedupe + readarray -t images < <(printf '%s\n' "${images[@]}" | sort -u) +fi + + +echo "INFO: Protecting the following images:" +for image in "${images[@]}"; do + echo "$image" +done for image in "${images[@]}"; do - [[ -z $image ]] && continue os_image_protected=$(openstack --os-cloud "$os_cloud" \ image show "$image" -f value -c protected) echo "Protected setting for $image: $os_image_protected"