clean_provider.sh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #!/bin/bash
  2. set -e
  3. pushd $(dirname $BASH_SOURCE) > /dev/null
  4. CUR_DIR=$(pwd -P)
  5. popd > /dev/null
  6. PROVIDER=$1
  7. if [ -z "$PROVIDER" ]; then
  8. echo "Usage: $0 <cloud-provider-id-or-name>"
  9. exit 1
  10. fi
  11. PROVIDER_ID=$(climc cloud-provider-show $PROVIDER | grep -w " id " | awk '{print $4}')
  12. PROVIDER_NAME=$(climc cloud-provider-show $PROVIDER | grep -w " name " | awk '{print $4}')
  13. if [ -z "$PROVIDER_ID" ]; then
  14. echo "Cloud provider $PROVIDER not found"
  15. exit 1
  16. fi
  17. echo "Ready to clean cloud provider $PROVIDER_NAME($PROVIDER_ID)..."
  18. echo "1. Disable cloud provider $PROVIDER_NAME($PROVIDER_ID) ..."
  19. climc cloud-provider-disable $PROVIDER_ID
  20. echo "2. Clean all hosts ..."
  21. for hostid in $(climc host-list --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  22. do
  23. $CUR_DIR/clean_host.sh $hostid
  24. done
  25. echo "3. Clean all loadbalancer ..."
  26. for lbid in $(climc lb-list --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  27. do
  28. $CUR_DIR/clean_loadbalancer.sh $lbid
  29. done
  30. echo "4. Clean all loadbalancer acl ..."
  31. for lbaclid in $(climc lbacl-list --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  32. do
  33. $CUR_DIR/clean_loadbalancer_acl.sh $lbaclid
  34. done
  35. echo "5. Clean all loadbalancer certificate ..."
  36. for lbcertid in $(climc lbcert-list --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  37. do
  38. $CUR_DIR/clean_loadbalancer_certificate.sh $lbcertid
  39. done
  40. echo "6. Clean all vpc ..."
  41. for vpcid in $(climc vpc-list --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  42. do
  43. $CUR_DIR/clean_vpc.sh $vpcid
  44. done
  45. echo "7. Clean all eips ..."
  46. for eipid in $(climc eip-list --admin --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  47. do
  48. $CUR_DIR/clean_eip.sh $eipid
  49. done
  50. echo "8. Clean all snapshots ..."
  51. for snapid in $(climc snapshot-list --admin --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  52. do
  53. echo "to clean snapshot $snapid ..."
  54. $CUR_DIR/clean_snapshot.sh $snapid
  55. done
  56. echo "9. Clean all storagecache ..."
  57. for cacheid in $(climc storage-cache-list --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  58. do
  59. $CUR_DIR/clean_storagecache.sh $cacheid
  60. done
  61. echo "10. Clean all storages ..."
  62. for storeid in $(climc storage-list --manager $PROVIDER_ID --admin --show-emulated --limit 0 | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
  63. do
  64. $CUR_DIR/clean_storage.sh $storeid
  65. done
  66. echo "Delete cloud provider ..."
  67. climc cloud-provider-delete $PROVIDER_ID