All Projects → chiradeep → go-nitro

chiradeep / go-nitro

Licence: Apache-2.0 license
A Golang client to the Citrix ADC API

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to go-nitro

citrix-adc-aws-cloudformation
Citrix ADC (Formerly Netscaler) templates and scripts for AWS deployment
Stars: ✭ 11 (-38.89%)
Mutual labels:  netscaler, citrix-netscaler, citrix, citrix-adc
citrix-honeypot
Citrix ADC (NetScaler) Honeypot. Supports detection for CVE-2019-19781 and login attempts
Stars: ✭ 24 (+33.33%)
Mutual labels:  citrix-netscaler, citrix, citrix-adc
terraform-provider-citrixadc
Terraform Custom Provider for Citrix ADC (formerly Citrix NetScaler)
Stars: ✭ 89 (+394.44%)
Mutual labels:  netscaler, citrix-netscaler, citrix-adc
check netscaler
A Nagios Plugin written in Perl for the Citrix ADC (formerly Citrix NetScaler). It uses the NetScaler NITRO API.
Stars: ✭ 36 (+100%)
Mutual labels:  netscaler, citrix-netscaler, citrix
NetScaler
PowerShell module for interacting with Citrix NetScaler via the Nitro API
Stars: ✭ 66 (+266.67%)
Mutual labels:  netscaler, citrix-netscaler
aws-nitro-enclaves-cli
Tooling for Nitro Enclave Management
Stars: ✭ 64 (+255.56%)
Mutual labels:  nitro
Discord-Nitro-BruteForce
simple discord nitro code generator and checker written in c#
Stars: ✭ 26 (+44.44%)
Mutual labels:  nitro
generator-nitro
Your frontend? Fuel it with Nitro! Develop your frontend with a proven but flexible Node.js app, even in a large team.
Stars: ✭ 65 (+261.11%)
Mutual labels:  nitro
crowntool
Multi Tool with many functions coming
Stars: ✭ 55 (+205.56%)
Mutual labels:  nitro
citrixmash scanner
A fast multi threaded scanner for Citrix ADC (NetScaler) CVE-2019-19781 - Citrixmash / Shitrix
Stars: ✭ 36 (+100%)
Mutual labels:  citrix
aws-nitro-enclaves-sdk-c
This repo provides a C API for AWS Nitro Enclaves, including a KMS SDK that integrates it with attestation.
Stars: ✭ 73 (+305.56%)
Mutual labels:  nitro
UltraTypeBot
A fast, easy to use bot for NitroType.com
Stars: ✭ 24 (+33.33%)
Mutual labels:  nitro
YANG
🔥 The most efficient, open-source, and unlimited discord nitro generator & checker. 🚀
Stars: ✭ 215 (+1094.44%)
Mutual labels:  nitro
aws-nitro-enclaves-nsm-api
This provides a library for interacting with the Nitro Secure Module, which provides Nitro Enclaves with attestation capability.
Stars: ✭ 41 (+127.78%)
Mutual labels:  nitro
BetterDiscordPlugins
🔥 My collection of Discord plugins for BetterDiscord, the Discord enhancement project
Stars: ✭ 120 (+566.67%)
Mutual labels:  nitro
windows-lab
Windows Automated Lab with Vagrant
Stars: ✭ 78 (+333.33%)
Mutual labels:  netscaler
Nitro-5-Hackintosh-OC
** macOS Monterey ** Acer Nitro 5 - AN515-54 Hackintosh
Stars: ✭ 40 (+122.22%)
Mutual labels:  nitro
uac
UAC is a Live Response collection script for Incident Response that makes use of native binaries and tools to automate the collection of AIX, Android, ESXi, FreeBSD, Linux, macOS, NetBSD, NetScaler, OpenBSD and Solaris systems artifacts.
Stars: ✭ 260 (+1344.44%)
Mutual labels:  netscaler
bbcapis
Nodejs-based utilities, SDK to consume BBC Nitro, iBL and /programmes APIs
Stars: ✭ 21 (+16.67%)
Mutual labels:  nitro
discord-sniper
🔰 Discord Nitro, Giveaway and Privnote sniper! Made with Python
Stars: ✭ 120 (+566.67%)
Mutual labels:  nitro

Go client for configuring Citrix ADC

About

The NITRO API is the REST-like API to the Citrix ADC (aka NetScaler). This project provides a Golang SDK that can be used to make configuration API calls to a Citrix ADC.

Deprecation Notice

The project has an official home at https://github.com/citrix/adc-nitro-go where updates will continue. There will be no more updates to this repo.

Versioning

The repository uses tags to identify which version of the NITRO API is used to generate the config packages.

The version scheme follows that of Citrix ADC versioning.

For example the tag v12.1.50.12 signifies that the jsonconfig files and the generated config files are taken from the same Citrix ADC version. In this instance it is Citrix ADC version 12.1 build 50.12 .

You can checkout a specific tag or download the corresponding release if you would like to use some version of the API other than the one pointed to by the master branch.

Usage

Import the SDK from github.com/chiradeep/go-nitro/netscaler. Config objects are available at github.com/chiradeep/go-nitro/config. Instantiate a client using NewNitroClient. To initialize the client from environment variables:

export NS_URL=http://<ip-address>
export NS_LOGIN=<netscaler-username>
export NS_PASSWORD=<netscaler-password>

Config object types can be passed in as strings ("lbvserver"), or looked up from netscaler.<config object type>.Type() The general pattern for NetScaler config objects is some combination of AddResource, UpdateResource, BindResource, UnbindResource and DeleteResource. See the NITRO REST docs for more information.

Example

package main

import (
        "github.com/chiradeep/go-nitro/config/lb"
        "github.com/chiradeep/go-nitro/netscaler"
)

function main() {
        client, _ := netscaler.NewNitroClientFromEnv()
        lb1 := lb.Lbvserver{
                Name:        "sample_lb",
                Ipv46:       "10.71.136.50",
                Lbmethod:    "ROUNDROBIN",
                Servicetype: "HTTP",
                Port:        8000,
        }
        result, err := client.AddResource(netscaler.Lbvserver.Type(), "sample_lb", &lb1)
        if err == nil {
            client.SaveConfig()
        }
}

Building

The structs for the config objects under config/ used to be generated from JSON declarations in jsonconfig. The JSON itself is generated by reverse engineering the official NITRO Java SDK (see https://github.com/chiradeep/json-nitro). From 13.0, the go structs are generated and checked in directly to the repository. From 13.0-76.31 the stats directory contain the structs for the stats API.

Unit Tests

The unit tests are invoked with make unit. Note that they are actually functional tests and need a running NetScaler. The tests also need the environment variables NS_URL, NS_LOGIN and NS_PASSWORD to be set.

Using HTTPS

If you specify https in the URL then the client will use HTTPS. By default it will verify the presented certificate. If you want to use the default or self-signed certificates without verification, specify sslVerify=false in the constructor NewNitroClientFromParams or set the environment variable NS_SSLVERIFY to false and use the NewNitroClientFromEnv constructor

TODO

Some REST operations are not yet supported:

  • Pagination & filtering
  • Count
  • Unset
  • Rename
  • SSL Certificate operations:
    • Link/Unlink
    • Import

`

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].