Skip to content

Instantly share code, notes, and snippets.

@weldpua2008
Created August 15, 2018 04:47
Show Gist options
  • Save weldpua2008/8a26e2c824beacb8b96b2d0ed1a0c44c to your computer and use it in GitHub Desktop.
Save weldpua2008/8a26e2c824beacb8b96b2d0ed1a0c44c to your computer and use it in GitHub Desktop.
Delete snapshot from DigitalOcean by name
#!/usr/bin/env python
API_KEY = ''
import argparse
import sys
from dopy.manager import DoManager
if sys.version < '3':
integer_types = (int, long,)
else:
integer_types = (int,)
def remove_snapshot(do, do_id):
if isinstance(do_id, integer_types) or isinstance(do_id, float):
status = do.request('/snapshots/%s' % do_id, method='DELETE')
return status
else:
for sn in do.request('/snapshots')['snapshots']:
if sn['name'] == do_id:
status = do.request('/snapshots/%s' % sn['id'], method='DELETE')
return status
break
elif sn['name'].lower() == do_id.lower():
status = do.request('/snapshots/%s' % sn['id'], method='DELETE')
return status
break
elif str(sn['id']) == str(do_id):
status = do.request('/snapshots/%s' % sn['id'], method='DELETE')
return status
break
raise ValueError("Failed delete a snapshot")
if __name__ == '__main__':
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-s', '--snapshotname', action="store", help="Snapshot", required=True)
args = parser.parse_args()
try:
do = DoManager(None, API_KEY, api_version=2)
print remove_snapshot(do, args.snapshotname)
except Exception as e:
print("Error: %s" % e)
sys.exit(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment