Before you Begin¶
This section covers the prerequisites for using the NITRO APIs, NITRO changes across releases, and limitations.
Prerequisites¶
To use NITRO, you must have a basic understanding of the NetScaler appliance and you must make sure that the client application has one of the following:
-
Access to a NetScaler appliance.
-
To use REST APIs through HTTP, you must have a system to generate HTTP or HTTPS requests (payload in JSON format) to the NetScaler appliance. You can use any programming language or tool.
-
For Java clients, you must have a system where Java Development Kit (JDK) 1.5 or later is available. The JDK can be downloaded from http://www.oracle.com/technetwork/java/javase/downloads/index.html.
The NITRO library (available in <NITRO_SDK_HOME>/lib) must be installed on the client path. For installation instructions, read the <NITRO_SDK_HOME>/README.txt file.
-
For .NET clients, you must have a system with .NET framework 3.5 or later installed. The .NET framework can be downloaded from http://www.microsoft.com/downloads/en/default.aspx.
The NITRO library (available in <NITRO_SDK_HOME>/lib) must be installed on the client path. For installation instructions, read the <NITRO_SDK_HOME>/README.txt file.
-
For Python clients, you must have a system with Python 2.7 or above version.
The Python SDK is available from NetScaler 10.5 onwards. The NITRO library (available in <NITRO_SDK_HOME>/lib) must be installed on the client path. For installation instructions, read the <NITRO_SDK_HOME>/README.txt file.
Obtaining the NITRO SDK Package
The NITRO package is available as a tar file on the Downloads page of the configuration utility of the NetScaler appliance. You must download and untar the file to a folder on your local system. This folder is referred to as \<NITRO_SDK_HOME> in this documentation.
The folder contains the NITRO libraries in the lib subfolder. The libraries must be added to the client application classpath to access NITRO functionality. The \<NITRO_SDK_HOME> folder also provides samples and documentation that can help you understand the NITRO SDK.
NITRO Changes Across Releases¶
Some NITRO API have changed across releases. This topic details information which can help you avoid compatibility issues in your application. The changes are categorized as:
Changes Made from 11.1-53.3 -> 12.0-48.x¶
Changes across NITRO flavors
The NITRO changes that were made in NetScaler 12.0-48.x when compared with NetScaler 11.1-53.3.
Type of change |
Resource |
Method |
Attribute |
Resource removed |
vpath, vpathparam |
ALL |
All resources and parameters related to vpath feature. |
Attribute removed |
l3param |
- |
Icmperrgenerate This attribute is related to vpath for which the support is removed in 12.0. |
Attribute removed |
qos_stats |
- |
ipcpe2qosfailedrate Note: Some of the counters under this resource are removed. For new definitions, see http://docs.citrix.com/en-us/netscaler/12/nitro-api/nitro-rest/api-reference/statistics/qos/qos.html |
Attribute removed |
vrid_interface_binding |
- |
trackifnum New resources (vrid_trackifnum_binding and vrid6_trackifnum_binding) are introduced to deal with track interfaces. |
Attribute removed |
vrid_interface_binding |
- |
ifaces is replaced with ifnum. Previously, ifaces parameter was used in the response and ifnum was used in the input. Now both POST and GET are consistent and use the same attribute name. |
Attribute removed |
sslprofile_sslciphersuite_binding |
- |
cipheraliasname cipheraliasname is a redundant parameter. The required information is provided by ciphername parameter. |
Attribute removed |
nslicense |
- |
Ispooledlicensing Ispooledlicensing Is replaced with a new parameter licensingmode which returns if the license of "Local"/"Pooled"/"CICO" type. |
Attribute removed |
lbmonitor_sslcertkey_binding |
DELETE |
crlcheck |
Changes specific to NITRO SDKs
The SDK-specific changes that were made in NetScaler 12.0-48.x when compared with NetScaler 11.1-53.3.
Type of change |
Class |
Method/Attribute |
Remarks |
Attribute type changed |
pcpmap |
pcpprotocol |
Datatype changed from double to string. |
Class removed |
mediaclassification_stats |
- |
- |
Method removed |
vxlan_iptunnel_binding |
add(vxlan_iptunnel_binding obj, nitro_service session) delete(vxlan_iptunnel_binding obj, nitro_service session) |
Feature is deprecated, use bridgetable with broadcast mac option. |
Method removed |
inatsession_stats |
get(inatsession obj, nitro_service session) |
- |
Changes Made from 10.5 57.x -> 11.0¶
All NITRO Flavors - Changes from 10.5 57.x to 11.0
The NITRO changes that were made in NetScaler 11.0 when compared with NetScaler 10.5 Build 57.x.
Type of Change |
Resource |
Attribute |
Attribute removed |
nstrace |
doruntimemerge |
Attribute removed |
nstrace |
tcpdump |
Attribute removed |
cacheobject |
force |
NITRO SDKs - Changes from 10.5 57.x to 11.0
The SDK-specific changes that were made in NetScaler 11.0 when compared with NetScaler 10.5 Build 57.x.
Type of Change |
Class |
Method |
Replace with |
Attribute missing in method |
cacheobject |
(base_response) flush(cacheobject obj, nitro_service session) 'force' attribute missing in this method. |
- |
Method missing |
clustersync |
(base_response) Force(clustersync obj, nitro_service session) |
(base_response) Force(nitro_service session) |
Method missing |
shutdown |
(base_response) Shutdown(shutdown obj, nitro_service session) |
(base_response) Shutdown(nitro_service session) |
Method missing |
systemfile |
(systemfile) get(systemfile obj, nitro_service session) |
- |
Method missing |
sslfips |
(base_response) reset(sslfips obj, nitro_service session) |
(base_response) reset(nitro_service session) |
Changes made from 9.3 -> 10.1/10.5¶
Note. No changes are introduced from NetScaler 10.1 to NetScaler 10.5. Therefore, you should not face any compatibility issues when migrating from NetScaler 10.1 to 10.5.
All NITRO Flavors - Changes from 9.3 to 10.1/10.5
The NITRO changes that were made in NetScaler 10.1/10.5 when compared with NetScaler 9.3.
Type of Change |
Resource |
Method |
Attribute |
Resource removed |
lbmonitor_lbmetrictable_binding Replaced with the resource 'lbmonitor_metric_binding'. |
- |
- |
Method removed |
vserver |
GET Perform the GET operation on specific virtual server types such as lb/cr/cs. |
- |
Method removed |
filterpolicy |
POST with 'action=unset' This method is removed as unsetting the attributes('action') of a policy makes it invalid. |
- |
Method removed |
auditsyslogpolicy |
POST with 'action=unset' This method is removed as unsetting the attributes('action') of a policy makes it invalid. |
- |
Method removed |
auditnslogpolicy |
POST with 'action=unset' This method is removed as unsetting the attributes('action') of a policy makes it invalid. |
- |
Method removed |
authorizationpolicy |
POST with 'action=unset' This method is removed as unsetting the attributes('action') of a policy makes it invalid. |
- |
Return-type changed |
snmpengineid |
GET Return type changed to an array. |
- |
Return-type changed |
nshostname |
GET Return type changed to an array. |
- |
Attribute-type changed |
appfwpolicy_lbvserver_binding |
- |
activepolicy Data type changed from Boolean to Integer. |
Attribute-type changed |
appfwpolicy_appfwglobal_binding |
- |
activepolicy Data type changed from Boolean to Integer. |
Attribute-type changed |
vlan |
- |
portbitmap Data type changed from uint to ulong. |
Attribute-type changed |
vlan |
- |
tagbitmap Data type changed from uint to ulong. |
Attribute removed |
policypatset_pattern_binding |
- |
indextype This attribute is moved to 'policypatset' resource as this attribute is applicable at patset level. |
Attribute removed |
system_stats |
- |
powersupply1failure Replaced with 'powersupply1status'. Note: Change is applicable from NetScaler 9.3 Build 65.8. |
Attribute removed |
system_stats |
- |
powersupply2failure Replaced with 'powersupply2status'. Note: Change is applicable from NetScaler 9.3 Build 65.8. |
Attribute removed |
server_servicegroup_binding |
- |
servicetype Replaced with 'svctype'. |
Attribute removed |
server_service_binding |
- |
servicetype Replaced with 'svctype'. |
Attribute removed |
crvserver |
- |
hits Hits are calculated per policy binding hence moved this parameter to binding resources. |
Attribute removed |
crvserver |
- |
dstvsvr Replaced with 'destinationvserver'. |
Attribute removed |
crvserver |
- |
destvserver Replaced with 'domain'. |
Attribute removed |
crvserver |
- |
dnsvserver Replaced with 'dnsvservername'. |
Attribute removed |
appflowpolicylabel |
- |
type Replaced with 'policylabeltype'. |
Attribute removed |
sslcipher |
- |
ciphgrpals Replaced with 'ciphergroupname'. |
Attribute removed |
csvserver_cspolicy_binding |
- |
targetvserver Replaced with 'targetlbvserver'. Note: This change is applicable for the 'sslcipher_*_binding' resources also. |
Attribute removed |
csvserver_cspolicy_binding |
- |
targetvserver Replaced with 'targetlbvserver'. |
Attribute removed |
rewriteaction |
- |
allow_unsafe_pi1, allow_unsafe_pi Replaced with 'bypassSafetyCheck'. |
Attribute removed |
nsconfig |
- |
nwfwmode Marked as a hidden attribute. |
NITRO SDKs - Changes from 9.3 to 10.1/10.5
The SDK-specific changes that were made in NetScaler 10.1/10.5 when compared with NetScaler 9.3.
Type of Change |
Class |
Method |
Replace with |
Class removed |
Routerbgp |
- |
This class is removed as all router configurations are deprecated in 9.2. |
Method signature changed |
dnsptrrec |
get(dnsptrrec obj, nitro_service session) |
get(nitro_service session, String reversedomain) |
Method signature changed |
dnsaddrec |
get(dnsaddrec obj, nitro_service session) |
get(nitro_service session, String hostname) |
Method signature changed |
dnsnsrec |
get(dnsnsrec obj, nitro_service session) |
get(nitro_service session, String domain) |
Method signature changed |
snmpengineid |
unset(nitro_service session, String[] args) |
unset(nitro_service session, snmpengineid resource, String[] args) |
Method signature changed |
arp |
arp.get(nitro_service session, String ipaddress) |
arp.get(nitro_service session, arp resource) |
Method signature changed |
nsip |
get(nitro_service session, String ipaddress) |
get(nitro_service client, nsip resource) |
Method signature changed |
nsip6 |
get(nitro_service session, String ipv6address) |
get(nitro_service session, nsip6 resource) |
Method signature changed |
dnsmxrec |
dnsmxrec.get(dnsmxrec obj, nitro_service session) |
dnsmxrec[] get(nitro_service service, dnsmxrec_args args) |
Method Missing |
authenticationnegotiatepolicy |
(base_response) unset(nitro_service session, String[] args, String name)' is missing in |
- |
Method missing |
authenticationnegotiatepolicy |
(base_response) unset(authenticationnegotiatepolicy obj, nitro_service session, String[] args) |
- |
Attribute missing in method |
nsconfig |
(base_response) update(nsconfig obj, nitro_service session) 'nwfwmode' attribute is missing in this method. |
- |
Limitations¶
The section lists the NetScaler operations that cannot be performed by using NITRO API.
Note: These operations can be performed on the NetScaler CLI or the GUI.
- install API (supported from NetScaler 11.1 onwards) diff API on nsconfig resource (supported from NetScaler 10.5 onwards)
- UI-internal APIs (update, unset, and get)
- show ns info
- shutdown
- Application firewall API
- importwsdl
- importcustom
- importxmlschema
- importxmlerrorpage
- importhtmlerrorpage
- rmcustom
- rmxmlschema
- rmxmlerrorpage
- rmhtmlerrorpage
- CLI-specific API
- start nstrace/stop nstrace/show nstrace
- scp
- configaudit
- show defaults
- show permission
- batch
- source