Simple NexentaStor information retrieval python script
#!/usr/bin/env python
import sys
import NZA
def print_volumes_by_pool(pool):
    volumes = NZA.nms.zvol.get_names_by_prop('volume_name', pool, '')
    for volume in volumes:
        name = NZA.nms.zvol.get_child_prop(volume, 'name')
        size = NZA.nms.zvol.get_child_prop(volume, 'size')
        used = NZA.nms.zvol.get_child_prop(volume, 'used')
        # available = NZA.nms.zvol.get_child_prop(volume, 'available')
        print "    %s [%s / %sM]" % (name, used, size)
def print_pools():
    pools = NZA.nms.volume.get_names('')
    for pool in pools:
        name = NZA.nms.volume.get_child_prop(pool, 'name')
        size = NZA.nms.volume.get_child_prop(pool, 'size')
        print "  %s (%s)" % (name, size)
        print_volumes_by_pool(name)
def print_target_groups():
    tgs = NZA.nms.stmf.list_targetgroups()
    for tg in tgs:
        targets = NZA.nms.stmf.list_targetgroup_members(tg)
        print "  %s (%d)" % (tg, len(targets))
        for target in targets:
            print "    ", target
def print_initiator_groups():
    igs = NZA.nms.stmf.list_hostgroups()
    for ig in igs:
        initiators = NZA.nms.stmf.list_hostgroup_members(ig)
        print "  %s (%d)" % (ig, len(initiators))
        for initiator in initiators:
            print "    ", initiator
if __name__ == '__main__':
    if NZA.initialize() != True:
		sys.exit(1)
    print "Storage pools:"
    print_pools()
    print "\nTarget groups:"
    print_target_groups()
    print "\nInitiator groups:"
    print_initiator_groups()