{"id":30196605,"url":"https://github.com/ebayclassifiedsgroup/nsnitro","last_synced_at":"2025-08-13T05:27:23.434Z","repository":{"id":1813861,"uuid":"2738027","full_name":"eBayClassifiedsGroup/nsnitro","owner":"eBayClassifiedsGroup","description":"Citrix Netscaler 9.2+ Python Library (NITRO API)","archived":false,"fork":false,"pushed_at":"2020-05-21T09:05:35.000Z","size":854,"stargazers_count":47,"open_issues_count":3,"forks_count":51,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-03-26T04:16:08.561Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"davidaurelio/relay","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eBayClassifiedsGroup.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-11-08T23:20:32.000Z","updated_at":"2024-03-26T04:16:08.562Z","dependencies_parsed_at":"2022-08-30T05:04:28.541Z","dependency_job_id":null,"html_url":"https://github.com/eBayClassifiedsGroup/nsnitro","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/eBayClassifiedsGroup/nsnitro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBayClassifiedsGroup%2Fnsnitro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBayClassifiedsGroup%2Fnsnitro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBayClassifiedsGroup%2Fnsnitro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBayClassifiedsGroup%2Fnsnitro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eBayClassifiedsGroup","download_url":"https://codeload.github.com/eBayClassifiedsGroup/nsnitro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBayClassifiedsGroup%2Fnsnitro/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270184246,"owners_count":24541495,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-13T05:26:46.821Z","updated_at":"2025-08-13T05:27:23.388Z","avatar_url":"https://github.com/eBayClassifiedsGroup.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Simple Python Library to control Citrix Netscaler 9.2+ load balancers with NITRO API.\nWhat we're trying here is to implement Citrix NITRO API SDK (that's available for Java and C#) in Python.\n\nYou can find a simple command-line interface using this library in contrib/.\nFeedback/comments welcome.\n\nVery basic usage::\n\nimport time\nfrom nsnitro import *\n\nnitro = NSNitro('localhost', 'api_user', 'api_user')\nnitro.login()\n\n# add server test\naddserver = NSServer()\naddserver.set_name(\"mp-nitroserver\")\naddserver.set_ipaddress(\"10.32.110.99\")\nNSServer.add(nitro, addserver)\n\nserver = NSServer()\nserver.set_name(\"mp-nitroserver\")\nserver = server.get(nitro, server)\nprint server.get_name() + \": \" + server.get_state()\n\n# disable server test\nserver = NSServer()\nserver.set_name(\"mp-nitroserver\")\nNSServer.disable(nitro, server)\n\ntime.sleep(2)\n\nserver = NSServer()\nserver.set_name(\"mp-nitroserver\")\nserver = server.get(nitro, server)\nprint server.get_name() + \": \" + server.get_state()\n\n\n# enable server test\nserver = NSServer()\nserver.set_name(\"mp-nitroserver\")\nNSServer.enable(nitro, server)\n\ntime.sleep(2)\n\nserver = NSServer()\nserver.set_name(\"mp-nitroserver\")\nserver = server.get(nitro, server)\nprint server.get_name() + \": \" + server.get_state()\n\n# add service test\n\naddservice = NSService()\naddservice.set_name(\"aurora_testnitroadd\")\naddservice.set_servername(\"mp-nitroserver\")\naddservice.set_servicetype(\"HTTP\")\naddservice.set_port(11111)\nNSService.add(nitro, addservice)\n\n# add lbvserver test\nlbvserver = NSLBVServer()\nlbvserver.set_name(\"nitro_lbvserver_test\")\nlbvserver.set_ipv46(\"10.32.110.55\")\nlbvserver.set_port(11111)\nlbvserver.set_clttimeout(180)\nlbvserver.set_persistencetype(\"NONE\")\nlbvserver.set_servicetype(\"HTTP\")\nNSLBVServer.add(nitro, lbvserver)\n#\nprint \"LB vserver added\"\n\n# bind service to lbvserver test\nlbbinding = NSLBVServerServiceBinding()\nlbbinding.set_name(\"nitro_lbvserver_test\")\nlbbinding.set_servicename(\"aurora_testnitroadd\")\nlbbinding.set_weight(40)\nNSLBVServerServiceBinding.add(nitro, lbbinding)\n\nprint \"Binding added\"\n\nlbbinding = NSLBVServerServiceBinding()\nlbbinding.set_name(\"nitro_lbvserver_test\")\nlbbindings = NSLBVServerServiceBinding.get(nitro, lbbinding)\n\nfor lbb in lbbindings:\n        print \"sgn: \" + lbb.get_servicegroupname()\n\n# delete binding test\nlbbinding = NSLBVServerServiceBinding()\nlbbinding.set_name(\"nitro_lbvserver_test\")\nlbbinding.set_servicename(\"aurora_testnitroadd\")\nNSLBVServerServiceBinding.delete(nitro, lbbinding)\n\nprint \"Binding removed\"\n\n# delete lbvserver test\nlbvserver = NSLBVServer()\nlbvserver.set_name(\"nitro_lbvserver_test\")\nNSLBVServer.delete(nitro, lbvserver)\n\n# get service test\n\nservice = NSService()\nservice.set_name(\"aurora_testnitroadd\")\nservice = service.get(nitro, service)\nprint service.get_name() + \": \" + service.get_svrstate()\nprint service.get_name() + \": %s %s\" % (service.get_port(), service.get_useproxyport())\n\n#update service test\nupdateservice = NSService()\nupdateservice.set_name(\"aurora_testnitroadd\")\nupdateservice.set_comment(\"test comment\")\nupdateservice.set_useproxyport(\"NO\")\nNSService.update(nitro, updateservice)\n\n# get service test\n\nservice = NSService()\nservice.set_name(\"aurora_testnitroadd\")\nservice = service.get(nitro, service)\nprint service.get_name() + \": \" + service.get_svrstate()\nprint service.get_name() + \": %s %s %s\" % (service.get_port(), service.get_comment(), service.get_useproxyport())\n\n# disable service test\n\ndisservice = NSService()\ndisservice.set_name(\"aurora_testnitroadd\")\nNSService.disable(nitro, disservice)\n\nservice = NSService()\nservice.set_name(\"aurora_testnitroadd\")\nservice = service.get(nitro, service)\nprint service.get_name() + \": \" + service.get_svrstate()\n\n# enable service test\n\nenservice = NSService()\nenservice.set_name(\"aurora_testnitroadd\")\nNSService.enable(nitro, enservice)\n\nservice = NSService()\nservice.set_name(\"aurora_testnitroadd\")\nservice = service.get(nitro, service)\nprint service.get_name() + \": \" + service.get_svrstate()\n\n\n# rename service test\n\nrenservice = NSService()\nrenservice.set_name(\"aurora_testnitroadd\")\nrenservice.set_newname(\"aurora_testnitroadd_rename\")\nNSService.rename(nitro, renservice)\n\n# rename service back test\n\nrenservice = NSService()\nrenservice.set_name(\"aurora_testnitroadd_rename\")\nrenservice.set_newname(\"aurora_testnitroadd\")\nNSService.rename(nitro, renservice)\n\n# delete service test\n\ndelservice = NSService()\ndelservice.set_name(\"aurora_testnitroadd\")\nNSService.delete(nitro, delservice)\n\ntry:\n        service = NSService()\n        service.set_name(\"aurora_testnitroadd\")\n        service = service.get(nitro, service)\n        print service.get_name() + \": \" + service.get_svrstate()\nexcept NSNitroError, e:\n        print e.message\n\n\n# delete server test\ndelserver = NSServer()\ndelserver.set_name(\"mp-nitroserver\")\nNSServer.delete(nitro, delserver)\n\n\ntry:\n        server = NSServer()\n        server.set_name(\"mp-nitroserver\")\n        server = server.get(nitro, server)\n        print server.get_name() + \": \" + server.get_state()\nexcept NSNitroError, e:\n        print e.message\n\n#add system cmd policy\ncmdpol = NSSystemCMDPolicy()\ncmdpol.set_action('ALLOW')\ncmdpol.set_policyname('nitro-cmd-policy')\ncmdpol.set_cmdspec('show hardware')\nNSSystemCMDPolicy.add(nitro,cmdpol)\n\n#update system cmd policy\ncmdpol = NSSystemCMDPolicy()\ncmdpol.set_action('DENY')\ncmdpol.set_policyname('nitro-cmd-policy')\ncmdpol.set_cmdspec('show hardware')\nNSSystemCMDPolicy.update(nitro,cmdpol)\n\n#delete system cmd policy\ncmdpol = NSSystemCMDPolicy()\ncmdpol.set_policyname('nitro-cmd-policy')\nNSSystemCMDPolicy.delete(nitro,cmdpol)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febayclassifiedsgroup%2Fnsnitro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febayclassifiedsgroup%2Fnsnitro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febayclassifiedsgroup%2Fnsnitro/lists"}