github.com/nimakaviani/cli@v6.37.1-0.20180619223813-e734901a73fa+incompatible/bin/cleanup-integration (about) 1 #!/usr/bin/env bash 2 3 set -e 4 5 xargs_func () { 6 if [[ $(uname) == "Darwin" ]]; then 7 xargs -n 1 -P 15 $@ 8 else 9 xargs -n 1 -P 15 -r $@ 10 fi 11 } 12 13 CF_API=${CF_INT_API:-"api.bosh-lite.com"} 14 export CF_USERNAME=${CF_INT_USERNAME:-"admin"} 15 export CF_PASSWORD=${CF_INT_PASSWORD:-"admin"} 16 17 export CF_CLI_EXPERIMENTAL=true 18 export CF_DIAL_TIMEOUT=15 19 20 if [[ -z $SKIP_SSL_VALIDATION || $SKIP_SSL_VALIDATION == "true" ]]; then 21 cf api $CF_API --skip-ssl-validation 22 else 23 cf api $CF_API 24 fi 25 26 cf auth 27 28 # we don't want the pipeline job to fail because there's a high chance of 29 # failure when running commands in parallel 30 set +e 31 32 cf create-org temp-org 33 cf target -o temp-org 34 35 cf domains | egrep -i ^\(sub.\)?integration- | cut -d " " -f1 | xargs_func cf delete-shared-domain -f 36 37 if [[ $1 == "unbind-first" ]]; then 38 cf security-groups | grep -i "integration-sec-group" | grep -v \<all\>| grep -i staging | awk '{print $2 " " $3 " " $4}' | uniq - | xargs -n 3 -P 15 -r cf unbind-security-group --lifecycle staging 39 cf security-groups | grep -i "integration-sec-group" | grep -v \<all\>| grep -i staging | awk '{print $1 " " $2 " " $3}' | uniq - | xargs -n 3 -P 15 -r cf unbind-security-group --lifecycle staging 40 cf security-groups | grep -i "integration-sec-group" | grep -v \<all\>| grep -i running | awk '{print $2 " " $3 " " $4}' | uniq - | xargs -n 3 -P 15 -r cf unbind-security-group --lifecycle running 41 cf security-groups | grep -i "integration-sec-group" | grep -v \<all\>| grep -i running | awk '{print $1 " " $2 " " $3}' | uniq - | xargs -n 3 -P 15 -r cf unbind-security-group --lifecycle running 42 fi 43 cf security-groups | grep -i "integration-sec-group" | awk '{print $2}' | xargs_func cf delete-security-group -f 44 45 cf isolation-segments | grep -i ^integration-isolation-segment | xargs_func cf delete-isolation-segment -f 46 47 cf service-brokers | grep -i -e ^integration-service-broker- -e CATS- | awk '{print $1}' | xargs_func cf delete-service-broker -f 48 cf quotas | grep -i -e ^integration-quota -e CATS- | awk '{print $1}' | xargs_func cf delete-quota -f 49 cf orgs | grep -i -e ^integration-org -e CATS- | xargs_func cf delete-org -f 50 51 cf delete-org -f temp-org 52 53 for stack in $(cf stacks | tail -n +5 | awk '{print $1}'); do 54 cf buildpacks | \ 55 grep -i ^integration-buildpack | \ 56 grep -i -e \\s${stack}\\s | \ 57 awk '{print $1}' | \ 58 xargs_func cf delete-buildpack -f -s $stack 59 done 60 cf buildpacks | grep -i -e ^integration-buildpack | awk '{print $1}' | xargs_func cf delete-buildpack -f 61 62 CF_USERS=$(cf curl /v2/users | grep total_results | grep -o '[0-9]\+') 63 USER_PAGES=$(( $CF_USERS / 50 + 1)) 64 65 for ((i=1; i<=${USER_PAGES}; i++)) ; do 66 cf curl "/v2/users?results-per-page=50&page=${i}" | \ 67 jq -r .resources[].entity.username | \ 68 grep -i -e ^integration-user -e CATS- | \ 69 xargs_func cf delete-user -f || echo 70 done 71