NetScaler SDX
感谢您提供反馈

这篇文章已经过机器翻译.放弃

Java SDK

SDX NITRO API 根据 API 的范围和用途分为系统 API 和配置 API。您还可以对 NITRO 操作进行故障排除。

系统接口

使用 NITRO 的第一步是与 SDX 设备建立会话,然后使用管理员的凭据对会话进行身份验证。

通过指定设备的 IP 地址和连接到设备的协议(HTTP 或 HTTPS)来创建 nitro_service 类的对象。然后,您可以使用此对象并通过指定管理员的用户名和密码登录到设备。

注意:您必须在该设备上拥有用户帐户。您可以执行的配置操作受分配给您的帐户的管理角色的限制。

以下示例代码使用 HTTPS 协议连接到 IP 地址为 10.102.31.16 的 SDX 设备:

//Specify the IP address of the appliance and service type nitro_service nitroservice = new nitro_service ("10.102.31.16", "https"); //Specify the login credentials nitroservice.login("nsroot", "verysecret");

注意: 在设备上的所有 后续的 NITRO 操作中使用 nitro_service 对象。

要断开与设备的连接,请按如下方式调用 logout() 方法:

nitroservice.logout();

配置 API

NITRO 协议可用于配置 SDX 设备的资源。

用于配置资源的 API 分组为格式为 com.citrix.sdx.nitro.resource.config 的包或命名空间。. 这些包或命名空间中的每一个都包含一个名为 提供用于配置资源的 API。

例如,NetScaler 资源具有 com.citrix.sdx.nitro.resource.config.ns 包或命名空间。

资源类提供用于执行许多其他操作的 API。这些操作可以是创建资源、检索资源详细信息和统计信息、更新资源、删除资源以及对资源执行批量操作。

创建资源

要在 SDX 设备上创建资源(例如,NetScaler 实例),请执行以下操作:

  1. 使用相应的属性名称设置资源所需属性的值。结果是一个包含资源所需详细信息的资源对象。 注意:这些值是在客户端上本地设置的。在上载对象之前,这些值不会反映在设备上。
  2. 使用静态 add () 方法将资源对象上载到设备。

以下示例代码在 SDX 设备上创建了一个名为“ns_instance”的 NetScaler 实例:

ns newns = new ns(); //Set the properties of the NetScaler locally newns.set_name("ns_instance"); newns.set_ip_address("10.70.136.5"); newns.set_netmask("255.255.255.0"); newns.set_gateway("10.70.136.1"); newns.set_image_name("nsvpx-9.3.45_nc.xva"); newns.set_profile_name("ns_nsroot_profile"); newns.set_vm_memory_total(new Double(2048)); newns.set_throughput(new Double(1000)); newns.set_pps(new Double(1000000)); newns.set_license("Standard"); newns.set_username("admin"); newns.set_password("admin"); int number_of_interfaces = 2; network_interface[] interface_array = new network_interface[number_of_interfaces]; //Adding 10/1 interface_array[0] = new network_interface(); interface_array[0].set_port_name("10/1"); //Adding 10/2 interface_array[1] = new network_interface(); interface_array[1].set_port_name("10/2"); newns.set_network_interfaces(interface_array); //Upload the NetScaler instance ns result = ns.add(nitroservice, newns);

检索资源详细信息

要检索 SDX 设备上资源的属性,请执行以下操作:

  1. 使用 get () 方法从设备检索配置。结果是一个资源对象。
  2. 使用相应的属性名称从对象中提取所需的属性。

以下示例代码检索所有 NetScaler 资源的详细信息:

//Retrieve the resource object from the SDX appliance ns[] returned_ns = ns.get(nitroservice); //Extract the properties of the resource from the object System.out.println(returned_ns[i].get_ip_address()); System.out.println(returned_ns[i].get_netmask());

检索资源统计信息

SDX 设备收集有关其功能使用情况的统计信息。您可以使用 NITRO 检索这些统计数据。

以下示例代码检索 ID 为 123456a 的 NetScaler 实例的统计数据:

ns obj = new ns(); obj.set_id("123456a"); ns stats = ns.get(nitroservice, obj); System.out.println("CPU Usage:" + stats.get_ns_cpu_usage()); System.out.println("Memory Usage:" + stats.get_ns_memory_usage()); System.out.println("Request rate/sec:" +stats.get_http_req());

更新资源

要更新设备上现有资源的属性,请执行以下操作:

  1. 将 id 属性设置为要更新的资源的 ID。
  2. 使用相应的属性名称设置资源所需属性的值。结果是一个资源对象。 注意:这些值是在客户端上本地设置的。在上载对象之前,这些值不会反映在设备上。
  3. 使用 update () 方法将资源对象上载到设备。

以下示例代码将 ID 为 123456a 的 NetScaler 实例的名称更新为“ns_instance_new”:

ns update_obj = new ns(); //Set the ID of the NetScaler to be updated update_obj.set_id("123456a"); //Get existing NetScaler details update_obj = ns.get(nitroservice, update_obj); //Update the name of the NetScaler to "ns_instance_new" locally update_obj.set_name("ns_instance_new"); //Upload the updated NetScaler details ns result = ns.update(nitroservice, update_obj);

删除资源

要删除现有资源,请在资源类上调用静态方法 delete (),方法是将要删除的资源的 ID 作为参数传递。

以下示例代码删除 ID 为 1 的 NetScaler 实例:

ns obj = new ns(); obj.set_id("123456a"); ns.delete(nitroservice, obj);

批量操作

您可以同时查询或更改多个资源,从而最大限度地减少网络流量。例如,您可以在同一个操作中添加多个 NetScaler SDX 设备。

每个资源类都有一些方法,这些方法使用一组资源来添加、更新和删除资源。要执行批量操作,请在本地指定每个操作的详细信息,然后一次性将详细信息发送到服务器。

为了解决批量操作中某些操作失败的原因,NITRO 允许您配置以下行为之一:

  • 退出。遇到第一个错误时,执行将停止。在错误发生之前运行的命令将被提交。
  • 继续。即使某些命令失败,也会运行列表中的所有命令。

注意: 通过在 nitro_service() 方法中设置 onerror 参数,在与设备建立连接时配置所需的行为。

以下示例代码在一次操作中添加了两个 ADC 设备:

ns[] newns = new ns[2]; //Specify details of first NetScaler newns[0] = new ns(); newns[0].set_name("ns_instance1"); newns[0].set_ip_address("10.70.136.5"); newns[0].set_netmask("255.255.255.0"); newns[0].set_gateway("10.70.136.1"); ... ... ... //Specify details of second NetScaler newns[1] = new ns(); newns[1].set_name("ns_instance2"); newns[1].set_ip_address("10.70.136.8"); newns[1].set_netmask("255.255.255.0"); newns[1].set_gateway("10.70.136.1"); ... ... //upload the details of the NetScalers to the NITRO server ns[] result = ns.add(nitroservice, newns);

异常处理

错误代码字段指示操作的状态。

  • 错误代码为 0 表示操作成功。
  • 非零错误代码表示处理 NITRO 请求时出错。

错误消息字段提供了故障的简要说明和故障性质。

com.citrix.sdx.nitro.exception.nitro_exception 类捕获执行 NITRO API 时的所有异常。要获取有关异常的信息,可以使用 getErrorCode() 方法。

有关错误代码的更详细说明,请参阅 <NITRO_SDK_HOME>/doc 文件夹中提供的 API 参考。

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
Java SDK