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