jshoward
3/10/2011 - 3:38 PM

Simple NexentaStor information retrieval python script

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()