Metadata-Version: 1.1
Name: nsnitro
Version: 1.0.27
Summary: A simple library to control Citrix Netscaler 9.2+ with NITRO API.
Home-page: http://pypi.python.org/pypi/nsnitro
Author: Vladimir Lazarenko
Author-email: vllazarenko@ebay.com
License: GPL
Description: Simple Python Library to control Citrix Netscaler 9.2+ load balancers with NITRO API.
        What we're trying here is to implement Citrix NITRO API SDK (that's available for Java and C#) in Python.
        
        You can find a simple command-line interface using this library in contrib/.
        Feedback/comments welcome.
        
        Very basic usage::
        
        import time
        from nsnitro import *
        
        nitro = NSNitro('localhost', 'api_user', 'api_user')
        nitro.login()
        
        # add server test
        addserver = NSServer()
        addserver.set_name("mp-nitroserver")
        addserver.set_ipaddress("10.32.110.99")
        NSServer.add(nitro, addserver)
        
        server = NSServer()
        server.set_name("mp-nitroserver")
        server = server.get(nitro, server)
        print server.get_name() + ": " + server.get_state()
        
        # disable server test
        server = NSServer()
        server.set_name("mp-nitroserver")
        NSServer.disable(nitro, server)
        
        time.sleep(2)
        
        server = NSServer()
        server.set_name("mp-nitroserver")
        server = server.get(nitro, server)
        print server.get_name() + ": " + server.get_state()
        
        
        # enable server test
        server = NSServer()
        server.set_name("mp-nitroserver")
        NSServer.enable(nitro, server)
        
        time.sleep(2)
        
        server = NSServer()
        server.set_name("mp-nitroserver")
        server = server.get(nitro, server)
        print server.get_name() + ": " + server.get_state()
        
        # add service test
        
        addservice = NSService()
        addservice.set_name("aurora_testnitroadd")
        addservice.set_servername("mp-nitroserver")
        addservice.set_servicetype("HTTP")
        addservice.set_port(11111)
        NSService.add(nitro, addservice)
        
        # add lbvserver test
        lbvserver = NSLBVServer()
        lbvserver.set_name("nitro_lbvserver_test")
        lbvserver.set_ipv46("10.32.110.55")
        lbvserver.set_port(11111)
        lbvserver.set_clttimeout(180)
        lbvserver.set_persistencetype("NONE")
        lbvserver.set_servicetype("HTTP")
        NSLBVServer.add(nitro, lbvserver)
        #
        print "LB vserver added"
        
        # bind service to lbvserver test
        lbbinding = NSLBVServerServiceBinding()
        lbbinding.set_name("nitro_lbvserver_test")
        lbbinding.set_servicename("aurora_testnitroadd")
        lbbinding.set_weight(40)
        NSLBVServerServiceBinding.add(nitro, lbbinding)
        
        print "Binding added"
        
        lbbinding = NSLBVServerServiceBinding()
        lbbinding.set_name("nitro_lbvserver_test")
        lbbindings = NSLBVServerServiceBinding.get(nitro, lbbinding)
        
        for lbb in lbbindings:
                print "sgn: " + lbb.get_servicegroupname()
        
        # delete binding test
        lbbinding = NSLBVServerServiceBinding()
        lbbinding.set_name("nitro_lbvserver_test")
        lbbinding.set_servicename("aurora_testnitroadd")
        NSLBVServerServiceBinding.delete(nitro, lbbinding)
        
        print "Binding removed"
        
        # delete lbvserver test
        lbvserver = NSLBVServer()
        lbvserver.set_name("nitro_lbvserver_test")
        NSLBVServer.delete(nitro, lbvserver)
        
        # get service test
        
        service = NSService()
        service.set_name("aurora_testnitroadd")
        service = service.get(nitro, service)
        print service.get_name() + ": " + service.get_svrstate()
        print service.get_name() + ": %s %s" % (service.get_port(), service.get_useproxyport())
        
        #update service test
        updateservice = NSService()
        updateservice.set_name("aurora_testnitroadd")
        updateservice.set_comment("test comment")
        updateservice.set_useproxyport("NO")
        NSService.update(nitro, updateservice)
        
        # get service test
        
        service = NSService()
        service.set_name("aurora_testnitroadd")
        service = service.get(nitro, service)
        print service.get_name() + ": " + service.get_svrstate()
        print service.get_name() + ": %s %s %s" % (service.get_port(), service.get_comment(), service.get_useproxyport())
        
        # disable service test
        
        disservice = NSService()
        disservice.set_name("aurora_testnitroadd")
        NSService.disable(nitro, disservice)
        
        service = NSService()
        service.set_name("aurora_testnitroadd")
        service = service.get(nitro, service)
        print service.get_name() + ": " + service.get_svrstate()
        
        # enable service test
        
        enservice = NSService()
        enservice.set_name("aurora_testnitroadd")
        NSService.enable(nitro, enservice)
        
        service = NSService()
        service.set_name("aurora_testnitroadd")
        service = service.get(nitro, service)
        print service.get_name() + ": " + service.get_svrstate()
        
        
        # rename service test
        
        renservice = NSService()
        renservice.set_name("aurora_testnitroadd")
        renservice.set_newname("aurora_testnitroadd_rename")
        NSService.rename(nitro, renservice)
        
        # rename service back test
        
        renservice = NSService()
        renservice.set_name("aurora_testnitroadd_rename")
        renservice.set_newname("aurora_testnitroadd")
        NSService.rename(nitro, renservice)
        
        # delete service test
        
        delservice = NSService()
        delservice.set_name("aurora_testnitroadd")
        NSService.delete(nitro, delservice)
        
        try:
                service = NSService()
                service.set_name("aurora_testnitroadd")
                service = service.get(nitro, service)
                print service.get_name() + ": " + service.get_svrstate()
        except NSNitroError, e:
                print e.message
        
        
        # delete server test
        delserver = NSServer()
        delserver.set_name("mp-nitroserver")
        NSServer.delete(nitro, delserver)
        
        
        try:
                server = NSServer()
                server.set_name("mp-nitroserver")
                server = server.get(nitro, server)
                print server.get_name() + ": " + server.get_state()
        except NSNitroError, e:
                print e.message
        
        #add system cmd policy
        cmdpol = NSSystemCMDPolicy()
        cmdpol.set_action('ALLOW')
        cmdpol.set_policyname('nitro-cmd-policy')
        cmdpol.set_cmdspec('show hardware')
        NSSystemCMDPolicy.add(nitro,cmdpol)
        
        #update system cmd policy
        cmdpol = NSSystemCMDPolicy()
        cmdpol.set_action('DENY')
        cmdpol.set_policyname('nitro-cmd-policy')
        cmdpol.set_cmdspec('show hardware')
        NSSystemCMDPolicy.update(nitro,cmdpol)
        
        #delete system cmd policy
        cmdpol = NSSystemCMDPolicy()
        cmdpol.set_policyname('nitro-cmd-policy')
        NSSystemCMDPolicy.delete(nitro,cmdpol)
        
Keywords: citrix netscaler nitro api nsnitro
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: Python Software Foundation License
