Skip to content

Instantly share code, notes, and snippets.

@nacx
Created June 16, 2011 11:00
Show Gist options
  • Save nacx/1029046 to your computer and use it in GitHub Desktop.
Save nacx/1029046 to your computer and use it in GitHub Desktop.
Cleanup a NexentaStor device
#!/usr/bin/env python
import sys
import NZA
def delete_volumes_in_pool(pool):
print "Removing volumes in pool %s..." % pool
volumes = NZA.nms.zvol.get_names_by_prop('volume_name', pool, '')
for volume in volumes:
try:
name = NZA.nms.zvol.get_child_prop(volume, 'name')
NZA.nms.zvol.destroy(name, "-R")
except:
pass
def delete_target_groups():
print "Removing target groups..."
tgs = NZA.nms.stmf.list_targetgroups()
for tg in tgs:
try:
NZA.nms.stmf.destroy_targetgroup(tg)
except:
pass
def delete_targets():
print "Removing targets..."
targets = NZA.nms.iscsitarget.get_names('')
for target in targets:
try:
NZA.nms.iscsi.remove_target(target)
except:
pass
def delete_initiator_groups():
print "Removing initiator groups..."
igs = NZA.nms.stmf.list_hostgroups()
for ig in igs:
try:
NZA.nms.stmf.destroy_hostgroup(ig)
except:
pass
def delete_initiators():
print "Removing initiators..."
initiators = NZA.nms.iscsitarget.list_initiators()
for initiator in initiators:
try:
name = initiator["initiator_name"]
NZA.nms.iscsitarget.delete_initiator(name)
except:
pass
if __name__ == '__main__':
if NZA.initialize() != True:
sys.exit(1)
pools = NZA.nms.volume.get_names('')
for pool in pools:
pool_name = NZA.nms.volume.get_child_prop(pool, 'name')
delete_volumes_in_pool(pool_name)
delete_targets()
delete_target_groups()
delete_initiators()
delete_initiator_groups()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment