服务器配置部署管理接口
本节介绍eSight服务器部署时开放的接口。V300R010C00SPC500版本不支持该功能; V300R010C00SPC500版本上安装V300R010C00SPC500之后的补丁,同样不支持该功能。如当前版本是使用eSight V300R010C00 CP5022(Update tool 1.0)升级上来的升级版本,同样不支持该功能。安装了V300R010C00CP5022补丁后,也将不再支持该功能。
创建配置模板
创建网络部署模板
接口功能
创建网络配置模板。
URI路径
/rest/openapi/server/deploy/template
访问方法
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,可由大小写字母、数字或- _构成的6-32字符。 |
templateType |
必选 |
参数列表 |
String |
模板类型,必选,创建网络配置模板填写“ NETWORK” |
templateDesc |
可选 |
参数列表 |
String |
模板描述,可选,0-127个字符。 |
templateProp |
必选 |
参数列表 |
JSON<template> |
模板属性,必选,NETWORK配置属性,请看下表及样例。 |
template配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
manageIpType |
必选 |
参数列表,templateProp中 |
String |
网络模板配置方式。必选,示例:“1”,取值范围:
|
manageStartIP |
可选 |
参数列表,templateProp中 |
String |
当ManageIPType为1时必选,IP段起始IP |
manageEndIP |
可选 |
参数列表,templateProp中 |
String |
当ManageIPType为1时必选,IP段结束IP |
manageMask |
可选 |
参数列表,templateProp中 |
String |
当ManageIPType为1时必选,子网掩码 |
manageGateway |
可选 |
参数列表,templateProp中 |
String |
当ManageIPType为1时必选,默认网关 |
deviceInfoArray |
可选 |
参数列表,templateProp中 |
JSON<deviceInfoArray> |
当ManageIPType为2时必选,设备信息组,deviceInfoArray表示要配置IP的设备列表信息,包含sn、iPAddress、subnetMask、defaultGateway |
deviceInfoArray配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
sn |
必选 |
参数列表,DeviceInfoArray中 |
String |
当ManageIPType为2时必选,设备的SN信息 |
iPAddress |
必选 |
参数列表,DeviceInfoArray中 |
String |
当ManageIPType为2时必选,要配置到设备上的IPv4地址 |
subnetMask |
必选 |
参数列表,DeviceInfoArray中 |
String |
当ManageIPType为2时必选,要配置到设备上的子网掩码 |
defaultGateway |
必选 |
参数列表,DeviceInfoArray中 |
String |
当ManageIPType为2时必选,要配置到设备上的默认网关 |
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
String |
返回数据。取值为null |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
使用示例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreateNetWorkTemplate { private static final String CREATE_TEMPLATE_URL = "/rest/openapi/server/deploy/template"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreateNetworkTemplateTest(); } public static void CreateNetworkTemplateTest() throws Exception { String openidURL = CREATE_TEMPLATE_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); //example 1: Create a template for dynamically obtaining BMC IP addresses. BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "NETWORK_Template01"), new BasicNameValuePair("templateType", "NETWORK"), new BasicNameValuePair("templateDesc", "This is a NETWORK template."), new BasicNameValuePair("templateProp", "{\"manageIpType\":\"0\"}") }; //example 2: Create a template for static IP address configuration. BasicNameValuePair[] parameters2 = { new BasicNameValuePair("templateName", "NETWORK_Template02"), new BasicNameValuePair("templateType", "NETWORK"), new BasicNameValuePair("templateDesc", "This is a NETWORK template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"manageIpType\":\"1\", \r\n" + " \"mangeStartIp\":\"192.168.1.10\",\r\n" + " \"mangeEndIp\":\"192.168.1.100\",\r\n" + " \"mangeMask\":\"255.255.0.0\",\r\n" + " \"mangeGateway\":\"192.168.1.1\" \r\n" + "}\r\n" + "") }; //example 3: Create a template for BMC IP address batch configuration where SNs are used as unique IDs of devices. BasicNameValuePair[] parameters3 = { new BasicNameValuePair("templateName", "NETWORK_Template03"), new BasicNameValuePair("templateType", "NETWORK"), new BasicNameValuePair("templateDesc", "This is a NETWORK template."), new BasicNameValuePair("templateProp", "{\r\n" + " \"manageIpType\": \"2\",\r\n" + " \"deviceInfoArray\": [\r\n" + " {\r\n" + " \"sn\": \"210235227810AA000002-1\",\r\n" + " \"ipAddress\": \"192.168.9.81\",\r\n" + " \"subnetMask\": \"255.255.255.0\",\r\n" + " \"defaultGateway\": \"192.168.9.1\"\r\n" + " },\r\n" + " {\r\n" + " \"sn\": \"210235227810AA000002-2\",\r\n" + " \"ipAddress\": \"192.168.9.82\",\r\n" + " \"subnetMask\": \"255.255.255.0\",\r\n" + " \"defaultGateway\": \"192.168.9.1\"\r\n" + " }\r\n" + " ]\r\n" + "}") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters3); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": null, "resverd": null, "description": "create template success." }
创建BIOS配置模板
接口功能
创建BIOS配置模板。
URI路径
/rest/openapi/server/deploy/template
访问方法
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,可由大小写字母、数字或- _构成的6-32字符。 |
templateType |
必选 |
参数列表 |
String |
模板类型,必选,创建BIOS模板填写 "BIOS" |
templateDesc |
可选 |
参数列表 |
String |
模板描述,可选,0-127个字符。 |
templateProp |
必选 |
参数列表 |
JSON<template> |
模板属性,必选,BIOS配置属性,请看下表及样例。 |
template配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
BootOrder |
必选 |
参数列表,templateProp中 |
String |
设置系统启动顺序。必选,示例:“0123”。取值为4种代码组合成的4位字符串:
|
VTSupport |
可选 |
参数列表,templateProp中 |
String |
启用或禁用硬件辅助虚拟化技术。可选,默认值:“default”。取值范围:
|
PCIeSRIOVSupport |
可选 |
参数列表,templateProp中 |
String |
应用于虚拟化中的直通技术。通过SR-IOV,一个PCIe设备可以导出多个PCI物理功能,也可以导出共享该I/O设备上资源的一组虚拟功能,为每个虚拟机提供独立内存空间、中断和DMA(Direct Memory Access)流。可选,默认值:“default”。 取值范围:
|
CustomPowerPolicy |
可选 |
参数列表,templateProp中 |
String |
设置系统的能效方案。可选,默认值:“default”。 取值范围:
|
ProcessorEistEnable |
可选 |
参数列表,templateProp中 |
String |
增强型SpeedStep技术EIST(Enhanced Intel SpeedStep Technology)。当CPU使用频率较低时,通过动态的降低CPU工作频率,从而降低系统功耗以及发热;当监测到CPU使用率很高时,立即恢复到最初的工作频率。可选,默认值:“default”。 取值范围:
|
PowerSaving |
可选 |
参数列表,templateProp中 |
String |
CPU P State调节功能,通过调整CPU的P状态来减少能耗。可选,默认值:“default”。 取值范围:
|
HTSupport |
可选 |
参数列表,templateProp中 |
String |
Intel超线程技术(Intel Hyper Threading Technology)。该技术通过增加CPU内核的线程数以提高CPU性能。可选,默认值:“default”。 取值范围:
|
PowerStateRestoreOnACLoss |
可选 |
参数列表,templateProp中 |
String |
设置BMC在AC掉电后的恢复模式。可选,默认值:“default”。取值范围:
|
QuickBoot |
可选 |
参数列表,templateProp中 |
String |
在启动过程中跳过某些检测步骤,快速启动操作系统,以此缩短系统启动时间。可选,默认值:“default”。 取值范围:
|
QuietBoot |
可选 |
参数列表,templateProp中 |
String |
以本文方式启动操作系统。可选,默认值:“default”。 取值范围:
|
BootType |
可选 |
参数列表,templateProp中 |
String |
选择BIOS启动类型,支持UEFI和Legacy BIOS启动。可选,默认值:“default”。 取值范围:
|
WakeOnPME |
可选 |
参数列表,templateProp中 |
String |
是否支持WOL启动选项,支持网络魔幻包唤醒服务器。可选,默认值:“default”。 取值范围:
|
VTdSupport |
可选 |
参数列表,templateProp中 |
String |
Intel虚拟化数据地址转换技术。用于在虚拟化场景下,实现虚拟地址和真实物理地址的内部转换,从而实现DMA重映射。可选,默认值:“default”。 取值范围:
|
InterruptRemap |
可选 |
参数列表,templateProp中 |
String |
用于使虚拟设备生成不同的中断,便于CPU处理各个中断信号。(VTdSupport为"Enabled"的情况下才生效)。可选,默认值:“default”。 取值范围:
|
ATS |
可选 |
参数列表,templateProp中 |
String |
ATS是PCIe总线的一个机制。它在PCIe设备中实现。具体实现形式是PCIe设备使用地址路由方式发送TLP时,就进行地址转换,转换为HPA地址,从而减轻VT-d的工作负担。另外,它还可以避免不同域中的设备互相影响。(VTdSupport为"Enabled"的情况下才生效)。可选,默认值:“default”。 取值范围:
|
CoherencySupport |
可选 |
参数列表,templateProp中 |
String |
一致性支持功能。(VTdSupport为"Enabled"的情况下才生效)。可选,默认值:“default”。取值范围:
|
PassThroughDma |
可选 |
参数列表,templateProp中 |
String |
是否使能DMA直通技术。(VTdSupport为"Enabled"的情况下才生效)。可选,默认值:“default”。 取值范围:
|
EnableTurboMode |
可选 |
参数列表,templateProp中 |
String |
CPU加速模式,允许CPU的运行频率的比标称频率快。可选,默认值:“default”。 取值范围:
|
AcpiVer |
可选 |
参数列表,templateProp中 |
String |
ACPI版本。高级配置与电源接口ACPI(Advanced Configuration and Power Interface),该功能可以通过操作系统对处理器、电池、嵌入式控制器等组件进行电源管理,使服务器满足一定性能的同时,降低功耗。可选,默认值:“default”。 取值范围:
|
NumaEn |
可选 |
参数列表,templateProp中 |
String |
MONITOR/MWAIT指令开关,开启该指令后,可以监视CPU状态,从而优化CPU的指令运行。开启该选项可能会使部分OS获得自主调节节能选项的能力,所以如果要关闭节能选项请关闭此参数。可选,默认值:“default”。 取值范围:
|
MonitorMwaitEnable |
可选 |
参数列表,templateProp中 |
String |
设置PCIe 64-bit解码功能,启用本功能后,外接设备被分配的地址空间可以大于4GB。可选,默认值:“default”。 取值范围:
|
PciMem64DecodeSupport |
可选 |
参数列表,templateProp中 |
String |
NUMA(Non Uniform Memory Access Achitecture)技术,可以有效地扩充系统的规模,使众多服务器像单一系统那样运转,同时保留小系统便于编程和管理的优点。可选,默认值:“default”。 取值范围:
|
ProcessorCcxEnable |
可选 |
参数列表,templateProp中 |
String |
CPU C-State功能开关,CPU C-State是一项深度节能技术。其中,C3状态、C6状态、C7状态的节能效果逐渐依次增强,但CPU恢复到正常工作状态的时间依次增加。启用C-State功能后续设置如下选项:
可选,默认值:“default”,取值范围:
|
RasMode |
可选 |
参数列表,templateProp中 |
String |
内存RAS功能用于增加内存的纠错性,确保内存的稳定性和正确性。它有三种通道模式: Independent:使各通道独立工作。每个Cache Line的数据来自同一个通道。 Mirror:为内存做镜像。 Lock Step模式:使两个内存通道以完全一致的步调工作,两个物理通道组成一个逻辑通道。 Rank Spare模式:以Rank条为单位进行内存备份。 Lock Step & Rank Spare:同时支持Lock Step& Rank Spare模式。可选,默认值:“default”,取值范围:
|
OsAcpiCx |
可选 |
参数列表,templateProp中 |
String |
将某个ACPI cx状态给操作系统作为参考,通知操作系统CPU可以进入C state。(ProcessorCcxEnable为“Enabled”时才会生效)。可选,默认值:“default”,取值范围:
|
MLCSpatialPrefetcherEnable |
可选 |
参数列表,templateProp中 |
String |
MLC(Mid Level Cache) Spatial预读取功能用于预读取两个高速缓冲存储器(128 bytes),读取时间是平时预读取量的两倍。可选,默认值:“default”。 取值范围:
|
EnCStates |
可选 |
参数列表,templateProp中 |
String |
使P状态跟随C状态的变化而变化。(ProcessorCcxEnable为“Enabled”时才会生效)。可选,默认值:“default”。 取值范围:
|
MLCStreamerPrefetcherEnable |
可选 |
参数列表,templateProp中 |
String |
MLC(Mid Level Cache) Streamer预读取功能用于预读取CPU的指令,减少指令读取时间。可选,默认值:“default”。 取值范围:
|
EnableC3 |
可选 |
参数列表,templateProp中 |
String |
关闭所有CPU内部时钟,包括总线接口和APIC。(ProcessorCcxEnable为"Enabled"时才会生效)。可选,默认值:"default",取值范围:
|
DCUIPPrefetcherEnable |
可选 |
参数列表,templateProp中 |
String |
DCU(Data Cache Unit)IP预读取功能用于从历史记录中判断是否有数据需要预读取,从而减少数据的读取时间。可选,默认值:“default”。 取值范围:
|
EnableC6 |
可选 |
参数列表,templateProp中 |
String |
可以降低处理器电压至0。(ProcessorCcxEnable为“Enabled”时才会生效)。 可选,默认值:“default”。 取值范围:
|
DCUStreamerPrefetcherEnable |
可选 |
参数列表,templateProp中 |
String |
DCU(Data Cache Unit)Streamer预读取功能用于预读取CPU的数据,从而减少数据的读取时间。可选,默认值:“default”。 取值范围:
|
EnableC7 |
可选 |
参数列表,templateProp中 |
String |
仅保留最后的线程刷新剩余LLC。(ProcessorCcxEnable为“Enabled”时才会生效)。可选,默认值:“default”。 取值范围:
|
CREnable |
可选 |
参数列表,templateProp中 |
String |
串将指定的物理串口或虚拟串口的数据映射到系统串口。可选,默认值:“default”。 取值范围:
|
CRTerminalType |
可选 |
参数列表,templateProp中 |
String |
串口终端的协议类型。(CREnable为“Enabled”才会生效)。可选,默认值:“default”。 取值范围:
|
CRParity |
可选 |
参数列表,templateProp中 |
String |
奇偶校验功能开关,该功能可以校验代码传输正确性。(CREnable为“Enabled”才会生效)。可选,默认值:“default”。 取值范围:
|
CRBaudRate |
可选 |
参数列表,templateProp中 |
String |
设置串口波特率,表示每秒钟传送的bit个数。(CREnable为“Enabled”才会生效)。可选,默认值:“default”。 取值范围:
|
CRStopBits |
可选 |
参数列表,templateProp中 |
String |
停止位表示单个数据包的最后一位。停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输速率同时也越慢。(CREnable为“Enabled”才会生效)。可选,默认值:“default”。 取值范围:
|
CRDataBits |
可选 |
参数列表,templateProp中 |
String |
设置串口数据位宽,表示通信中实际的数据位。(CREnable为“Enabled”才会生效)
|
OSWdtEnable |
可选 |
参数列表,templateProp中 |
String |
在OS启动过程超时后,设置支持WDT(watchdog timer)响应动作。看门狗需要OS看门狗驱动支持,否则会导致OS启动异常。可选,默认值:“default”。 取值范围:
|
OSWdtTimeout |
可选 |
参数列表,templateProp中 |
String |
设置OS启动过程中,WDT(watchdog timer)等待的最长时间。单位:分钟。(OSWdtEnable为“Enabled”时才会生效)。可选,默认值:“default”。 取值范围:
|
OSWdtAction |
可选 |
参数列表,templateProp中 |
String |
在OS启动过程超时后,WDT的响应方式。有以下四种选项:
可选,默认值:“default”。 取值范围:
|
PxeOpRom |
可选 |
参数列表,templateProp中 |
String |
网络启动筛选,可选,默认值:“default”。取值范围:
|
NetworkProtocol |
可选 |
参数列表,templateProp中 |
String |
网络协议,(BootType取值为UEFI Boot Type需要配置),可选,默认值:“default”。取值范围:
|
PXE1setting |
可选 |
参数列表,templateProp中 |
String |
PXE1启动开关。可选,默认值:“default”。取值范围:
|
PXE2setting |
可选 |
参数列表,templateProp中 |
String |
PXE2启动开关。可选,默认值:“default”。取值范围:
|
PXE3setting |
可选 |
参数列表,templateProp中 |
String |
PXE3启动开关。可选,默认值:“default”。取值范围:
|
PXE4setting |
可选 |
参数列表,templateProp中 |
String |
PXE4启动开关。可选,默认值:“default”。取值范围:
|
PxeOpRom_82599 |
可选 |
参数列表,templateProp中 |
String |
外插82599网卡设备配置,可选,默认值:“default”。取值范围:
|
PxeOpRom_I350 |
可选 |
参数列表,templateProp中 |
String |
外插I350网卡设备配置,可选,默认值:“default”。取值范围:
|
PxeOpRom_X540 |
可选 |
参数列表,templateProp中 |
String |
外插X540网卡设备配置,可选,默认值:“default”。取值范围:
|
SpecialBoot |
可选 |
参数列表,templateProp中 |
String |
设置系统特殊启动顺序,取值范围:
|
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
String |
返回数据。取值为null |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
使用示例
请求样例:
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreateBiosTemplate { private static final String CREATE_TEMPLATE_URL = "/rest/openapi/server/deploy/template"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreateBiosTemplateTest(); } public static void CreateBiosTemplateTest() throws Exception { String openidURL = CREATE_TEMPLATE_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "BIOS_Template1"), new BasicNameValuePair("templateType", "BIOS"), new BasicNameValuePair("templateDesc", "This is a BIOS template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"BootOrder\":\"0123\", \r\n" + " \"VTSupport\":\"Enabled\", \r\n" + " \"PCIeSRIOVSupport\":\"Enabled\", \r\n" + " \"CustomPowerPolicy\":\"Custom\", \r\n" + " \"ProcessorEistEnable\":\"Enabled\", \r\n" + " \"PowerSaving\":\"Disabled\", \r\n" + " \"HTSupport\":\"Enabled\", \r\n" + " \"PowerStateRestoreOnACLoss\":\"Power On\", \r\n" + " \"QuickBoot\":\"Enabled\", \r\n" + " \"QuietBoot\":\"Disabled\", \r\n" + " \"BootType\":\"Legacy Boot Type\", \r\n" + " \"WakeOnPME\":\"Disabled\", \r\n" + " \"VTdSupport\":\"Enabled\", \r\n" + " \"InterruptRemap\":\"Disabled\", \r\n" + " \"ATS\":\"Enabled\", \r\n" + " \"CoherencySupport\":\"Disabled\", \r\n" + " \"PassThroughDma\":\"Enabled\", \r\n" + " \"EnableTurboMode\":\"Enabled\", \r\n" + " \"AcpiVer\":\"ACPI4.0\", \r\n" + " \"NumaEn\":\"Enabled\", \r\n" + " \"MonitorMwaitEnable\":\"Disabled\", \r\n" + " \"PciMem64DecodeSupport\":\"Enabled\", \r\n" + " \"ProcessorCcxEnable\":\"Enabled\", \r\n" + " \"RasMode\":\"Independent\", \r\n" + " \"OsAcpiCx\":\"ACPI C3\", \r\n" + " \"MLCSpatialPrefetcherEnable\":\"Enabled\", \r\n" + " \"EnCStates\":\"Enabled\", \r\n" + " \"MLCStreamerPrefetcherEnable\":\"Enabled\", \r\n" + " \"EnableC3\":\"Disabled\", \r\n" + " \"DCUIPPrefetcherEnable\":\"Enabled\", \r\n" + " \"EnableC6\":\"Disabled\", \r\n" + " \"DCUStreamerPrefetcherEnable\":\"Enabled\", \r\n" + " \"EnableC7\":\"Disabled\", \r\n" + " \"CREnable\":\"Enabled\", \r\n" + " \"CRTerminalType\":\"PC_ANSI\", \r\n" + " \"CRParity\":\"None\", \r\n" + " \"CRBaudRate\":\"115200\", \r\n" + " \"CRStopBits\":\"1\", \r\n" + " \"CRDataBits\":\"8\", \r\n" + " \"OSWdtEnable\":\"Disabled\", \r\n" + " \"OSWdtTimeout\":\"5\", \r\n" + " \"OSWdtAction\":\"Hard Reset\",\r\n" + " \"PxeOpRom_I350\": \"default\",\r\n" + " \"PXE2setting\": \"default\",\r\n" + " \"PXE3setting\": \"default\",\r\n" + " \"PXE1setting\": \"default\",\r\n" + " \"PXE4setting\": \"default\",\r\n" + " \"PxeOpRom_X540\": \"default\",\r\n" + " \"PxeOpRom\": \"default\",\r\n" + " \"PxeOpRom_82599\": \"default\",\r\n" + " \"NetworkProtocol\": \"default\",\r\n" + " \"SpecialBoot\": \"default\"\r\n" + "}") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": null, "resverd": null, "description": "create template success." }
创建RAID配置模板
接口功能
创建RAID配置模板。
URI路径
/rest/openapi/server/deploy/template
访问方法
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,可由大小写字母、数字或- _构成的6-32字符。 |
templateType |
必选 |
参数列表 |
String |
模板类型,必选,创建RAID模板填写 “RAID”。 |
templateDesc |
可选 |
参数列表 |
String |
模板描述,可选,0-127个字符。 |
templateProp |
必选 |
参数列表 |
JSON<template> |
模板属性,必选,RAID配置属,请看RAID配置说明及样例。 |
template配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
AdapterType |
必选 |
参数列表,templateProp中 |
String |
RAID适配器型号,必选,取值范围为:
|
DeleteOriginRAID |
必选 |
参数列表,templateProp中 |
boolean |
是否删除设备上原有RAID配置,必选,取值范围:
|
BootDrive |
可选 |
参数列表,templateProp中 |
String |
启动LUN ID,可选,默认为0。 说明:
系统会自动将RAID组或自定义LUN划分的LUN分区从0开始编号,启动LUNID不得大于最大编号。 |
GlobalHSP |
可选 |
参数列表,templateProp中 |
String |
全局热备盘,可选,默认为空,示例:"0;1",指定硬盘槽位。 说明:
|
RebuildRate |
可选 |
参数列表,templateProp中 |
String |
重构时占用的IO资源的百分比,可选,默认为空,范围:0-100。 说明:
LSI3004/LSI3416/LSI3516支持配置该属性。 |
MigrateRate |
可选 |
参数列表,templateProp中 |
String |
扩容和级别迁移时占用的IO资源的百分比,可选,默认为空,范围:0-100。 说明:
LSI3004/LSI3416/LSI3516支持配置该属性。 |
JBOD |
条件必选 |
参数列表,templateProp中 |
String |
使能硬盘直通功能,必选,取值范围:
说明:
LSI3004/LSI3416/LSI3516支持配置该属性。 |
Patrol |
条件必选 |
参数列表,templateProp中 |
String |
使能硬盘巡检功能,必选,取值范围:
说明:
LSI3004/LSI3416/LSI3516支持配置该属性。 |
PatrolDelay |
条件必选 |
参数列表,templateProp中 |
String |
设置硬盘巡检延时。
说明:
LSI3004/LSI3416/LSI3516支持配置该属性。 |
SlotID |
必选 |
参数列表,templateProp中 |
String |
RAID模板的槽位号。 取值范围: 0-10 说明:
0表示主板槽位,1-10表示PCIE槽位。 北向兼容:如果用户未填SlotID,默认为0槽位。 |
RAIDArray |
必选 |
参数列表,templateProp中 |
JSON<RAIDArray> |
RAID组,每个RAIDArray表示一个RAID组配置,包含RAIDType、DedicateHSP、VDName、DiskArray、WritePolicy、ReadPolicy、CachePolicy、StripSize、PDCache、isCustom、LUNSize属性;请看RAIDArray配置说明及样例。 说明:
|
RAIDArray配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
RAIDType |
必选 |
参数列表,RAIDArray中 |
String |
RAID类型,必选,取值范围:
说明:
|
DedicateHSP |
可选 |
参数列表,RAIDArray中 |
String |
私有热备盘,可选,指定硬盘槽位,示例:"0;1",默认为空。 说明:
|
DiskArray |
必选 |
参数列表,RAIDArray中 |
String |
硬盘组,必选,指定硬盘槽位,示例:"0;1",不能为空。 说明:
|
WritePolicy |
可选 |
参数列表,RAIDArray中 |
String |
写策略,可选,取值范围:
说明:
|
ReadPolicy |
可选 |
参数列表,RAIDArray中 |
String |
读策略,可选,取值范围:
说明:
|
CachePolicy |
可选 |
参数列表,RAIDArray中 |
String |
IO策略,可选,取值范围:
说明:
|
StripSize |
条件必选 |
参数列表,RAIDArray中 |
String |
扇区大小,可选,取值范围:
说明:
|
PDCache |
条件必选 |
参数列表,RAIDArray中 |
String |
硬盘Cache策略,可选,取值范围:
说明:
LSI3004/LSI3416/LSI3516支持此属性 |
isCustom |
可选 |
参数列表,RAIDArray中 |
boolean |
是否自定义划分LUN,可选,默认false,取值范围:
说明:
LSI2308/LSI3008不支持此属性 |
LUNSize |
可选 |
参数列表,RAIDArray中 |
String |
划分LUN,当isCustom为true时必填,示例:"10000;20000;MAXSIZE" 说明:
|
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
String |
返回数据。取值为null |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
使用示例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreateRaidTemplate { private static final String CREATE_TEMPLATE_URL = "/rest/openapi/server/deploy/template"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreateRaidTemplateTest(); } public static void CreateRaidTemplateTest() throws Exception { String openidURL = CREATE_TEMPLATE_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); //Example 1: Create a template named RAID_LSI3008_Template1. For detailed configuration, see the following example and comments. BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "RAID_LSI3008_Template1"), new BasicNameValuePair("templateType", "RAID"), new BasicNameValuePair("templateDesc", "This is a RAID LSI3008 template"), new BasicNameValuePair("templateProp", "{\r\n" + " \"AdapterType\": \"LSI3008\", \r\n" + " \"DeleteOriginRAID\": true, \r\n" + " \"GlobalHSP\": \"\", \r\n" + " \"BootDrive\": \"0\", \r\n" + " \"SlotID\": \"0\", \r\n" + " \"RAIDArray\": [\r\n" + " {\r\n" + " \"RAIDType\": \"0\", \r\n" + " \"DiskArray\": [\r\n" + " {\r\n" + " \"DiskSlot\": \"0;1\" \r\n" + " }\r\n" + " ]\r\n" + " }\r\n" + " ]\r\n" + "}") }; //Example 2: Create a template named RAID_LSI3108_Template1. For detailed configuration, see the following example and comments. BasicNameValuePair[] parameters2 = { new BasicNameValuePair("templateName", "RAID_LSI3108_Template1"), new BasicNameValuePair("templateType", "RAID"), new BasicNameValuePair("templateDesc", "This is a RAID LSI3108 template."), new BasicNameValuePair("templateProp", "{\r\n" + " \"AdapterType\": \"LSI3108\",\r\n" + " \"DeleteOriginRAID\": true,\r\n" + " \"GlobalHSP\": \"0;1\",\r\n" + " \"BootDrive\": \"2\",\r\n" + " \"SlotID\": \"0\", \r\n" + " \"RAIDArray\": [\r\n" + " {\r\n" + " \"RAIDType\": \"0\",\r\n" + " \"DedicateHSP\": \"\",\r\n" + " \"WritePolicy\": \"WriteBack\",\r\n" + " \"ReadPolicy\": \"ReadAhead\",\r\n" + " \"CachePolicy\": \"Cached\",\r\n" + " \"isCustom\": false,\r\n" + " \"DiskArray\": [\r\n" + " {\r\n" + " \"DiskSlot\": \"2;3\"\r\n" + " }\r\n" + " ]\r\n" + " },\r\n" + " {\r\n" + " \"RAIDType\": \"1\",\r\n" + " \"DedicateHSP\": \"4;5\",\r\n" + " \"WritePolicy\": \"WriteThrough\",\r\n" + " \"ReadPolicy\": \"ReadAheadNone\",\r\n" + " \"CachePolicy\": \"Direct\",\r\n" + " \"isCustom\": false,\r\n" + " \"DiskArray\": [\r\n" + " {\r\n" + " \"DiskSlot\": \"6;7\"\r\n" + " }\r\n" + " ]\r\n" + " },\r\n" + " {\r\n" + " \"RAIDType\": \"10\",\r\n" + " \"DedicateHSP\": \"\",\r\n" + " \"WritePolicy\": \"WriteBack\",\r\n" + " \"ReadPolicy\": \"ReadAhead\",\r\n" + " \"CachePolicy\": \"Cached\",\r\n" + " \"isCustom\": true,\r\n" + " \"LUNSize\": \"10000;20000;MAXSIZE\",\r\n" + " \"DiskArray\": [\r\n" + " {\r\n" + " \"DiskSlot\": \"8;9\"\r\n" + " },\r\n" + " {\r\n" + " \"DiskSlot\": \"10;11\"\r\n" + " }\r\n" + " ]\r\n" + " }\r\n" + " ]\r\n" + "}") }; //Example 3: Create a template named RAID_LSI3004_Template1. For detailed configuration, see the following example and comments. BasicNameValuePair[] parameters3 = { new BasicNameValuePair("templateName", "RAID_LSI3004_Template1"), new BasicNameValuePair("templateType", "RAID"), new BasicNameValuePair("templateDesc", "This is a RAID LSI3004 template."), new BasicNameValuePair("templateProp", "{\r\n" + " \"AdapterType\": \"LSI3004\",\r\n" + " \"DeleteOriginRAID\": true,\r\n" + " \"RebuildRate\": \"\",\r\n" + " \"MigrateRate\": \"\",\r\n" + " \"JBOD\": \"Off\",\r\n" + " \"Patrol\": \"Off\",\r\n" + " \"PatrolDelay\": \"\",\r\n" + " \"BootDrive\": \"2\",\r\n" + " \"SlotID\": \"0\", \r\n" + " \"RAIDArray\": [\r\n" + " {\r\n" + " \"RAIDType\": \"0\",\r\n" + " \"WritePolicy\": \"WriteBack\",\r\n" + " \"ReadPolicy\": \"ReadAhead\",\r\n" + " \"CachePolicy\": \"Cached\",\r\n" + " \"StripSize\": \"64\",\r\n" + " \"PDCache\": \"Defau;t\",\r\n" + " \"isCustom\": false,\r\n" + " \"DiskArray\": [\r\n" + " {\r\n" + " \"DiskSlot\": \"0;1\"\r\n" + " }\r\n" + " ]\r\n" + " }\r\n" + " ]\r\n" + "}") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters2); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": null, "resverd": null, "description": "create template success." }
创建HBA配置模板
接口功能
创建HBA配置模板。
URI路径
/rest/openapi/server/deploy/template
访问方法
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,可由大小写字母、数字或- _构成的6-32字符。 |
templateType |
必选 |
参数列表 |
String |
模板类型,必选,创建HBA模板填写 “HBA”。 |
templateDesc |
可选 |
参数列表 |
String |
模板描述,可选,0-127个字符。 |
templateProp |
必选 |
参数列表 |
JSON<template> |
模板属性,必选,HBA配置属性,请看HBA配置说明及样例。 |
template配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
adapterModel |
必选 |
参数列表,templateProp中 |
String |
HBA适配器型号,必选,取值范围为:
|
slot |
必选 |
参数列表,templateProp中 |
String |
HBA适配器槽位,必选,取值范围: 1 ~ 10 |
Port0 |
必选 |
参数列表,templateProp中 |
JSON<Port0~Port1> |
适配器物理端口0配置,必选,详见Port0~Port1配置说明及样例。 说明:
用于设置操作系统是否从SAN启动。如果启用SAN Boot功能,还需设置系统启动相关的目标WWPN、目标WWNN和目标LUN。同一优先级下的三者必须同时配置才能生效。 |
Port1 |
可选 |
参数列表,templateProp中 |
JSON<Port0~Port1> |
适配器物理端口1配置,可选,详见Port0~Port1配置说明及样例。 说明:
adapterModel为LPE12002,LPE16002,QLE2562,QLE2672,MZ220,MZ221时必选。 用于设置操作系统是否从SAN启动。如果启用SAN Boot功能,还需设置系统启动相关的目标WWPN、目标WWNN和目标LUN。同一优先级下的三者必须同时配置才能生效。 |
Port0~Port1配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
SANBoot |
必选 |
参数列表,Port0或Port1中 |
String |
SANBoot功能启用/关闭,必选,取值范围为:
|
Target0~Target7 |
可选 |
参数列表,Port0或Port1中 |
JSON<Target0~Target7> |
0~7优先级下系统启动相关的目标详细配置信息,Target0优先级最高,Target7优先级最低。可选,SANBoot功能启用时才生效。详见Target0~Target7配置属性及样例。 说明:
HBA型号为LPE12000、LPE12002、LPE16000、LPE16002和MZ220时,配置为:Target0 ~ Target7。 HBA型号为QLE2560、QLE2562、QLE2670、QLE2672和MZ221时,配置为:Target0 ~ Target3。 |
Target0~Target7配置属性:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
TargetWWPN |
可选 |
参数列表,Target0~Target7中 |
String |
目标WWPN,可选,取值范围为: 格式:XX:XX:XX:XX:XX:XX:XX:XX或XXXXXXXXXXXXXXXX,其中X为十六进制整数。例如:1A:2A:3A:4A:5A:6A:7A:8A。 说明:
HBA型号为LPE12000、LPE12002、LPE16000、LPE16002、MZ220时,同一优先级下的目标WWPN和目标LUN必须同时配置才能生效。 HBA型号为QLE2560、QLE2562、QLE2670、QLE2672和MZ221时,同一优先级下的目标WWPN、目标WWNN和目标LUN必须同时配置才能生效。 |
TargetWWNN |
可选 |
参数列表,Target0~Target7中 |
String |
目标WWNN,可选,取值范围: 格式:XX:XX:XX:XX:XX:XX:XX:XX或XXXXXXXXXXXXXXXX,其中X为十六进制整数。例如:1A:2A:3A:4A:5A:6A:7A:8A。 说明:
HBA型号为LPE12000、LPE12002、LPE16000、LPE16002、MZ220时,同一优先级下的目标WWPN和目标LUN必须同时配置才能生效。 HBA型号为QLE2560、QLE2562、QLE2670、QLE2672和MZ221时,同一优先级下的目标WWPN、目标WWNN和目标LUN必须同时配置才能生效。 |
TargetLUN |
可选 |
参数列表,Target0~Target7中 |
String |
目标LUN,可选,设置需要扫描的LUN。当目标LUN上存在系统文件时,操作系统将从该LUN启动。 取值范围: 0 ~ 255之间的整数。 说明:
HBA型号为LPE12000、LPE12002、LPE16000、LPE16002、MZ220时,同一优先级下的目标WWPN和目标LUN必须同时配置才能生效。 HBA型号为QLE2560、QLE2562、QLE2670、QLE2672和MZ221时,同一优先级下的目标WWPN、目标WWNN和目标LUN必须同时配置才能生效。 |
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
String |
返回数据。取值为null |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
使用示例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreateHBATemplate { private static final String CREATE_TEMPLATE_URL = "/rest/openapi/server/deploy/template"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreateHBATemplateTest(); } public static void CreateHBATemplateTest() throws Exception { String openidURL = CREATE_TEMPLATE_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); //Example 1: Create an HBA template named HBA-LPE12002_Template1 and configure all Target information. For detailed configuration, see the following example and comments. BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "HBA_LPE12002_Template1"), new BasicNameValuePair("templateType", "HBA"), new BasicNameValuePair("templateDesc", "This is a HBA template."), new BasicNameValuePair("templateProp", "{\r\n" + " \"adapterModel\": \"LPE12002\",\r\n" + " \"slot\": \"1\",\r\n" + " \"Port0\": {\r\n" + " \"SANBoot\": \"Enabled\",\r\n" + " \"Target0\": {\r\n" + " \"TargetWWPN\": \"11:11:11:11:11:11:11:11\",\r\n" + " \"TargetLUN\": \"111\"\r\n" + " },\r\n" + " \"Target1\": {\r\n" + " \"TargetWWPN\": \"22:22:22:22:22:22:22:22\",\r\n" + " \"TargetLUN\": \"112\"\r\n" + " },\r\n" + " \"Target2\": {\r\n" + " \"TargetWWPN\": \"33:33:33:33:33:33:33:33\",\r\n" + " \"TargetLUN\": \"113\"\r\n" + " },\r\n" + " \"Target3\": {\r\n" + " \"TargetWWPN\": \"44:44:44:44:44:44:44:44\",\r\n" + " \"TargetLUN\": \"114\"\r\n" + " },\r\n" + " \"Target4\": { \r\n" + " \"TargetWWPN\": \"55:55:55:55:55:55:55:55\", \r\n" + " \"TargetLUN\": \"115\" \r\n" + " }, \r\n" + " \"Target5\": { \r\n" + " \"TargetWWPN\": \"66:66:66:66:66:66:66:66\", \r\n" + " \"TargetLUN\": \"116\" \r\n" + " }, \r\n" + " \"Target6\": { \r\n" + " \"TargetWWPN\": \"77:77:77:77:77:77:77:77\", \r\n" + " \"TargetLUN\": \"117\" \r\n" + " }, \r\n" + " \"Target7\": { \r\n" + " \"TargetWWPN\": \"88:88:88:88:88:88:88:88\", \r\n" + " \"TargetLUN\": \"118\" \r\n" + " } \r\n" + " },\r\n" + " \"Port1\": {\r\n" + " \"SANBoot\": \"Disabled\"\r\n" + " }\r\n" + "}") }; //Example 2: Create an HBA template named HBA-LPE12002_Template2. Configure four targets for Port 1, and disable the function of startup from SAN for Port 2. For detailed configuration, see the following example and comments. BasicNameValuePair[] parameters2 = { new BasicNameValuePair("templateName", "HBA_QLE2560_Template1"), new BasicNameValuePair("templateType", "HBA"), new BasicNameValuePair("templateDesc", "This is a HBA template."), new BasicNameValuePair("templateProp", "{\r\n" + " \"adapterModel\": \"QLE2560\", \r\n" + " \"slot\": \"3\", \r\n" + " \"Port0\": { \r\n" + " \"SANBoot\": \"Enabled\", \r\n" + " \"Target0\": { \r\n" + " \"TargetWWPN\": \"11:11:11:11:11:11:11:11\", \r\n" + " \"TargetWWNN\": \"55:55:55:55:55:55:55:55\", \r\n" + " \"TargetLUN\": \"111\" \r\n" + " }, \r\n" + " \"Target1\": { \r\n" + " \"TargetWWPN\": \"22:22:22:22:22:22:22:22\", \r\n" + " \"TargetWWNN\": \"66:66:66:66:66:66:66:66\", \r\n" + " \"TargetLUN\": \"112\" \r\n" + " }, \r\n" + " \"Target2\": { \r\n" + " \"TargetWWPN\": \"33:33:33:33:33:33:33:33\", \r\n" + " \"TargetWWNN\": \"77:77:77:77:77:77:77:77\", \r\n" + " \"TargetLUN\": \"113\" \r\n" + " }, \r\n" + " \"Target3\": { \r\n" + " \"TargetWWPN\": \"44:44:44:44:44:44:44:44\", \r\n" + " \"TargetWWNN\": \"88:88:88:88:88:88:88:88\", \r\n" + " \"TargetLUN\": \"114\" \r\n" + " } \r\n" + " } \r\n" + "} ") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": null, "resverd": null, "description": "create template success." }
创建CNA配置模板
接口功能
创建CNA配置模板。
URI路径
/rest/openapi/server/deploy/template
访问方法auth
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,可由大小写字母、数字或- _构成的6-32字符。 |
templateType |
必选 |
参数列表 |
String |
模板类型,必选,创建CNA模板填写 “CNA”。 |
templateDesc |
可选 |
参数列表 |
String |
模板描述,可选,0-127个字符。 |
templateProp |
必选 |
参数列表 |
JSON<template> |
模板属性,必选,包含adapterModel、MFState、MFState1、Slot、Port0~Port3请看CNA配置说明及样例。 说明:
adapterModel为MZ512时涉及MFState1属性。 |
template配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
adapterModel |
必选 |
参数列表,templateProp中 |
String |
CNA适配器型号,必选,取值范围:
|
Slot |
可选 |
参数列表,templateProp中 |
String |
CNA适配器所在槽位,可选,默认值为1,取值范围: 1 ~ 8 |
MFState |
可选 |
参数列表,templateProp中 |
String |
MF功能支持多通道PF(一个PF表示一个逻辑通道)。启用该功能后一个物理端口将被划分为4个逻辑通道。每个逻辑通道可以根据需要设置为网口NIC、FCoE、或iSCSI 可选,默认值为Enabled,取值范围:
说明:
对于MFState取值为Disabled情况下,当网口为NIC所有物理端口只包含一个逻辑通道PF0,当网口为FCoE或iSCSI时所有物理端口包含两个逻辑通道PF0和PF1。 不能和SR-IOV同时使能。adapterModel为MZ910型号时不涉及该属性值。 adapterModel为MZ512型号时该属性值只控制Port0、Port1的多通道功能开关。 |
MFState1 |
可选 |
参数列表,templateProp中 |
String |
MF功能支持多通道PF(一个PF表示一个逻辑通道)。启用该功能后一个物理端口将被划分为4个逻辑通道。每个逻辑通道可以根据需要设置为网口NIC、FCoE、或iSCSI 可选,默认值为Enabled,取值范围:
说明:
对于MFState取值为Disabled情况下,当网口为NIC所有物理端口只包含一个逻辑通道PF0,当网口为FCoE或iSCSI时所有物理端口包含两个逻辑通道PF0和PF1。 不能和SR-IOV同时使能。adapterModel为MZ910型号时不涉及该属性值。 adapterModel为MZ512型号时该属性值只控制Port2、Port3的多通道功能开关。 |
Port0~Port3 |
必选 |
参数列表,templateProp中 |
JSON<Port0~Port3> |
Port配置,必选,取值范围:
说明:
|
Port0~Port3配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
PF0~PF3 |
必选 |
参数列表,Port中 |
JSON<PF0~PF3> |
PF逻辑通道属性,PF取值范围:
说明:
|
PXEBoot |
可选 |
参数列表,Port中 |
String |
PXEBoot使能,可选,默认为Enabled,取值范围:
说明:
该参数直属于物理端口情况只涉及MZ910的Port0、Port1。 |
SANBoot |
可选 |
参数列表,Port中 |
String |
SANBoot使能,可选,默认为Enabled,取值范围:
说明 说明:
该参数直属于物理端口情况只涉及MZ910的Port2、Port3。 |
Target0~Target7 |
可选 |
参数列表,Port中 |
String |
0~7优先级下系统启动相关的目标详细配置信息,Target0优先级最高,Target7优先级最低。可选,SANBoot功能启用时才生效,可选。 取值范围: 格式: TargetWWPN:XX:XX:XX:XX:XX:XX:XX:XX;TargetLUN:TargetLUNID或TargetWWPN:XXXXXXXXXXXXXXXX;TargetLUN:TargetLUNID 其中X为十六进制整数。例如:1A:2A:3A:4A:5A:6A:7A:8A。 其中TargetLUNID取值范围:0 ~ 255之间的整数。 说明:
|
PF0 PF2 PF3配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
MinBandWidth |
可选 |
参数列表,PF0/PF2/PF3中 |
String |
单个虚拟网口最小带宽比率,可选,默认值为 25,取值范围:1~100整数。 说明:
单个物理端口中所有虚拟端口最小带宽比率相加必须为100。 |
MaxBandWidth |
可选 |
参数列表,PF0/PF2/PF3中 |
String |
单个虚拟网口最大带宽比率,可选,默认值为100,取值范围:1~100整数 说明:
最小带宽比率不能大于最大带宽比率 |
PFVLANID |
必选 |
参数列表,PF0/PF2/PF3中 |
String |
VLANID,必选,取值范围:
说明:
|
PXEBoot |
可选 |
参数列表,PF0中 |
String |
PXE启动使能,可选,默认值为Disabled,取值范围:
说明:
该参数在4个PF中只涉及PF0。 |
SRIOV |
可选 |
参数列表,PF0中 |
String |
单通道 I/O 虚拟化使能,可选,默认值为Disabled,取值范围:
说明:
不能和MFState或者MFState1同时使能,MFState或者MFState1为Enabled,不支持SRIOV配置。 adapterModel为MZ910型号时不涉及该属性值。 该参数在4个PF中只涉及PF0。 |
PF1配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
PFType |
可选 |
参数列表,PF1中 |
String |
虚拟端口类型,可选,默认值为NIC。取值范围:
|
MinBandWidth |
可选 |
参数列表,PF1中 |
String |
单个虚拟网口最小带宽比率,可选,默认值为 25,取值范围:1~100整数 说明:
单个物理端口中所有虚拟端口最小带宽比率相加必须为100 |
MaxBandWidth |
可选 |
参数列表,PF1中 |
String |
单个虚拟网口最大带宽比率,可选,默认值100,取值范围:1~100整数 说明:
最小带宽比率不能大于最大带宽比率 |
PFVLANID |
必选 |
参数列表,PF1中 |
String |
VLANID,必选,取值范围:
说明:
|
以下类型为iSCSI特有属性: |
||||
iSCSIBoot |
可选 |
参数列表,PF1中 |
String |
iSCSIBoot,可选,默认值为Disabled,取值:
说明:
该参数只涉及PF1类型选择为iSCSI。 |
Network |
必选 |
参数列表,PF1中 |
JSON<Network> |
网络配置,必选,取值范围: 具体参看Network详细配置说明 说明:
该参数只涉及PF1类型选择为iSCSI。 |
Initiator |
必选 |
参数列表,PF1中 |
JSON<Initiator> |
启动器配置,必选,取值范围: 具体参看Initiator详细配置说明 说明:
该参数只涉及PF1类型选择为iSCSI。 |
Target |
必选 |
参数列表,PF1中 |
JSON<Target> |
Target配置,必选,取值范围: 具体参看Target详细配置说明 说明:
该参数只涉及PF1类型选择为iSCSI。 |
以下类型为FCoE特有属性: |
||||
SANBoot |
可选 |
参数列表,PF1中 |
String |
SANBoot使能,可选,默认值为Enabled,取值范围:
说明:
该参数只涉及PF1类型选择为FCoE。 |
Target0~Target7 |
可选 |
参数列表,PF1中 |
Sting |
0~7优先级下系统启动相关的目标详细配置信息,Target0优先级最高,Target7优先级最低。可选,SANBoot功能启用时才生效。可选,取值范围为: 格式: TargetWWPN:XX:XX:XX:XX:XX:XX:XX:XX;TargetLUN:TargetLUNID或TargetWWPN:XXXXXXXXXXXXXXXX;TargetLUN:TargetLUNID 其中X为十六进制整数。例如:1A:2A:3A:4A:5A:6A:7A:8A。 其中TargetLUNID取值范围:0 ~ 255之间的整数。 说明:
|
Network配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
VLANEnabled |
可选 |
参数列表,Network中 |
String |
VLAN使能,可选,默认值为Disabled,取值范围:
|
VLANID |
必选 |
参数列表,Network中 |
String |
VLANID号,必选,取值范围:0~4094整数 说明:
该参数只涉及VLAN为Enabled时 |
Priority |
必选 |
参数列表,Network中 |
String |
优先级,必选,取值范围:0~7整数 说明:
该参数只涉及VLAN为Enabled时 |
DHCP |
可选 |
参数列表,Network中 |
String |
DHCP使能,可选,默认值为Disabled,取值范围:
|
IPAddress |
必选 |
参数列表,Network中 |
String |
IPv4地址,必选,取值范围: 规则: IP地址首位必须为1到223的整数,其余必须为0到255的整数,且首位不能为127末位不能为0。 说明:
该参数只涉及DHCP为Disabled时 |
SubnetMask |
必选 |
参数列表,Network中 |
String |
子网掩码,必选,取值范围: 根据IP地址填写相应的子网掩码 说明:
该参数只涉及DHCP为Disabled时 |
DefaultGateway |
必选 |
参数列表,Network中 |
String |
默认网关,必选,取值范围: IP地址首位必须为1到223的整数,其余必须为0到255的整数,且首位不能为127末位不能为0。 说明:
该参数只涉及DHCP为Disabled时 |
Initiator配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
InitiatorName |
必选 |
参数列表,Initiator中 |
String |
启动器名称,必选,取值范围: 规则:请输入以iqn.开头的11~223位0-9、a-z、A-Z、. : -字符,遵循格式为iqn.xx:MAC。 例如规范格式iqn.1990-08.com.huawei:20-14-03-10-14-30 |
InitiatorAlias |
必选 |
参数列表,Initiator中 |
String |
InitiatorAlias,必选,取值范围:0~31位字符,规则:0-9、a-z字符。 |
HeaderDigest |
可选 |
参数列表,Initiator中 |
String |
HeaderDigest,可选,默认值为Disabled,取值范围:
|
ImmediateData |
可选 |
参数列表,Initiator中 |
String |
ImmediateData,可选,默认值为Enabled,取值:
|
DataDigest |
可选 |
参数列表,Initiator中 |
String |
DataDigest,可选,默认值为Disabled,取值范围: Enabled Disabled |
Auth |
可选 |
参数列表,Initiator中 |
String |
Auth,可选,默认值为none,取值范围:
|
Target配置说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
TargetIP |
必选 |
参数列表,Target中 |
String |
TargetIP,必选,取值范围: 规则:仅支持IPv4,地址首位必须为1到223的整数,其余必须为0到255的整数,且首位不能为127末位不能为0 |
TargetPort |
必选 |
参数列表,Target中 |
String |
TargetPort,必选,取值范围:1024~65535之间的整数。 |
TargetName |
必选 |
参数列表,Target中 |
String |
TargetName,必选,取值范围:11~223位字符。规则:0-9、a-z、A-Z、. : -字符。 |
Login |
可选 |
参数列表,Target中 |
String |
Login项,可选,默认值为Enabled,取值范围:
|
Boot |
可选 |
参数列表,Target中 |
String |
Boot项,可选,默认值为Disabled,取值范围:
|
HeaderDigest |
可选 |
参数列表,Target中 |
String |
HeaderDigest,可选,默认值为Disabled,取值范围:
|
ImmediateData |
可选 |
参数列表,Target中 |
String |
ImmediateData,可选,默认值为Enabled,取值范围:
|
DataDigest |
可选 |
参数列表,Target中 |
String |
DataDigest,可选,默认值为Disabled,取值范围:
|
Auth |
可选 |
参数列表,Target中 |
String |
Auth,可选,默认值为none,取值范围:
|
ETO |
可选 |
参数列表,Target中 |
String |
ETO,可选,默认值为30,取值范围:0~3600之间的整数。 |
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
String |
返回数据。取值为null |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
使用示例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreateCNATemplate { private static final String CREATE_TEMPLATE_URL = "/rest/openapi/server/deploy/template"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreateCNATemplateTest(); } public static void CreateCNATemplateTest() throws Exception { String openidURL = CREATE_TEMPLATE_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); //Example 1: Create a template named CNA_MZ510_Template and where MFState is Disabled. BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "CNA_MZ510_Template"), new BasicNameValuePair("templateType", "CNA"), new BasicNameValuePair("templateDesc", "This is a MZ510 template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"adapterModel\": \"MZ510\", \r\n" + " \"Slot\": \"1\", \r\n" + " \"MFState\": \"Disabled\", \r\n" + " \"Port0\": { \r\n" + " \"PF0\": { \r\n" + " \"PXEBoot\": \"Disabled\", \r\n" + " \"PFType\": \"NIC\",\r\n" + " \"SRIOV\": \"Enabled\"\r\n" + " } \r\n" + " }, \r\n" + " \"Port1\": { \r\n" + " \"PF0\": { \r\n" + " \"PXEBoot\": \"Disabled\", \r\n" + " \"PFType\": \"NIC\", \r\n" + "\"SRIOV\": \"Enabled\"\r\n" + " } \r\n" + " } \r\n" + "}") }; //Example 2: Create a template named CNA_OCE11102_Template and where the PF1 types of ports 0 and 1 are NIC. BasicNameValuePair[] parameters2 = { new BasicNameValuePair("templateName", "CNA_OCE11102_Template2"), new BasicNameValuePair("templateType", "CNA"), new BasicNameValuePair("templateDesc", "This is a CNA template"), new BasicNameValuePair("templateProp", "{ \r\n" + " \"adapterModel\":\"OCE11102\", \r\n" + " \"MFState\":\"Enabled\", \r\n" + " \"Slot\":\"1\", \r\n" + " \"Port0\":{ \r\n" + " \"PF0\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"2\", \r\n" + " \"PXEBoot\":\"Disabled\" \r\n" + " }, \r\n" + " \"PF1\":{ \r\n" + " \"PFType\":\"NIC\", \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"3\" \r\n" + " }, \r\n" + " \"PF2\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"4\" \r\n" + " }, \r\n" + " \"PF3\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"5\" \r\n" + " } \r\n" + " }, \r\n" + " \"Port1\":{ \r\n" + " \"PF0\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"6\", \r\n" + " \"PXEBoot\":\"Disabled\" \r\n" + " }, \r\n" + " \"PF1\":{ \r\n" + " \"PFType\":\"NIC\", \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"7\" \r\n" + " }, \r\n" + " \"PF2\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"8\" \r\n" + " }, \r\n" + " \"PF3\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"9\" \r\n" + " } \r\n" + " } \r\n" + "}") }; //Example 3: Create a template named CNA_OCE11102_Template and where the PF1 types of ports 0 and 1 are FCoE. BasicNameValuePair[] parameters3 = { new BasicNameValuePair("templateName", "CNA_OCE11102_Template3"), new BasicNameValuePair("templateType", "CNA"), new BasicNameValuePair("templateDesc", "This is template description"), new BasicNameValuePair("templateProp", "{ \r\n" + " \"adapterModel\":\"OCE11102\", \r\n" + " \"MFState\":\"Enabled\", \r\n" + " \"Slot\": \"1\", \r\n" + " \"Port0\":{ \r\n" + " \"PF0\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\": \"100\", \r\n" + " \"PFVLANID\":\"2\", \r\n" + " \"PXEBoot\":\"Disabled\" \r\n" + " }, \r\n" + " \"PF1\":{ \r\n" + " \"PFType\":\"FCoE\", \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"0\", \r\n" + " \"SANBoot\":\"Enabled\", \r\n" + " \"Target0\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:0\", \r\n" + " \"Target1\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:1\", \r\n" + " \"Target2\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:2\", \r\n" + " \"Target3\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:3\", \r\n" + " \"Target4\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:4\", \r\n" + " \"Target5\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:5\", \r\n" + " \"Target6\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:6\", \r\n" + " \"Target7\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:7\" \r\n" + " }, \r\n" + " \"PF2\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"3\" \r\n" + " }, \r\n" + " \"PF3\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"4\" \r\n" + " } \r\n" + " }, \r\n" + " \"Port1\":{ \r\n" + " \"PF0\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"5\", \r\n" + " \"PXEBoot\":\"Disabled\" \r\n" + " }, \r\n" + " \"PF1\":{ \r\n" + " \"PFType\":\"FCoE\", \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"0\", \r\n" + " \"SANBoot\":\"Disabled\" \r\n" + " }, \r\n" + " \"PF2\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"6\" \r\n" + " }, \r\n" + " \"PF3\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"7\" \r\n" + " } \r\n" + " } \r\n" + "}") }; //Example 4: Create a template named CNA_OCE11102_Template and where the PF1 types of ports 0 and 1 are iSCSI. BasicNameValuePair[] parameters4 = { new BasicNameValuePair("templateName", "CNA_OCE11102_Template4"), new BasicNameValuePair("templateType", "CNA"), new BasicNameValuePair("templateDesc", "This is template description"), new BasicNameValuePair("templateProp", "{ \r\n" + " \"adapterModel\":\"OCE11102\", \r\n" + " \"MFState\":\"Enabled\", \r\n" + " \"Slot\":\"1\", \r\n" + " \"Port0\":{ \r\n" + " \"PF0\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"2\", \r\n" + " \"PXEBoot\":\"Disabled\" \r\n" + " }, \r\n" + " \"PF1\":{ \r\n" + " \"PFType\":\"iSCSI\", \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"0\", \r\n" + " \"iSCSIBoot\":\"Disabled\", \r\n" + " \"Network\":{ \r\n" + " \"VLANEnabled\":\"Enabled\", \r\n" + " \"VLANID\":\"1\", \r\n" + " \"Priority\":\"7\", \r\n" + " \"DHCP\":\"Disabled\", \r\n" + " \"IPAddress\":\"192.168.1.123\", \r\n" + " \"SubnetMask\":\"255.255.0.0\", \r\n" + " \"DefaultGateway\":\"192.168.1.1\" \r\n" + " }, \r\n" + " \"Initiator\":{ \r\n" + " \"InitiatorName\":\"iqn.1990-08.com.huawei:20-00-00-00-00-00\", \r\n" + " \"InitiatorAlias\":\"initiatoralias\", \r\n" + " \"HeaderDigest\":\"Disabled\", \r\n" + " \"ImmediateData\":\"Enabled\", \r\n" + " \"DataDigest\":\"Disabled\", \r\n" + " \"Auth\":\"0\", \r\n" + " }, \r\n" + " \"Target\":{ \r\n" + " \"TargetIP\":\"192.168.123.123\", \r\n" + " \"TargetPort\":\"1024\", \r\n" + " \"TargetName\":\"targetnameexample\", \r\n" + " \"Login\":\"Enabled\", \r\n" + " \"Boot\":\"Disabled\", \r\n" + " \"HeaderDigest\":\"Disabled\", \r\n" + " \"ImmediateData\":\"Enabled\", \r\n" + " \"DataDigest\":\"Disabled\", \r\n" + " \"Auth\":\"0\", \r\n" + " \"ETO\":\"30\" \r\n" + " } \r\n" + " }, \r\n" + " \"PF2\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"3\" \r\n" + " }, \r\n" + " \"PF3\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"4\" \r\n" + " } \r\n" + " }, \r\n" + " \"Port1\":{ \r\n" + " \"PF0\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"5\", \r\n" + " \"PXEBoot\":\"Disabled\" \r\n" + " }, \r\n" + " \"PF1\":{ \r\n" + " \"PFType\":\"iSCSI\", \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"0\", \r\n" + " \"iSCSIBoot\":\"Enabled\" \r\n" + " }, \r\n" + " \"PF2\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"6\" \r\n" + " }, \r\n" + " \"PF3\":{ \r\n" + " \"MinBandWidth\":\"25\", \r\n" + " \"MaxBandWidth\":\"100\", \r\n" + " \"PFVLANID\":\"7\" \r\n" + " } \r\n" + " } \r\n" + "}") }; //Example 5: Create a template named CNA_MZ910_Template. BasicNameValuePair[] parameters5 = { new BasicNameValuePair("templateName", "Template_MZ910"), new BasicNameValuePair("templateType", "CNA"), new BasicNameValuePair("templateDesc", "This is template description"), new BasicNameValuePair("templateProp", "{ \r\n" + " \"adapterModel\":\"MZ910\", \r\n" + " \"Slot\":\"1\", \r\n" + " \"Port0\":{ \r\n" + " \"PXEBoot\":\"Enabled\" \r\n" + " }, \r\n" + " \"Port1\":{ \r\n" + " \"PXEBoot\":\"Disabled\" \r\n" + " }, \r\n" + " \"Port2\":{ \r\n" + " \"SANBoot\":\"Enabled\", \r\n" + " \"Target0\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:0\", \r\n" + " \"Target1\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:1\", \r\n" + " \"Target2\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:2\", \r\n" + " \"Target3\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:3\", \r\n" + " \"Target4\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:4\", \r\n" + " \"Target5\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:5\", \r\n" + " \"Target6\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:6\", \r\n" + " \"Target7\":\"TargetWWPN:1A:2A:3A:4A:5A:6A:7A:8A;TargetLUN:7\" \r\n" + " }, \r\n" + " \"Port3\":{ \r\n" + " \"SANBoot\":\"Disabled\" \r\n" + " } \r\n" + "}") }; //Example 6: Create a template named CNA_MZ512_Template and where MFState is Disabled and MFState1 is Enabled. BasicNameValuePair[] parameters6 = { new BasicNameValuePair("templateName", "Template_MZ512"), new BasicNameValuePair("templateType", "CNA"), new BasicNameValuePair("templateDesc", "This is template description"), new BasicNameValuePair("templateProp", "{\r\n" + " \"adapterModel\": \"MZ512\",\r\n" + " \"Slot\": \"1\",\r\n" + " \"MFState\": \"Disabled\",\r\n" + " \"MFState1\": \"Enabled\",\r\n" + " \"Port0\": {\r\n" + " \"PF0\": {\r\n" + " \"PXEBoot\": \"Disabled\",\r\n" + " \"PFType\": \"NIC\",\r\n" + " \"SRIOV\": \"Enabled\"\r\n" + " }\r\n" + " },\r\n" + " \"Port1\": {\r\n" + " \"PF0\": {\r\n" + " \"PXEBoot\": \"Disabled\",\r\n" + " \"PFType\": \"NIC\",\r\n" + " \"SRIOV\": \"Enabled\"\r\n" + " }\r\n" + " },\r\n" + " \"Port2\": {\r\n" + " \"PF0\": {\r\n" + " \"MinBandWidth\": 25,\r\n" + " \"MaxBandWidth\": \"100\",\r\n" + " \"PXEBoot\": \"Disabled\",\r\n" + " \"PFType\": \"NIC\",\r\n" + " \"PFVLANID\": \"2\"\r\n" + " },\r\n" + " \"PF1\": {\r\n" + " \"MinBandWidth\": 25,\r\n" + " \"MaxBandWidth\": \"100\",\r\n" + " \"iSCSIBoot\": \"Disabled\",\r\n" + " \"PFType\": \"iSCSI\",\r\n" + " \"PFVLANID\": \"0\"\r\n" + " },\r\n" + " \"PF2\": {\r\n" + " \"MinBandWidth\": 25,\r\n" + " \"MaxBandWidth\": \"100\",\r\n" + " \"PFType\": \"NIC\",\r\n" + " \"PFVLANID\": \"3\"\r\n" + " },\r\n" + " \"PF3\": {\r\n" + " \"MinBandWidth\": 25,\r\n" + " \"MaxBandWidth\": \"100\",\r\n" + " \"PFType\": \"NIC\",\r\n" + " \"PFVLANID\": \"4\"\r\n" + " }\r\n" + " },\r\n" + " \"Port3\": {\r\n" + " \"PF0\": {\r\n" + " \"MinBandWidth\": 25,\r\n" + " \"MaxBandWidth\": \"100\",\r\n" + " \"PXEBoot\": \"Disabled\",\r\n" + " \"PFType\": \"NIC\",\r\n" + " \"PFVLANID\": \"5\"\r\n" + " },\r\n" + " \"PF1\": {\r\n" + " \"MinBandWidth\": 25,\r\n" + " \"MaxBandWidth\": \"100\",\r\n" + " \"iSCSIBoot\": \"Disabled\",\r\n" + " \"PFType\": \"iSCSI\",\r\n" + " \"PFVLANID\": \"0\"\r\n" + " },\r\n" + " \"PF2\": {\r\n" + " \"MinBandWidth\": 25,\r\n" + " \"MaxBandWidth\": \"100\",\r\n" + " \"PFType\": \"NIC\",\r\n" + " \"PFVLANID\": \"6\"\r\n" + " },\r\n" + " \"PF3\": {\r\n" + " \"MinBandWidth\": 25,\r\n" + " \"MaxBandWidth\": \"100\",\r\n" + " \"PFType\": \"NIC\",\r\n" + " \"PFVLANID\": \"7\"\r\n" + " }\r\n" + " }\r\n" + " }") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters4); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": null, "resverd": null, "description": "create template success." }
创建iBMC模板
接口功能
创建iBMC配置模板。
URI路径
/rest/openapi/server/deploy/template
访问方法
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,可由大小写字母、数字或- _构成的6-32字符。 |
templateType |
必选 |
参数列表 |
String |
模板类型,必选,创建IBMC配置模板填写 “IBMC”。模板类型有BIOS、RAID、HBA、CNA、POWER、NETWORK、OS和IBMC。 |
templateDesc |
可选 |
参数列表 |
String |
模板描述,可选,0-127个字符。 |
templateProp |
必选 |
参数列表 |
JSON<template> |
模板属性,必选,iBMC配置属性,请参见下表及样例。 |
template配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
systemBootOption |
必选 |
参数列表,templateProp中 |
String |
系统启动选项,必选。取值范围
|
dnsConfig |
可选 |
参数列表,templateProp中 |
JSON<dnsConfig> |
DNS配置,可选。当服务设置选择DNS时需配置。 |
ntpConfig |
可选 |
参数列表,templateProp中 |
JSON<ntpConfig> |
NTP配置,可选。当服务设置选择NTP时需配置。 |
ldapConfig |
可选 |
参数列表,templateProp中 |
JSON<ldapConfig> |
LDAP配置,可选。当服务设置选择LDAP时需配置。 |
dnsConfig配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
dnsSource |
必选 |
参数列表,dnsConfig中 |
String |
DNS获取模式,必选。取值范围:
|
domainName |
必选 |
参数列表,dnsConfig中 |
String |
域名。dnsSource参数为1时必选。 |
primaryDnsServer |
必选 |
参数列表,dnsConfig中 |
String |
首选DNS服务器。dnsSource参数为1时必选。 |
secondaryDnsServer |
可选 |
参数列表,dnsConfig中 |
String |
备用DNS服务器。dnsSource参数为1时配置,可选。 |
ntpConfig配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
ntpStatus |
必选 |
参数列表,ntpConfig中 |
String |
NTP状态,必选。取值范围
|
ntpServerSource |
必选 |
参数列表,ntpConfig中 |
String |
NTP服务源,ntpStatus为true时必选。取值范围:
|
bindNtpIpProtocol |
必选 |
参数列表,ntpConfig中 |
String |
NTP的约束IP协议,ntpServerSource为0时必选,ntpServerSource为1时入参不存在此参数。取值范围:
|
primaryNtpServer |
必选 |
参数列表,ntpConfig中 |
String |
首选NTP服务器,ntpServerSource为1时必选。 |
secondaryNtpServer |
可选 |
参数列表,ntpConfig中 |
String |
备选NTP服务器,ntpServerSource为1时可选。 |
ldapConfig配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
ldapStatus |
必选 |
参数列表,ldapConfig中 |
String |
LDAP状态,必选。取值范围
|
domainControllerAddress |
必选 |
参数列表,ldapConfig中 |
String |
域控制器地址,ldapStatus为true时必选。 |
userDomain |
必选 |
参数列表,ldapConfig中 |
String |
用户域,ldapStatus为true时必选。输入1~255个格式为“CN=XXX,DC=XXX,DC=XXX”的字符串,其中XXX不能包含#',"&和空格,DC=XXX可以有任意个。 |
roleGroup |
必选 |
参数列表,ldapConfig中 |
JSON<roleGroup> |
角色组,ldapStatus为true时必选。 说明:
角色组至少一个,最多可创建5个角色组。 |
roleGroup配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
roleGroupIndex |
必选 |
参数列表,roleGroup中 |
String |
角色组索引,必选。 取值范围1-5。 例如:"roleGroupIndex": "1"代表角色组1。 |
groupName |
必选 |
参数列表,roleGroup中 |
String |
组名,必选。 |
groupDomain |
必选 |
参数列表,roleGroup中 |
String |
组域,必选。输入1~255个格式为“CN=XXX,OU=XXX,DC=XXX,DC=XXX”的字符串,其中XXX不能包含#',"&和空格,DC=XXX可以有任意个。 |
groupPrivilege |
必选 |
参数列表,roleGroup中 |
String |
组特权,必选。取值范围:
|
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
String |
返回数据。取值为null |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
使用示例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreateiBMCTemplate { private static final String CREATE_TEMPLATE_URL = "/rest/openapi/server/deploy/template"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreateiBMCTemplateTest(); } public static void CreateiBMCTemplateTest() throws Exception { String openidURL = CREATE_TEMPLATE_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); //example 1: creating an iBMC template without service configuration BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "iBMC_Template1"), new BasicNameValuePair("templateType", "IBMC"), new BasicNameValuePair("templateDesc", "This is an iBMC template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"systemBootOption\": \"1\" \r\n" + "}") }; //example 2: creating an iBMC template with NTP configuration BasicNameValuePair[] parameters2 = { new BasicNameValuePair("templateName", "iBMC_Template2"), new BasicNameValuePair("templateType", "IBMC"), new BasicNameValuePair("templateDesc", "This is an iBMC template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"systemBootOption\": \"1\", \r\n" + " \"ntpConfig\": \r\n" + " { \r\n" + " \"ntpStatus\": \"true\", \r\n" + " \"ntpServerSource\": \"1\", \r\n" + " \"primaryNtpServer\": \"192.168.9.1\", \r\n" + " \"secondaryNtpServer\": \"192.168.9.2\" \r\n" + " } \r\n" + "}") }; //example 3: creating an iBMC template with DNS configuration BasicNameValuePair[] parameters3 = { new BasicNameValuePair("templateName", "iBMC_Template3"), new BasicNameValuePair("templateType", "IBMC"), new BasicNameValuePair("templateDesc", "This is an iBMC template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"systemBootOption\": \"1\", \r\n" + " \"dnsConfig\": \r\n" + " { \r\n" + " \"dnsSource\": \"1\", \r\n" + " \"domainName\": \"aaa\", \r\n" + " \"primaryDnsServer\": \"192.168.9.1\", \r\n" + " \"secondaryDnsServer\": \"192.168.9.2\" \r\n" + " } \r\n" + "}") }; //example 4: creating an iBMC template with LDAP configuration BasicNameValuePair[] parameters4 = { new BasicNameValuePair("templateName", "iBMC_Template4"), new BasicNameValuePair("templateType", "IBMC"), new BasicNameValuePair("templateDesc", "This is an iBMC template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"systemBootOption\": \"1\", \r\n" + " \"ldapConfig\": \r\n" + " { \r\n" + " \"ldapStatus\": \"true\", \r\n" + " \"domainControllerAddress\": \"192.168.9.1\", \r\n" + " \"userDomain\": \"CN=111,DC=111,DC=111\", \r\n" + " \"roleGroup\": \r\n" + " [ \r\n" + " { \r\n" + " \"roleGroupIndex\": \"1\", \r\n" + " \"groupName\": \"aaa\", \r\n" + " \"groupDomain\": \"CN=111,OU=111,DC=111,DC=111\",\r\n" + " \"groupPrivilege\": \"3\" \r\n" + " }, \r\n" + " { \r\n" + " \"roleGroupIndex\": \"2\", \r\n" + " \"groupName\": \"aaa\", \r\n" + " \"groupDomain\": \"CN=111,OU=111,DC=111,DC=111\",\r\n" + " \"groupPrivilege\": \"3\" \r\n" + " } \r\n" + " ] \r\n" + " } \r\n" + "}") }; //example 5: creating an iBMC template with NTP, DNS, and LDAP configurations BasicNameValuePair[] parameters5 = { new BasicNameValuePair("templateName", "iBMC_Template5"), new BasicNameValuePair("templateType", "IBMC"), new BasicNameValuePair("templateDesc", "This is an iBMC template."), new BasicNameValuePair("templateProp", "{\r\n" + " \"systemBootOption\": \"1\",\r\n" + " \"ntpConfig\": {\r\n" + " \"ntpStatus\": \"true\",\r\n" + " \"ntpServerSource\": \"1\",\r\n" + " \"primaryNtpServer\": \"192.168.9.1\",\r\n" + " \"secondaryNtpServer\": \"192.168.9.2\"\r\n" + " },\r\n" + " \"dnsConfig\": {\r\n" + " \"dnsSource\": \"1\",\r\n" + " \"domainName\": \"aaa\",\r\n" + " \"primaryDnsServer\": \"192.168.9.1\",\r\n" + " \"secondaryDnsServer\": \"192.168.9.2\"\r\n" + " },\r\n" + " \"ldapConfig\": {\r\n" + " \"ldapStatus\": \"true\",\r\n" + " \"domainControllerAddress\": \"192.168.9.1\",\r\n" + " \"userDomain\": \"CN=111,DC=111,DC=111\",\r\n" + " \"roleGroup\": [\r\n" + " {\r\n" + " \"roleGroupIndex\": \"1\",\r\n" + " \"groupName\": \"aaa\",\r\n" + " \"groupDomain\": \"CN=111,OU=111,DC=111,DC=111\",\r\n" + " \"groupPrivilege\": \"3\"\r\n" + " },\r\n" + " {\r\n" + " \"roleGroupIndex\": \"2\",\r\n" + " \"groupName\": \"aaa\",\r\n" + " \"groupDomain\": \"CN=111,OU=111,DC=111,DC=111\",\r\n" + " \"groupPrivilege\": \"3\"\r\n" + " }\r\n" + " ]\r\n" + " }\r\n" + "}") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters5); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": null, "resverd": null, "description": "create template success." }
创建上下电模板
接口功能
创建上下电配置模板。
URI路径
/rest/openapi/server/deploy/template
访问方法
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,可由大小写字母、数字或- _构成的6-32字符。 |
templateType |
必选 |
参数列表 |
String |
模板类型,必选,创建上下电配置模板填写 “POWER”。模板类型有BIOS、RAID、HBA、CNA、POWER、NETWORK、OS和IBMC。 |
templateDesc |
可选 |
参数列表 |
String |
模板描述,可选,0-127个字符。 |
templateProp |
必选 |
参数列表 |
JSON<template> |
模板属性,必选,POWER配置属性。 |
template配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
powerPolicy |
可选 |
参数列表,newTemplateProp中 |
String |
电源策略,可选,取值范围为:
|
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
String |
返回数据。取值为null |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
使用示例
请求样例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreatePowerOnOffTemplate { private static final String CREATE_TEMPLATE_URL = "/rest/openapi/server/deploy/template"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreatePowerOnOffTemplate(); } public static void CreatePowerOnOffTemplate() throws Exception { String openidURL = CREATE_TEMPLATE_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "POWER_Template1"), new BasicNameValuePair("templateType", "POWER"), new BasicNameValuePair("templateDesc", "This is a POWER template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"powerPolicy\":\"1\" \r\n" + "}") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": null, "resverd": null, "description": "create template success." }
创建OS模板
接口功能
创建OS配置模板。
URI路径
/rest/openapi/server/deploy/template
访问方法
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,可由大小写字母、数字或- _构成的6-32字符。 |
templateType |
必选 |
参数列表 |
String |
模板类型,必选,创建OS配置模板填写 “OS”。模板类型有BIOS、RAID、HBA、CNA、POWER、NETWORK、OS和IBMC。 |
templateDesc |
可选 |
参数列表 |
String |
模板描述,可选,0-127个字符。 |
templateProp |
必选 |
参数列表 |
JSON<template> |
模板属性,必选,OS配置属性,请看下表及样例。 |
template配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
osType |
必选 |
参数列表,templateProp中 |
String |
OS类型,必选,取值范围:
|
softSourceName |
必选 |
参数列表,templateProp中 |
String |
软件源名称,必选。名字长度为6-32字符,只能由字母、数字、-和_组成。 |
admPassword |
必选 |
参数列表,templateProp中 |
String |
管理员密码,必选。必须为8-32个字符,且至少包含大写字母、小写字母、数字和特殊字符(`~!@¥%……&*()-_=+|[{}];:' ",<.>/? #)中的两种。 |
confirmPassword |
必选 |
参数列表,templateProp中 |
String |
确认密码,必选。应与管理员密码保持一致。 |
cdKey |
可选 |
参数列表,templateProp中 |
String |
cdKey,可选。只有osType是Windows Server和 VMware ESXi 5.5/6.0/6.5/6.7时,可以配置。 |
osDeployPolicy |
必选 |
参数列表,templateProp中 |
String |
OS部署设备,必选。取值范围:
说明:
VMware ESXi 5.5/6.0/6.5/6.7有USB device和Hard Disk两种类型。 |
disk |
可选 |
参数列表,templateProp中 |
JSON<disk> |
分区设置,可选。当osType为Windows Server、SUSE Linux、Red Hat或CentOS时需配置。 |
software |
必选 |
参数列表,templateProp中 |
String |
部署iBMA软件,随操作系统一起部署,如果要部署iBMA软件,值为ibma,否则为空串。 说明:
支持的操作系统版本为:
|
disk配置说明:
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
serialNumber |
必选 |
参数列表,disk中 |
String |
硬盘序列号,必选。 说明:
至少一个disk,其serialNumber为1,其他disk的serialNumber有所不同。Windows Server序列号还可以为2-20,SUSE Linux、Red Hat和CentOS还可以为2-13。 |
paritions |
必选 |
参数列表,disk中 |
JSON <paritions> |
分区,必选。 说明:
serialNumber为1的disk,osType为Windows Server时,至少有一个分区,osType为SUSE Linux、Red Hat和CentOS时,至少有两个分区;其他disk时Windows Server的分区可以为1-19,SUSE Linux、Red Hat和CentOS至少1个分区。 |
paritions配置说明(osType为Windows Server):
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
serialNumber |
必选 |
参数列表,paritions中 |
String |
分区序列号,必选。至少为1,取值范围1-20。 |
fileSystem |
必选 |
参数列表,paritions中 |
String |
文件系统,必选。取值范围:
说明:
分区C的fileSystem只能取0,其他分区可取0或1。 |
driver |
必选 |
参数列表,paritions中 |
String |
分区名称,必选。取值范围:C-V。 说明:
第一个disk至少有一个分区,分区名称为C,若添加其他分区,名称依次为D-V。其他disk中分区名称依次为D-V,且不能与第一个disk中使用过的分区名称重复。 |
capacity |
必选 |
参数列表,paritions中 |
String |
容量,必选。 说明:
C盘容量为32G-2000G或者32,000MB-2,000,000 MB。其他分区,当fileSystem为1时,容量为1G-32G或者100MB-32,000MB,当fileSystem为0时,容量为1G-1000G或者100MB-999,999MB 。 |
isUseFreeCapacity |
必选 |
参数列表,paritions中 |
String |
使用剩余容量,必选。取值范围:
说明:
只有每个硬盘的最后一块分区且fileSystem为0时取true,其余情况均取false。 |
unit |
必选 |
参数列表,paritions中 |
String |
容量单位,必选。取值范围:
|
paritions配置说明(osType为SUSE Linux):
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
serialNumber |
必选 |
参数列表,paritions中 |
String |
挂载点序列号,必选。至少为1和2,取值范围1-14。 |
fileSystem |
必选 |
参数列表,paritions中 |
String |
文件系统,必选。取值范围:
说明:
挂载点为swap时,fileSystem只能为0;其余挂载点可取值为1、2、3、4。 |
driver |
必选 |
参数列表,paritions中 |
String |
挂载点名称,必选。可用名称为swap、/、/home、/user、/opt、/boot、/media、/tmp、/var、/srv。 说明:
第一个disk至少有两个挂载点,挂载点名称为swap和\,其余挂载点选取剩余名称或用户自行输入,挂载点名称不能重复。其他disk中挂载点的名称不能与第一个disk中使用过的挂载点名称重复。除了swap挂载点和/挂载点以外,其余挂载点的名称可以选择/home、/user、/opt、/boot、/media、/tmp、/var、/srv,也可以自行命名,命名时必须以/开头,由数字、字母和_组成,不能超过255个字符,具体挂载点名称需参考对应操作系统自身约束。 |
capacity |
必选 |
参数列表,paritions中 |
String |
容量,必选。 说明:
挂载点为/挂载点时,容量为10,000MB-999,999MB或者10G-1000G;其余挂载点的容量为100MB-999,999MB或者1G-1000G。 |
isUseFreeCapacity |
必选 |
参数列表,paritions中 |
String |
使用剩余容量,必选。取值范围:
说明:
只有/挂载点和每块硬盘的最后一块挂载点时取true,其余情况均取false,且swap只能取false。 |
unit |
必选 |
参数列表,paritions中 |
String |
容量单位,必选。取值范围:
|
paritions配置说明(osType为CentOS/Red Hat):
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
serialNumber |
必选 |
参数列表,paritions中 |
String |
挂载点序列号,必选。至少为1和2,取值范围1-14。 |
fileSystem |
必选 |
参数列表,paritions中 |
String |
文件系统,必选。取值范围:
说明:
挂载点为swap时,fileSystem只能为0;其余挂载点可取值为2、3、4。 |
driver |
必选 |
参数列表,paritions中 |
String |
挂载点名称,必选。可用名称为swap、/、/home、/user、/opt、/boot、/media、/tmp、/var、/srv。 说明:
第一个disk至少有两个挂载点,挂载点名称为swap和\,其余挂载点选取剩余名称或用户自行输入,挂载点名称不能重复。其他disk中挂载点的名称不能与第一个disk中使用过的挂载点名称重复。除了swap挂载点和/挂载点以外,其余挂载点的名称可以选择/home、/user、/opt、/boot、/media、/tmp、/var、/srv,也可以自行命名,命名时必须以/开头,由数字、字母和_组成,不能超过255个字符。 |
capacity |
必选 |
参数列表,paritions中 |
String |
容量,必选。 说明:
挂载点为/挂载点时,容量为10,000MB-999,999MB或者10G-1000G;其余挂载点的容量为100MB-999,999MB或者1G-1000G。 |
isUseFreeCapacity |
必选 |
参数列表,paritions中 |
String |
使用剩余容量,必选。取值范围:
说明:
只有/挂载点和每块硬盘的最后一块挂载点时取true,其余情况均取false,且swap只能取false。 |
unit |
必选 |
参数列表,paritions中 |
String |
容量单位,必选。取值范围:
|
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
String |
返回数据。取值为null |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
注意事项
无。
使用示例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreateOSTemplate { private static final String CREATE_TEMPLATE_URL = "/rest/openapi/server/deploy/template"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreateOSTemplateTest(); } public static void CreateOSTemplateTest() throws Exception { String openidURL = CREATE_TEMPLATE_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); //example 1: creating an OS template with the software source Windows BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "OS_Template1"), new BasicNameValuePair("templateType", "OS"), new BasicNameValuePair("templateDesc", "This is an OS template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"osType\": \"1\", \r\n" + " \"softSourceName\": \"OS_Software1\",\r\n" + " \"admPassword\": \"Huawei@123\", \r\n" + " \"confirmPassword\": \"Huawei@123\", \r\n" + " \"cdKey\": \"\", \r\n" + " \"osDeployPolicy\": \"1\", \r\n" + " \"software\": \"\", \r\n" + " \"disk\": [ {\r\n" + " \"serialNumber\": 1,\r\n" + " \"paritions\": [\r\n" + " {\r\n" + " \"serialNumber\": 1,\r\n" + " \"fileSystem\": \"0\",\r\n" + " \"driver\": \"C:\",\r\n" + " \"capacity\": \"32\",\r\n" + " \"unit\": \"1\",\r\n" + " \"isUseFreeCapacity\": false\r\n" + " },\r\n" + " {\r\n" + " \"serialNumber\": 2,\r\n" + " \"fileSystem\": \"0\",\r\n" + " \"driver\": \"D:\",\r\n" + " \"capacity\": \"50\",\r\n" + " \"unit\": \"1\",\r\n" + " \"isUseFreeCapacity\": false\r\n" + " }\r\n" + " ]\r\n" + " }\r\n" + " ] \r\n" + "}") }; //example 2: creating an OS template with the software source SLES BasicNameValuePair[] parameters2 = { new BasicNameValuePair("templateName", "OS_Template2"), new BasicNameValuePair("templateType", "OS"), new BasicNameValuePair("templateDesc", "This is an OS template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"osType\":\"2\", \r\n" + " \"softSourceName\":\"suse11\", \r\n" + " \"software\": \"\", \r\n" + " \"admPassword\":\"Huawei@123\",\r\n" + " \"confirmPassword\": \"Huawei@123\",\r\n" + " \"osDeployPolicy\":\"1\",\r\n" + " \"disk\":\r\n" + " [\r\n" + " {\r\n" + " \"serialNumber\":1,\r\n" + " \"paritions\":\r\n" + " [\r\n" + " {\r\n" + " \"serialNumber\":1,\r\n" + " \"fileSystem\":\"0\",\r\n" + " \"driver\":\"swap\", \r\n" + " \"capacity\":\"50\",\r\n" + " \"unit\":\"1\",\r\n" + " \"isUseFreeCapacity\":false\r\n" + " },\r\n" + " {\r\n" + " \"serialNumber\":2,\r\n" + " \"fileSystem\":\"3\",\r\n" + " \"driver\":\"/\", \r\n" + " \"capacity\":\"50\",\r\n" + " \"unit\":\"1\",\r\n" + " \"isUseFreeCapacity\":false\r\n" + " }\r\n" + " ]\r\n" + " }\r\n" + " ]\r\n" + "}") }; //example 3: creating an OS template with the software source VMware 6.0 BasicNameValuePair[] parameters3 = { new BasicNameValuePair("templateName", "OS_Template3"), new BasicNameValuePair("templateType", "OS"), new BasicNameValuePair("templateDesc", "This is an OS template."), new BasicNameValuePair("templateProp", "{ \r\n" + " \"osType\":\"6\", \r\n" + " \"software\": \"\", \r\n" + " \"softSourceName\":\"wmware\", \r\n" + " \"admPassword\":\"Changeme_123\",\r\n" + " \"confirmPassword\":\"Changeme_123\",\r\n" + " \"osDeployPolicy\":1\r\n" + "}") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters3); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": null, "resverd": null, "description": "create template success." }
创建部署任务
接口功能
创建配置任务。
URI路径
/rest/openapi/server/deploy/task
访问方法
POST
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templates |
必选 |
参数列表 |
String |
待配置的模板列表。可同时配置多个模板,每个之间以分号隔开,多个模板类型不能相同,取值范围为:
|
dn |
可选 |
参数列表 |
String |
当templates中不包含网络模板的批量BMC IP地址配置模板时必选,服务器唯一标识,例如: "NE=xxx" |
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
JSON<data> |
任务名称数据。 |
resverd |
String |
保留字段,取值为null |
description |
String |
接口调用结果的描述信息。 |
data数据说明:
字段名 |
类型 |
说明 |
---|---|---|
taskName |
String |
接口自动生成的任务名称,任务的唯一标识,格式为:API@DeployTask_系统当前毫秒时间 |
注意事项
任务创建后会进行约1分钟左右的准备工作,1分钟内任务状态为空闲,1分钟后任务启动,状态自动更新为运行;系统最多允许10个任务同时运行,多余任务会按创建时间进入队列排队,等待正在运行的任务结束后排队运行。
使用示例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class CreateDeployTask { private static final String CREATE_DEPLOY_TASK_URL = "/rest/openapi/server/deploy/task"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); CreateDeployTaskTest(); } public static void CreateDeployTaskTest() throws Exception { String openidURL = CREATE_DEPLOY_TASK_URL; String method = "POST"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); //example 1: creating a BIOS configuration template BasicNameValuePair[] parameters = { new BasicNameValuePair("templates", "BIOS_Template1"), new BasicNameValuePair("dn", "NE=34603615") }; //example 2: creating an OS template and a power control configuration task BasicNameValuePair[] parameters2 = { new BasicNameValuePair("templates", "OS_Template1;POWER_Template1"), new BasicNameValuePair("dn", "NE=34603615;NE=34603117") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters2); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": { "taskName": "API@DeployTask_1506381462137" }, "resverd": null, "description": "create task success." }
查询配置模板列表
接口功能
查询配置模板列表。
URI路径
/rest/openapi/server/deploy/template/list
访问方法
GET
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
pageNo |
可选 |
参数列表 |
int |
页码,可选,默认为1。 |
pageSize |
可选 |
参数列表 |
int |
页大小,可选,默认为20。 |
templateType |
可选 |
参数列表 |
String |
模板类型,可选,默认为空,取值范围为:
|
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
totalNum |
int |
模板总数。 |
data |
JSON<data> |
模板列表数据。 |
description |
String |
接口调用结果的描述信息。 |
data数据说明:
字段名 |
类型 |
说明 |
---|---|---|
templateName |
String |
模板名称。 |
templateType |
String |
模板类型。 |
templateDesc |
String |
模板描述。 |
注意事项
无。
使用示例
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class QueryTemplateList { private static final String QUERY_TEMPLATE_LIST_URL = "/rest/openapi/server/deploy/template/list"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); QueryTemplateListTest(); } public static void QueryTemplateListTest() throws Exception { String openidURL = QUERY_TEMPLATE_LIST_URL; String method = "GET"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); //example 1: Query the BIOS template. BasicNameValuePair[] parameters = { new BasicNameValuePair("pageNo", "1"), new BasicNameValuePair("pageSize", "20"), new BasicNameValuePair("templateType", "BIOS") }; //example 2: Query the BIOS template. BasicNameValuePair[] parameters2 = { new BasicNameValuePair("pageNo", "1"), new BasicNameValuePair("pageSize", "20"), new BasicNameValuePair("templateType", "OS") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters2); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例一:查询BIOS模板
REST_SUCCESS { "code":0, "totalNum":3, "description":"Operation success." "data": [ { "templateName":"BIOS_Template1", "templateType":"BIOS", "templateDesc":"This is BIOS template1." }, { "templateName":"BIOS_Template2", "templateType":"BIOS", "templateDesc":"This is BIOS template2." }, { "templateName":"BIOS_Template3", "templateType":"BIOS", "templateDesc":"This is BIOS template3." } ] }
响应样例二:查询OS模板
REST_SUCCESS { "code":0, "totalNum":3, "description": "Operation success.", "data": [ { "templateName":"OS_Template1", "templateType":"OS", "templateDesc":"This is OS template1." }, { "templateName":"OS_Template2", "templateType":"OS", "templateDesc":"This is OS template2." }, { "templateName":"OS_Template3", "templateType":"OS", "templateDesc":"This is OS template3." } ] }
查询配置模板详情
接口功能
查询配置模板详情。
URI路径
/rest/openapi/server/deploy/template/detail
访问方法
GET
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
templateName |
必选 |
参数列表 |
String |
模板名称,必选,待查询详情的模板名称。 |
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
JSON<data> |
模板详情数据。 |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
data数据说明:
字段名 |
类型 |
说明 |
---|---|---|
templateName |
String |
模板名称。 |
templateType |
String |
模板类型。 |
templateDesc |
String |
模板描述。 |
templateProp |
JSON<templateProp> |
模板属性,不同模板属性不同,与创建模板请求参数保持一致。 |
注意事项
无。
使用示例
请求样例:
package com.huawei.nms.openapi.demo.server.config; import org.apache.http.HttpResponse; import org.apache.http.message.BasicNameValuePair; import com.huawei.nms.openapi.demo.global.GlobalVar; import com.huawei.nms.openapi.demo.global.NewHttpsAccess; import com.huawei.nms.openapi.demo.global.NewRosSecurity; import com.huawei.nms.openapi.demo.sm.Login; public class QueryTemplateDetail { private static final String QUERY_TEMPLATE_DETAIL_URL = "/rest/openapi/server/deploy/template/detail"; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Login.login(); QueryTemplateDetailTest(); } public static void QueryTemplateDetailTest() throws Exception { String openidURL = QUERY_TEMPLATE_DETAIL_URL; String method = "GET"; BasicNameValuePair[] headers = NewRosSecurity.getRosHttpHeader(openidURL, method); BasicNameValuePair[] parameters = { new BasicNameValuePair("templateName", "POWER_Template1") }; HttpResponse response = NewHttpsAccess.access(GlobalVar.GLOBAL_IP, GlobalVar.GLOBAL_PORT, openidURL, method, headers, parameters); String body = NewHttpsAccess.getResult(response); System.out.println(body); } }
响应样例:
REST_SUCCESS { "code": 0, "data": { "templateName": "POWER_Template1", "templateType": "POWER", "templateDesc": "as", "templateProp": { "powerPolicy": 1 } }, "resverd": null, "description": "Operation success." }
查询配置任务详情
接口功能
查询配置任务详情。
URI路径
/rest/openapi/server/deploy/task/detail
访问方法
GET
参数说明
参数名 |
必选/可选 |
参数位置 |
参数类型 |
参数说明 |
---|---|---|---|---|
openid |
必选 |
请求消息头 |
String |
会话标识,用于Open API的鉴权。 说明:
该参数由第三方调用安全管理的登录eSight获取openid。 |
taskName |
必选 |
参数列表 |
String |
任务名称,必选,待查询详情的任务名称。 |
返回结果
字段名 |
类型 |
说明 |
---|---|---|
code |
long |
操作返回码。可以是如下值之一:
|
data |
JSON<data> |
任务详情数据。 |
resverd |
String |
保留字段。取值为null |
description |
String |
接口调用结果的描述信息。 |
data数据说明:
字段名 |
类型 |
说明 |
---|---|---|
taskName |
String |
接口自动生成的任务名称,任务的唯一标识。 |
templates |
String |
任务中添加的模板,模板中间以分号隔开,只有模板任务中有此值。 |
taskStatus |
String |
任务状态,取值范围:
|
taskCode |
int |
任务执行结果,取值范围:
|
taskResult |
String |
任务执行结果,任务状态为Idel/Running时,为空;任务状态为Complete时,取值范围:
|
deviceDetails |
JSON<deviceDetails> |
每个设备的执行结果,包含设备dn、sn、deviceName、deployStatus、deployResult、deployResultDetail、deployedDeviceProgress。详见deviceList数据说明表 |
taskType |
String |
任务类型,取值范围:
|
sourceDetails |
JSON< sourceDetails > |
批量复制任务复制源信息,包含复制类型copyType、复制来源值replicateOrigin。只有批量复制任务有此值,详见sourceDetails数据说明表。 |
deviceDetails数据说明:
字段名 |
类型 |
说明 |
---|---|---|
dn |
String |
服务器唯一标识,例如:"NE=xxx"。多个设备dn以分号隔开。 |
deviceProgress |
int |
任务执行进度,取值范围:0 to 100 |
deviceResult |
String |
OS配置部署任务设备结果。任务状态为Running时,为空;任务状态为Complete时,取值范围为
|
errorDetail |
String |
任务执行结果。任务状态为Idel/Running时,为空;任务状态为Complete时,成功时为Deployment succeeded,失败时返回失败具体原因。 |
errorCode |
String |
任务执行结果。任务状态为Idel/Running时,为空;任务状态为Complete时,成功时为0,失败时返回与errorDetail对应的错误码。 |
sourceDetails数据说明:
字段名 |
类型 |
说明 |
---|---|---|
copyType |
String |
复制类型,以逗号分隔,只有批量复制任务类型有此字段值。 |
replicateOrigin |
String |