clean_account.sh 1006 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. set -e
  3. pushd $(dirname $BASH_SOURCE) > /dev/null
  4. CUR_DIR=$(pwd -P)
  5. popd > /dev/null
  6. ACCOUNT=$1
  7. if [ -z "$ACCOUNT" ]; then
  8. echo "Usage: $0 <cloud-acount-id-or-name>"
  9. exit 1
  10. fi
  11. ACCOUNT_ID=$(climc cloud-account-show $ACCOUNT | grep -w " id " | awk '{print $4}')
  12. ACCOUNT_NAME=$(climc cloud-account-show $ACCOUNT | grep -w " name " | awk '{print $4}')
  13. if [ -z "$ACCOUNT_ID" ]; then
  14. echo "Cloud account $ACCOUNT not found"
  15. exit 1
  16. fi
  17. echo "Ready to clean cloud account $ACCOUNT_NAME($ACCOUNT_ID)..."
  18. echo "1. Disable cloud account $ACCOUNT_NAME($ACCOUNT_ID) ..."
  19. climc cloud-account-disable $ACCOUNT_ID
  20. echo "2. Clean all providers ..."
  21. for provider_id in $(climc cloud-provider-list --account $ACCOUNT_ID --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  22. do
  23. echo "### to clean cloud provider $provider_id ..."
  24. $CUR_DIR/clean_provider.sh $provider_id
  25. done
  26. echo "3. Delete cloud account ..."
  27. climc cloud-account-delete $ACCOUNT_ID