Skip to content

Instantly share code, notes, and snippets.

@drnic
Created July 23, 2014 02:42
Show Gist options
  • Save drnic/e1fdce183435e9a27db9 to your computer and use it in GitHub Desktop.
Save drnic/e1fdce183435e9a27db9 to your computer and use it in GitHub Desktop.
Script to bulk delete apps from Cloud Foundry that have the same name (via regexp) - useful for cleaning up training environments
$ chmod +x apps_bulk_delete.sh
$ ./apps_bulk_delete.sh
USAGE: ./apps_bulk_delete.sh NAME_FILTER

$ ./apps_bulk_delete.sh spork
Deleting sporks-v1... done.
Deleting sporks... done.
Deleting sporks-v2... done.
Deleting sporks-v1... done.
Deleting sporks-v1... done.
Deleting sporks... done.
Deleting sporks-v2... done.
Deleting sporks-v2... done.
Deleting sporks... done.
Deleting sporks-v1... done.
...
#!/bin/bash
export name_filter=$1
shift
if [[ "${name_filter}X" == "X" ]]; then
echo 'USAGE: ./apps_bulk_delete.sh NAME_FILTER'
exit 1
fi
if [[ "$(which jazor)X" == "X" ]]; then
echo "Install jazor:"
echo " Try:"
echo " gem install jazor"
echo " rvmsudo gem install jazor"
exit 1
fi
if [[ "$(which cf)X" == "X" ]]; then
echo "Install cf:"
echo " Visit: https://github.com/cloudfoundry/cli/releases"
exit 1
fi
apps_count=0
next_url="/v2/apps"
while [[ "${next_url}X" != "X" ]]; do
cf curl /v2/apps |
jazor 'resources.select {|app| app.entity.name =~ /#{ENV["name_filter"]}/ }.each {|app| print "Deleting #{app.entity.name}... "; `cf curl -X DELETE #{app.metadata.url}`; puts "done." }'
apps_count=$(($apps_count + $(cf curl $next_url | jazor resources.count)))
next_url=$(cf curl $next_url | jazor next_url)
done
echo $apps_count
@rahulsrivastava71
Copy link

i need help running the above script.

@rahulsrivastava71
Copy link

i need to delete apps from cloud foundry using script how can i achieve it, can you please help me out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment