github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+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 # This is required for older stacks where the delete-security-group API call was not implemented recursively by the CC. 38 if [[ $1 == "unbind-first" ]]; then 39 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 40 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 41 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 42 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 43 fi 44 cf security-groups | grep -i "integration-sec-group" | awk '{print $2}' | xargs_func cf delete-security-group -f 45 46 cf isolation-segments | grep -i ^integration-isolation-segment | xargs_func cf delete-isolation-segment -f 47 48 cf service-brokers | grep -i -e ^integration-service-broker- -e CATS- | awk '{print $1}' | xargs_func cf delete-service-broker -f 49 cf quotas | grep -i -e ^integration-quota -e CATS- | awk '{print $1}' | xargs_func cf delete-quota -f 50 cf orgs | grep -i -e ^integration-org -e CATS- | xargs_func cf delete-org -f 51 52 cf delete-org -f temp-org 53 54 if [[ $(cf version) == *"version 6"* ]]; then 55 cf buildpacks | awk '/INTEGRATION-BUILDPACK/ { if(NF >= 6) { printf("cf delete-buildpack -f %s -s %s\n", $1, $6); } else { printf("cf delete-buildpack -f %s\n", $1); }}' 56 else 57 cf buildpacks | awk '/INTEGRATION-BUILDPACK/ { if(NF >= 6) { printf("cf delete-buildpack -f %s -s %s\n", $2, $3); } else { printf("cf delete-buildpack -f %s\n", $2); }}' 58 fi | bash 59 60 if [[ $(cf version) == *"version 6"* ]]; then 61 stack_version=2 62 else 63 stack_version=3 64 fi 65 for stack in $(cf stacks | awk '/INTEGRATION-STACK/ { print $1 }'); do 66 echo Deleting $stack 67 cf curl -X DELETE "/v${stack_version}/stacks/$(cf stack --guid $stack)" 68 done 69 70 CF_USERS=$(cf curl /v2/users | grep total_results | grep -o '[0-9]\+') 71 USER_PAGES=$(( $CF_USERS / 50 + 1)) 72 73 for ((i=1; i<=${USER_PAGES}; i++)) ; do 74 cf curl "/v2/users?results-per-page=50&page=${i}" | \ 75 jq -r .resources[].entity.username | \ 76 grep -i -e ^integration-user -e CATS- | \ 77 xargs_func cf delete-user -f || echo 78 done 79