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