网络资源
分布式交换机相关接口
新建分布式交换机(CreateL2VirtualSwitch)
API请求
URLs
POST zstack/v1/l2-networks/virtual-switchHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"isDistributed": true,
"name": "dvs-1",
"description": "Test",
"zoneUuid": "27f8f98f166a3206b020e83996faabc3",
"physicalInterface": "bond1",
"vSwitchType": "LinuxBridge"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"isDistributed":true,"name":"dvs-1","description":"Test","zoneUuid":"27f8f98f166a3206b020e83996faabc3","physicalInterface":"bond1","vSwitchType":"LinuxBridge"}}' \
http://localhost:8080/zstack/v1/l2-networks/virtual-switch参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| isDistributed (可选) | Boolean | body(包含在params结构中) | 是否为分布式 | 4.1.0 | |
| name | String | body(包含在params结构中) | 资源名称 | 4.1.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.1.0 | |
| zoneUuid | String | body(包含在params结构中) | 数据中心UUID | 4.1.0 | |
| physicalInterface | String | body(包含在params结构中) | 物理网卡 | 4.1.0 | |
| type (可选) | String | body(包含在params结构中) | 4.1.0 | ||
| vSwitchType (可选) | String | body(包含在params结构中) | 虚拟交换机类型 |
|
4.1.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.1.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.1.0 | |
| userTags (可选) | List | body | 用户标签 | 4.1.0 |
API返回
返回示例
{
"inventory": {
"isDistributed": true,
"vSwitchIndex": 1,
"name": "dvs-1",
"description": "Test dvs",
"zoneUuid": "4bc93f4e3a1c35b8948583951e56b5eb",
"physicalInterface": "bond1",
"type": "virtualSwitch"
}
}#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| isDistributed | Boolean | 是否为分布式 | 4.1.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| zoneUuid | String | 数据中心UUID | 4.1.0 |
| physicalInterface | String | 物理网卡 | 4.1.0 |
| type | String | 4.1.0 | |
| vSwitchType | String | 虚拟交换机类型 | 4.1.0 |
| virtualNetworkId | Integer | 虚拟网络ID | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 4.1.0 |
| portGroups | List | 详情参考portGroups | 4.1.0 |
#portGroups
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vSwitchUuid | String | 虚拟交换机UUID | 4.1.0 |
| vlanId | Integer | VLAN ID | 4.1.0 |
| vlanRanges | String | VLAN范围 | 4.1.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| zoneUuid | String | 数据中心UUID | 4.1.0 |
| physicalInterface | String | 物理网卡 | 4.1.0 |
| type | String | 4.1.0 | |
| vSwitchType | String | 虚拟交换机类型 | 4.1.0 |
| virtualNetworkId | Integer | 虚拟网络ID | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 4.1.0 |
| vlanMode | PortGroupVlanMode | 详情参考vlanMode | 4.1.0 |
#vlanMode
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ACCESS | PortGroupVlanMode | 4.2.0 | |
| TRUNK | PortGroupVlanMode | 4.2.0 | |
| PVLAN | PortGroupVlanMode | 4.2.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.1.0 |
| description | String | 错误的概要描述 | 4.1.0 |
| details | String | 错误的详细信息 | 4.1.0 |
| elaboration | String | 保留字段,默认为null | 4.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.1.0 |
SDK示例
Java
SDK
CreateL2VirtualSwitchAction action = new CreateL2VirtualSwitchAction();
action.isDistributed = true;
action.name = "dvs-1";
action.description = "Test";
action.zoneUuid = "27f8f98f166a3206b020e83996faabc3";
action.physicalInterface = "bond1";
action.vSwitchType = "LinuxBridge";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateL2VirtualSwitchAction.Result res = action.call();Python
SDK
CreateL2VirtualSwitchAction action = CreateL2VirtualSwitchAction()
action.isDistributed = true
action.name = "dvs-1"
action.description = "Test"
action.zoneUuid = "27f8f98f166a3206b020e83996faabc3"
action.physicalInterface = "bond1"
action.vSwitchType = "LinuxBridge"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateL2VirtualSwitchAction.Result res = action.call()删除分布式交换机(DeleteL2Network)
API请求
URLs
DELETE zstack/v1/l2-networks/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth ff3445cd125b4f67b6fc551133852726" \
-X DELETE http://localhost:8080/zstack/v1/l2-networks/254811ac54a04835a8f82871f96ab86f?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.8.0 | |
| deleteMode (可选) | String | body | 删除模式 | 4.8.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.8.0 | |
| userTags (可选) | List | body | 用户标签 | 4.8.0 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}/9SDK示例
Java
SDK
DeleteL2NetworkAction action = new DeleteL2NetworkAction();
action.uuid = "8952ecc352fc49b9a0b22286772e74e2";
action.deleteMode = "Permissive";
action.sessionId = "1bece9d1092e47e7ba176ac2e3b03793";
DeleteL2NetworkAction.Result res = action.call();Python
SDK
DeleteL2NetworkAction action = DeleteL2NetworkAction()
action.uuid = "f1f6deb480d44b77b53b74784c17a1d9"
action.deleteMode = "Permissive"
action.sessionId = "9b914d6dc4d64c8f8f45452bad140f9f"
DeleteL2NetworkAction.Result res = action.call()更新分布式交换机(UpdateL2Network)
API请求
URLs
PUT zstack/v1/l2-networks/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateL2Network": {
"name": "Test-Net",
"description": "Test"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateL2Network":{"name":"Test-Net","description":"Test"}}' \
http://localhost:8080/zstack/v1/l2-networks/8a44ece25f973842b841591a554f5fee/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| name (可选) | String | body(包含在updateL2Network结构中) | 普通分布式交换机名称 | 0.6 | |
| description (可选) | String | body(包含在updateL2Network结构中) | 普通分布式交换机的详细描述 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"vlan": 10,
"name": "Test-Net",
"description": "Test",
"zoneUuid": "fa938a0c3dc437748ba603836bb59fda",
"physicalInterface": "eth0",
"type": "L2VlanNetwork"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventory | L2NetworkInventory | 详情参考inventory | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| zoneUuid | String | 数据中心UUID | 0.6 |
| physicalInterface | String | 物理网卡 | 0.6 |
| type | String | 分布式交换机类型 | 0.6 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 0.6 |
SDK示例
Java
SDK
UpdateL2NetworkAction action = new UpdateL2NetworkAction();
action.uuid = "f7ea5335fcab4d438069879d62384b0e";
action.name = "Test-Net";
action.description = "Test";
action.sessionId = "05627ec42486449cb6b422ef927829f1";
UpdateL2NetworkAction.Result res = action.call();Python
SDK
UpdateL2NetworkAction action = UpdateL2NetworkAction()
action.uuid = "7dc08ad01b8a4d578aab2ae0ad750f1b"
action.name = "Test-Net"
action.description = "Test"
action.sessionId = "130b064e63204a479857ced03f550cf2"
UpdateL2NetworkAction.Result res = action.call()更新交换机上行链路绑定配置(UpdateVirtualSwitchUplinkBondings)
API请求
URLs
PUT zstack/v1/l2-networks/virtual-switch/{uuid}/uplink-bondingsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateVirtualSwitchUplinkBondings": {
"mode": "active-backup 1",
"xmitHashPolicy": "layer2 0"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateVirtualSwitchUplinkBondings":{"mode":"active-backup 1","xmitHashPolicy":"layer2 0"}}' http://localhost:8080/zstack/v1/l2-networks/virtual-switch/d558d0c667c735cbb2c9a34ef7e7c5c3/uplink-bondings参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.1.0 | |
| mode | String | body(包含在updateVirtualSwitchUplinkBondings结构中) |
绑定模式 |
|
4.1.0 |
| xmitHashPolicy (可选) | String | body(包含在updateVirtualSwitchUplinkBondings结构中) |
哈希策略 |
|
4.1.0 |
| systemTags (可选) | List | body | 系统标签 | 4.1.0 | |
| userTags (可选) | List | body | 用户标签 | 4.1.0 |
API返回
返回示例
{
"inventories": [
{
"uuid": "f05eb769fbba34388625771c17666383",
"hostUuid": "7b9b76f4f9663d27a72fb81f4b4ad5b0",
"bondingName": "bond0",
"mode": "active-backup 1",
"xmitHashPolicy": "layer2 0",
"miiStatus": "up",
"mac": "ac:1f:6b:93:6c:8c",
"ipAddresses": [
"172.20.0.116/16"
],
"miimon": 100,
"type": "LinuxBonding",
"allSlavesActive": true,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM",
"slaves": [
{
"uuid": "96b9aafc2c9c3b9c862771543dc9bdc8",
"hostUuid": "7b9b76f4f9663d27a72fb81f4b4ad5b0",
"bondingUuid": "f05eb769fbba34388625771c17666383",
"interfaceName": "eno1",
"interfaceType": "bondingSlave",
"speed": 1000,
"slaveActive": true,
"carrierActive": true,
"mac": "ac:1f:6b:93:6c:8c",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
},
{
"uuid": "8bf85f6d802438588dc292908bb4e928",
"hostUuid": "7b9b76f4f9663d27a72fb81f4b4ad5b0",
"bondingUuid": "f05eb769fbba34388625771c17666383",
"interfaceName": "eno2",
"interfaceType": "bondingSlave",
"speed": 1000,
"slaveActive": false,
"carrierActive": false,
"mac": "ac:1f:6b:93:6c:8c",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.1.0 | |
| inventories | List | 详情参考inventories | 4.1.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.1.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| hostUuid | String | 主机UUID | 4.1.0 |
| bondingName | String | Bond名称 | 4.1.0 |
| bondingType | String | Bond应用状态,有noBridge、bridgeSlave | 4.1.0 |
| speed | Long | Bond速率 | 4.1.0 |
| mode | String | Bond模式 | 4.1.0 |
| xmitHashPolicy | String | 哈希策略 | 4.1.0 |
| miiStatus | String | mii状态 | 4.1.0 |
| mac | String | MAC地址 | 4.1.0 |
| ipAddresses | List | IP地址 | 4.1.0 |
| gateway | String | 网关地址 | 4.1.0 |
| callBackIp | String | 回调地址 | 4.1.0 |
| miimon | Long | mii监控间隔 | 4.1.0 |
| type | String | Bond类型 | 4.1.0 |
| allSlavesActive | Boolean | 4.1.0 | |
| description | String | 资源的详细描述 | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| slaves | List | 详情参考slaves | 4.1.0 |
#slaves
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| hostUuid | String | 主机UUID | 4.1.0 |
| bondingUuid | String | Bond UUID | 4.1.0 |
| interfaceModel | String | 网卡型号 | |
| vendorId | String | 产商ID | |
| deviceId | String | 设备ID | |
| subvendorId | String | 子产商IDD | |
| subdeviceId | String | 子设备ID | |
| interfaceName | String | 网卡名称 | 4.1.0 |
| interfaceType | String | 网卡应用状态,有nomaster、bridgeSlave、bondSlave | 4.1.0 |
| speed | Long | 网卡速率 | 4.1.0 |
| slaveActive | Boolean | Bond链路状态 | 4.1.0 |
| carrierActive | Boolean | 物理链路状态 | 4.1.0 |
| ipAddresses | List | IP地址 | 4.1.0 |
| gateway | String | 网关地址 | 4.1.0 |
| mac | String | MAC地址 | 4.1.0 |
| callBackIp | String | 回调地址 | 4.1.0 |
| pciDeviceAddress | String | 网卡PCI地址 | 4.1.0 |
| offloadStatus | String | 4.1.0 | |
| description | String | 资源的详细描述 | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.1.0 |
| description | String | 错误的概要描述 | 4.1.0 |
| details | String | 错误的详细信息 | 4.1.0 |
| elaboration | String | 保留字段,默认为null | 4.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.1.0 |
SDK示例
Java
SDK
UpdateVirtualSwitchUplinkBondingsAction action = new UpdateVirtualSwitchUplinkBondingsAction();
action.uuid = "d558d0c667c735cbb2c9a34ef7e7c5c3";
action.mode = "active-backup 1";
action.xmitHashPolicy = "layer2 0";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateVirtualSwitchUplinkBondingsAction.Result res = action.call();Python
SDK
UpdateVirtualSwitchUplinkBondingsAction action = UpdateVirtualSwitchUplinkBondingsAction()
action.uuid = "d558d0c667c735cbb2c9a34ef7e7c5c3"
action.mode = "active-backup 1"
action.xmitHashPolicy = "layer2 0"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateVirtualSwitchUplinkBondingsAction.Result res = action.call()查询分布式交换机(QueryL2VirtualSwitchNetwork)
API请求
URLs
GET zstack/v1/l2-networks/virtual-switch
GET zstack/v1/l2-networks/virtual-switch/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l2-networks/virtual-switchcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l2-networks/virtual-switch/95f17f8b6b6137e3815cedcfa39d812d可查询字段
运行CLI命令行工具,输入QueryL2VirtualSwitchNetwork并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"name": "Test-dvs",
"description": "Test",
"zoneUuid": "55210de8afc03d42bddc8e098c69410c",
"physicalInterface": "eth0",
"type": "virtualSwitch"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.1.0 | |
| inventories | List | 详情参考inventories | 4.1.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.1.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| isDistributed | Boolean | 是否为分布式 | 4.1.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| zoneUuid | String | 数据中心UUID | 4.1.0 |
| physicalInterface | String | 物理网卡 | 4.1.0 |
| type | String | 分布式交换机类型 | 4.1.0 |
| vSwitchType | String | 虚拟交换机类型 | 4.1.0 |
| virtualNetworkId | Integer | 虚拟网络ID | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 4.1.0 |
| portGroups | List | 详情参考portGroups | 4.1.0 |
#portGroups
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vSwitchUuid | String | 虚拟交换机UUID | 4.1.0 |
| vlanId | Integer | VLAN ID | 4.1.0 |
| vlanRanges | String | VLAN范围 | 4.1.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| zoneUuid | String | 数据中心UUID | 4.1.0 |
| physicalInterface | String | 物理网卡 | 4.1.0 |
| type | String | 分布式交换机类型 | 4.1.0 |
| vSwitchType | String | 虚拟交换机类型 | 4.1.0 |
| virtualNetworkId | Integer | 虚拟网络ID | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 4.1.0 |
| vlanMode | L2PortGroupVlanMode | 详情参考vlanMode | 4.1.0 |
#vlanMode
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ACCESS | L2PortGroupVlanMode | 4.2.0 | |
| TRUNK | L2PortGroupVlanMode | 4.2.0 | |
| PVLAN | L2PortGroupVlanMode | 4.2.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.1.0 |
| description | String | 错误的概要描述 | 4.1.0 |
| details | String | 错误的详细信息 | 4.1.0 |
| elaboration | String | 保留字段,默认为null | 4.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.1.0 |
SDK示例
Java
SDK
QueryL2VirtualSwitchNetworkAction action = new QueryL2VirtualSwitchNetworkAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryL2VirtualSwitchNetworkAction.Result res = action.call();Python
SDK
QueryL2VirtualSwitchNetworkAction action = QueryL2VirtualSwitchNetworkAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryL2VirtualSwitchNetworkAction.Result res = action.call()获取分布式交换机类型(GetL2NetworkTypes)
API请求
URLs
GET zstack/v1/l2-networks/typesHeaders
OAuth: the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "OAuth: 76514d7cdcf44b57bc26ff7b4ae0be63" \
-X GET http://localhost:8080/zstack/v1/l2-networks/types参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 0.6 | ||
| userTags (可选) | List | query | 0.6 |
API返回
返回示例
{
"l2NetworkTypes": [
"L2VlanNetwork",
"L2NoVlanNetwork"
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| types | List | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetL2NetworkTypesAction action = new GetL2NetworkTypesAction();
action.sessionId = "485005865e744e19a12ad2f9af2ea997";
GetL2NetworkTypesAction.Result res = action.call();Python
SDK
GetL2NetworkTypesAction action = GetL2NetworkTypesAction()
action.sessionId = "b34f3c756aa542789f35bc1774845bc1"
GetL2NetworkTypesAction.Result res = action.call()挂载分布式交换机到集群(AttachL2NetworkToCluster)
API请求
URLs
POST zstack/v1/l2-networks/{l2NetworkUuid}/clusters/{clusterUuid}Headers
OAuth: the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST http://localhost:8080/zstack/v1/l2-networks/e852ba6eb4c03f2fafdb73ce838d8980/clusters/112816423a1a3b50a58d54fd1f6a8665参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l2NetworkUuid | String | url | 端口组分布式交换机UUID | 0.6 | |
| clusterUuid | String | url | 集群UUID | 0.6 | |
| l2ProviderType (可选) | String | body | 分布式交换机实现类型 |
|
4.8.0 |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 | |
| hostParams (可选) | String | body | 主机参数列表 | 4.3.0 |
API返回
返回示例
{
"inventory": {
"vlan": 10.0,
"name": "Test-Net",
"description": "Test",
"zoneUuid": "95ab67ece21e3ce39896b9b391a21a94",
"physicalInterface": "eth0",
"type": "L2VlanNetwork"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.8.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.8.0 |
| inventory | L2NetworkInventory | 详情参考inventory | 4.8.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| zoneUuid | String | 数据中心UUID | 0.6 |
| physicalInterface | String | 物理网卡 | 0.6 |
| type | String | 分布式交换机类型 | 0.6 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 0.6 |
SDK示例
Java
SDK
AttachL2NetworkToClusterAction action = new AttachL2NetworkToClusterAction();
action.l2NetworkUuid = "e852ba6eb4c03f2fafdb73ce838d8980";
action.clusterUuid = "112816423a1a3b50a58d54fd1f6a8665";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AttachL2NetworkToClusterAction.Result res = action.call();Python
SDK
AttachL2NetworkToClusterAction action = AttachL2NetworkToClusterAction()
action.l2NetworkUuid = "e852ba6eb4c03f2fafdb73ce838d8980"
action.clusterUuid = "112816423a1a3b50a58d54fd1f6a8665"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AttachL2NetworkToClusterAction.Result res = action.call()从集群上卸载分布式交换机(DetachL2NetworkFromCluster)
API请求
URLs
DELETE/v1/l2-networks/{l2NetworkUuid}/clusters/{clusterUuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/l2-networks/baef7db345553050846947bb2d818be0/clusters/2fb51e7e35d339c4bac77819a9c4fea1?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l2NetworkUuid | String | url | 端口组分布式交换机UUID | 0.6 | |
| clusterUuid | String | url | 集群UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"vlan": 10,
"name": "Test-Net",
"description": "Test",
"zoneUuid": "7a531508c19d396d84abeda34b83d946",
"physicalInterface": "eth0",
"type": "L2VlanNetwork"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.8.0 |
| description | String | 错误的概要描述 | 4.8.0 |
| details | String | 错误的详细信息 | 4.8.0 |
| elaboration | String | 保留字段,默认为null | 4.8.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.8.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.8.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.8.0 |
| name | String | 资源名称 | 4.8.0 |
| description | String | 资源的详细描述 | 4.8.0 |
| zoneUuid | String | 数据中心UUID | 4.8.0 |
| physicalInterface | String | 物理网卡 | 4.8.0 |
| type | String | 分布式交换机类型 | 4.8.0 |
| createDate | Timestamp | 创建时间 | 4.8.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.8.0 |
| attachedClusterUuids | List | 4.8.0 |
SDK示例
Java
SDK
DetachL2NetworkFromClusterAction action = new DetachL2NetworkFromClusterAction();
action.l2NetworkUuid = "baef7db345553050846947bb2d818be0";
action.clusterUuid = "2fb51e7e35d339c4bac77819a9c4fea1";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DetachL2NetworkFromClusterAction.Result res = action.call();Python
SDK
DetachL2NetworkFromClusterAction action = DetachL2NetworkFromClusterAction()
action.l2NetworkUuid = "baef7db345553050846947bb2d818be0"
action.clusterUuid = "2fb51e7e35d339c4bac77819a9c4fea1"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DetachL2NetworkFromClusterAction.Result res = action.call()获取分布式交换机允许加载的集群(GetCandidateClustersForAttachingL2Network)
API请求
URLs
GET zstack/v1/l2-networks/{l2NetworkUuid}/cluster-candidatesHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l2-networks/0b888b1f97993dbc9a22667219bcc690/cluster-candidates?limit=1000&start=0参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l2NetworkUuid | String | url | 分布式交换机UUID | 4.0.0 | |
| clusterTypes (可选) | List | query | 集群类型列表 | 4.0.0 | |
| limit (可选) | Integer | query | 最多返回的记录数,类似MySQL的limit | 4.0.0 | |
| start (可选) | Integer | query | 起始查询记录位置,类似MySQL的offset。跟limit配合使用可以实现分页 |
4.0.0 | |
| systemTags (可选) | List | query | 系统标签 | 4.0.0 | |
| userTags (可选) | List | query | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventories": [
{
"name": "cluster1",
"uuid": "170abd61de68305cb2ccaa008a17c11e",
"description": "test",
"state": "Enabled",
"hypervisorType": "KVM",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM",
"zoneUuid": "8de4bc023e4c3be6bfa7c514eb3bb024",
"type": "zstack"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.0.0 | |
| inventories | List | 详情参考inventories | 4.0.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 0.6 |
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| state | String | 集群状态 | 0.6 |
| hypervisorType | String | 虚拟机管理程序类型 | 0.6 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| zoneUuid | String | 数据中心UUID | 0.6 |
| type | String | 保留域 | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetCandidateClustersForAttachingL2NetworkAction action = new GetCandidateClustersForAttachingL2NetworkAction();
action.l2NetworkUuid = "0b888b1f97993dbc9a22667219bcc690";
action.limit = 1000;
action.start = 0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateClustersForAttachingL2NetworkAction.Result res = action.call();Python
SDK
GetCandidateClustersForAttachingL2NetworkAction action = GetCandidateClustersForAttachingL2NetworkAction()
action.l2NetworkUuid = "0b888b1f97993dbc9a22667219bcc690"
action.limit = 1000
action.start = 0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetCandidateClustersForAttachingL2NetworkAction.Result res = action.call()获取集群允许加分布式交换机(GetCandidateL2NetworksForAttachingCluster)
API请求
URLs
GET zstack/v1/cluster/{clusterUuid}/l2-candidatesHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/cluster/016f3e0efa66377b8acf1d1b73050af0/l2-candidates?limit=1000&start=0参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| clusterUuid | String | url | 集群UUID | 4.0.0 | |
| limit (可选) | Integer | query | 最多返回的记录数,类似MySQL的limit | 4.0.0 | |
| start (可选) | Integer | query | 起始查询记录位置,类似MySQL的offset。跟limit配合使用可以实现分页 |
4.0.0 | |
| systemTags (可选) | List | query | 系统标签 | 4.0.0 | |
| userTags (可选) | List | query | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventories": [
{
"name": "l2",
"description": "test",
"physicalInterface": "eth0",
"vlan": 0,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.0.0 | |
| inventories | List | 详情参考inventories | 4.0.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| poolUuid | String | 网络池UUID | 4.0.0 |
| zoneUuid | String | 数据中心UUID | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| physicalInterface | String | 网卡名称 | 4.0.0 |
| type | String | 分布式交换机类型 | 4.0.0 |
| vni | String | Vni号 | 4.0.0 |
| vlan | int | Vlan号 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetCandidateL2NetworksForAttachingClusterAction action = new GetCandidateL2NetworksForAttachingClusterAction();
action.clusterUuid = "016f3e0efa66377b8acf1d1b73050af0";
action.limit = 1000;
action.start = 0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateL2NetworksForAttachingClusterAction.Result res = action.call();Python
SDK
GetCandidateL2NetworksForAttachingClusterAction action = GetCandidateL2NetworksForAttachingClusterAction()
action.clusterUuid = "016f3e0efa66377b8acf1d1b73050af0"
action.limit = 1000
action.start = 0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetCandidateL2NetworksForAttachingClusterAction.Result res = action.call()挂载分布式交换机到主机(AttachL2NetworkToHost)
API请求
URLs
POST zstack/v1/l2-networks/{l2NetworkUuid}/hosts/{hostUuid}Headers
Authorization: OAuth the-session-uuidBody
{
"params": {
"l2ProviderType": "LinuxBridge"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"l2ProviderType":"LinuxBridge"}}' http://localhost:8080/zstack/v1/l2-networks/eabc734e7538311a9afd99276867fb88/hosts/b20782106d1537e6bd8ee81f94d2c870参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l2NetworkUuid | String | url | 端口组分布式交换机UUID | 4.1.0 | |
| hostUuid | String | url | 主机UUID | 4.1.0 | |
| l2ProviderType (可选) | String | body(包含在params结构中) | 交换机实现类型 |
|
4.1.0 |
| systemTags (可选) | List | body | 系统标签 | 4.1.0 | |
| userTags (可选) | List | body | 用户标签 | 4.1.0 | |
| hostParam (可选) | String | body(包含在params结构中) |
主机参数 | 4.3.0 |
API返回
返回示例
{
"inventory": {
"vlan": 10,
"name": "Test-Net",
"description": "Test",
"zoneUuid": "6b737f0ab0a839b58e9d7a208ce7bb0b",
"physicalInterface": "eth0",
"type": "L2VlanNetwork"
}
}#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| zoneUuid | String | 数据中心UUID | 4.1.0 |
| physicalInterface | String | 物理网卡 | 4.1.0 |
| type | String | 分布式交换机类型 | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 4.1.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.1.0 |
| description | String | 错误的概要描述 | 4.1.0 |
| details | String | 错误的详细信息 | 4.1.0 |
| elaboration | String | 保留字段,默认为null | 4.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.1.0 |
SDK示例
Java
SDK
AttachL2NetworkToHostAction action = new AttachL2NetworkToHostAction();
action.l2NetworkUuid = "eabc734e7538311a9afd99276867fb88";
action.hostUuid = "b20782106d1537e6bd8ee81f94d2c870";
action.l2ProviderType = "LinuxBridge";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AttachL2NetworkToHostAction.Result res = action.call();Python
SDK
AttachL2NetworkToHostAction action = AttachL2NetworkToHostAction()
action.l2NetworkUuid = "eabc734e7538311a9afd99276867fb88"
action.hostUuid = "b20782106d1537e6bd8ee81f94d2c870"
action.l2ProviderType = "LinuxBridge"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AttachL2NetworkToHostAction.Result res = action.call()从主机上卸载分布式交换机(DetachL2NetworkFromHost)
API请求
URLs
DELETE zstack/v1/l2-networks/{l2NetworkUuid}/hosts/{hostUuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/l2-networks/65509f36186c339d8fa85fe0b632c61f/hosts/99d5e85e897a317780ed520e3dafdf0c参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l2NetworkUuid | String | url | 端口组分布式交换机UUID | 4.1.0 | |
| hostUuid | String | url | 主机UUID | 4.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.1.0 | |
| userTags (可选) | List | body | 用户标签 | 4.1.0 |
API返回
返回示例
{
"inventory": {
"vlan": 10,
"name": "Test-Net",
"description": "Test",
"zoneUuid": "5b03d97878c536a6bedfb1ac1931ef2c",
"physicalInterface": "eth0",
"type": "L2VlanNetwork"
}
}#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| name | String | 资源名称 | 4.1.0 |
| description | String | 资源的详细描述 | 4.1.0 |
| zoneUuid | String | 数据中心UUID | 4.1.0 |
| physicalInterface | String | 物理网卡 | 4.1.0 |
| type | String | 分布式交换机类型 | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 4.1.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.1.0 |
| description | String | 错误的概要描述 | 4.1.0 |
| details | String | 错误的详细信息 | 4.1.0 |
| elaboration | String | 保留字段,默认为null | 4.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.1.0 |
SDK示例
Java
SDK
DetachL2NetworkFromHostAction action = new DetachL2NetworkFromHostAction();
action.l2NetworkUuid = "65509f36186c339d8fa85fe0b632c61f";
action.hostUuid = "99d5e85e897a317780ed520e3dafdf0c";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DetachL2NetworkFromHostAction.Result res = action.call();Python
SDK
DetachL2NetworkFromHostAction action = DetachL2NetworkFromHostAction()
action.l2NetworkUuid = "65509f36186c339d8fa85fe0b632c61f"
action.hostUuid = "99d5e85e897a317780ed520e3dafdf0c"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DetachL2NetworkFromHostAction.Result res = action.call()获取虚拟交换机类型(GetVSwitchTypes)
API请求
URLs
GET zstack//v1/l2-networks/vSwitchTypesHeaders
OAuth: the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l2-networks/vSwitchTypes参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 系统标签 | 4.8.0 | |
| userTags (可选) | List | query | 用户标签 | 4.8.0 |
API返回
返回示例
{
"vSwitchTypes": [
"LinuxBridge",
"OvsDpdk"
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | boolean | 4.8.0 | |
| types | List | 4.8.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.8.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.8.0 |
| description | String | 错误的概要描述 | 4.8.0 |
| details | String | 错误的详细信息 | 4.8.0 |
| elaboration | String | 保留字段,默认为null | 4.8.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.8.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.8.0 |
SDK示例
Java
SDK
GetVSwitchTypesAction action = new GetVSwitchTypesAction();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetVSwitchTypesAction.Result res = action.call();Python
SDK
GetVSwitchTypesAction action = GetVSwitchTypesAction()
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetVSwitchTypesAction.Result res = action.call()查询上行链路组(QueryUplinkGroup)
API请求
URLs
GET zstack/v1/l2-networks/virtual-switch/uplink-group
GET zstack/v1/l2-networks/virtual-switch/uplink-group/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l2-networks/virtual-switch/uplink-groupcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edessfb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l2-networks/virtual-switch/uplink-group/d36391a37b5c399ea46eb86bb2f6ec8a可查询字段
运行CLI命令行工具,输入QueryUplinkGroup并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"interfaceName": "eth0",
"type": "PhysicalInterface",
"interfaceUuid": "24343c2ab2803d82b16b531b5e58b086",
"hostUuid": "1b66d910a4de3418b6214b04ac1a2dd3",
"l2NetworkUuid": "0472b472fef131999b770c1671515cb7"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.3.0 | |
| inventories | List | 详情参考inventories | 4.3.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.3.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| interfaceName | String | 接口名称 | 4.3.0 |
| bondingUuid | String | 绑定UUID | 4.3.0 |
| interfaceUuid | String | 接口UUID | 4.3.0 |
| hostUuid | String | 主机UUID | 4.3.0 |
| l2NetworkUuid | String | 分布式交换机UUID | 4.3.0 |
| l2ProviderType | String | 分布式交换机实现类型 | 4.3.0 |
| bridgeName | String | 网桥名称 | 4.3.0 |
| createDate | Timestamp | 创建时间 | 4.3.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.3.0 |
| type | UplinkGroupType | 详情参考type | 4.3.0 |
#type
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| PhysicalInterface | UplinkGroupType | 物理网卡 | 4.3.0 |
| Bonding | UplinkGroupType | 绑定 | 4.3.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
QueryUplinkGroupAction action = new QueryUplinkGroupAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryUplinkGroupAction.Result res = action.call();Python
SDK
QueryUplinkGroupAction action = QueryUplinkGroupAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryUplinkGroupAction.Result res = action.call()更新交换机上行链路组(UpdateVirtualSwitchUplinkGroup)
API请求
URLs
PUT zstack/v1/l2-networks/virtual-switch/{uuid}/uplink-groupHeaders
Authorization: OAuth the-session-uuidBody
{
"updateVirtualSwitchUplinkGroup": {
"hostUuid": "922a7e4c781638ddb37d2098540530d8",
"slaveNames": [
"eth0"
],
"type": "LinuxBonding"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateVirtualSwitchUplinkGroup":{"hostUuid":"922a7e4c781638ddb37d2098540530d8","slaveNames":["eth0"],"type":"LinuxBonding"}}' \
http://localhost:8080/zstack/v1/l2-networks/virtual-switch/6614ce3ef02330cf8fcc734edd07da58/uplink-group参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.3.0 | |
| hostUuid | String | body(包含在updateVirtualSwitchUplinkGroup结构中) |
主机UUID | 4.3.0 | |
| slaveUuids (可选) | List | body(包含在updateVirtualSwitchUplinkGroup结构中) |
slave网卡UUID列表 | 4.3.0 | |
| slaveNames (可选) | List | body(包含在updateVirtualSwitchUplinkGroup结构中) |
slave网卡名称列表 | 4.3.0 | |
| type (可选) | String | body(包含在updateVirtualSwitchUplinkGroup结构中) |
绑定类型 |
|
4.3.0 |
| systemTags (可选) | List | body | 系统标签 | 4.3.0 | |
| userTags (可选) | List | body | 用户标签 | 4.3.0 |
API返回
返回示例
{
"inventory": {
"interfaceName": "eth0",
"type": "PhysicalInterface",
"interfaceUuid": "5d98a3ee3da1373e87b5f559c43da1e7",
"hostUuid": "ec5f7039252633748d29cb55ebcca73c",
"l2NetworkUuid": "d3357c017b793f21b6ec9e36f6f163e5"
}
}#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| interfaceName | String | 接口名称 | 4.3.0 |
| bondingUuid | String | 绑定UUID | 4.3.0 |
| interfaceUuid | String | 接口UUID | 4.3.0 |
| hostUuid | String | 主机UUID | 4.3.0 |
| l2NetworkUuid | String | 分布式交换机UUID | 4.3.0 |
| l2ProviderType | String | 分布式交换机实现类型 | 4.3.0 |
| bridgeName | String | 网桥名称 | 4.3.0 |
| createDate | Timestamp | 创建时间 | 4.3.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.3.0 |
| type | UplinkGroupType | 详情参考type | 4.3.0 |
#type
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| PhysicalInterface | UplinkGroupType | 物理网卡 | 4.3.0 |
| Bonding | UplinkGroupType | 绑定 | 4.3.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
UpdateVirtualSwitchUplinkGroupAction action = new UpdateVirtualSwitchUplinkGroupAction();
action.uuid = "6614ce3ef02330cf8fcc734edd07da58";
action.hostUuid = "922a7e4c781638ddb37d2098540530d8";
action.slaveNames = asList("eth0");
action.type = "LinuxBonding";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateVirtualSwitchUplinkGroupAction.Result res = action.call();Python
SDK
UpdateVirtualSwitchUplinkGroupAction action = UpdateVirtualSwitchUplinkGroupAction()
action.uuid = "6614ce3ef02330cf8fcc734edd07da58"
action.hostUuid = "922a7e4c781638ddb37d2098540530d8"
action.slaveNames = [eth0]
action.type = "LinuxBonding"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateVirtualSwitchUplinkGroupAction.Result res = action.call()更新分布式交换机虚拟网络ID(UpdateL2NetworkVirtualNetworkId)
API请求
URLs
PUT zstack/v1/l2-networks/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateL2NetworkVirtualNetworkId": {
"virtualNetworkId": 1
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateL2NetworkVirtualNetworkId":{"virtualNetworkId":1}}' \
http://localhost:8080/zstack/v1/l2-networks/aaed66240c433b289841fe7dc5cba765/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.10.0 | |
| virtualNetworkId | Integer | body(包含在updateL2NetworkVirtualNetworkId结构中) |
虚拟网络ID,vlanId或vni | 4.10.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.10.0 | |
| userTags (可选) | List | body | 用户标签 | 4.10.0 |
API返回
返回示例
{
"inventory": {
"vlan": 10,
"name": "Test-Net",
"description": "Test",
"zoneUuid": "883ddcdf78cb3ad7a7112c5d6e0832d0",
"physicalInterface": "eth0",
"type": "L2VlanNetwork"
}
}#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| zoneUuid | String | 数据中心UUID | 0.6 |
| physicalInterface | String | 物理网卡 | 0.6 |
| type | String | 交换机类型 | 0.6 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| attachedClusterUuids | List | 挂载集群的UUID列表 | 0.6 |
| attachedHostRefs | List | 详情参考attachedHostRefs | 4.1.0 |
#attachedHostRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| hostUuid | String | 主机UUID | 4.1.0 |
| l2NetworkUuid | String | 交换机UUID | 4.1.0 |
| l2ProviderType | String | 交换机实现类型 | 4.1.0 |
| bridgeName | String | 网桥名称 | 4.3.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
UpdateL2NetworkVirtualNetworkIdAction action = new UpdateL2NetworkVirtualNetworkIdAction();
action.uuid = "aaed66240c433b289841fe7dc5cba765";
action.virtualNetworkId = 1;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateL2NetworkVirtualNetworkIdAction.Result res = action.call();Python
SDK
UpdateL2NetworkVirtualNetworkIdAction action = UpdateL2NetworkVirtualNetworkIdAction()
action.uuid = "aaed66240c433b289841fe7dc5cba765"
action.virtualNetworkId = 1
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateL2NetworkVirtualNetworkIdAction.Result res = action.call()分布式端口组相关接口
新建分布式端口组(CreatePortGroup)
API请求
URLs
POST zstack/v1/l3-networks/port-groupHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"vSwitchUuid": "04d84d13c7e43c53810bd0d470210b4d",
"vlanMode": "ACCESS",
"vlan": 100,
"name": "port-group-1",
"description": "Test",
"type": "L3BasicNetwork",
"category": "Private",
"ipVersion": 4,
"system": false,
"enableIPAM": false
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vSwitchUuid":"04d84d13c7e43c53810bd0d470210b4d","vlanMode":"ACCESS","vlan":100,"name":"port-group-1","description":"Test","type":"L3BasicNetwork","category":"Private","ipVersion":4,"system":false,"enableIPAM":false}}' \
http://localhost:8080/zstack/v1/l3-networks/port-group参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vSwitchUuid | String | body(包含在params结构中) | 虚拟交换机UUID | 4.2.0 | |
| vlanMode (可选) | String | body(包含在params结构中) | VLAN模式 |
|
4.2.0 |
| vlan | Integer | body(包含在params结构中) | VLAN号 | 4.2.0 | |
| vlanRanges (可选) | String | body(包含在params结构中) | VLAN范围 | 4.2.0 | |
| name | String | body(包含在params结构中) | 资源名称 | 4.2.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.2.0 | |
| type (可选) | String | body(包含在params结构中) | 端口组类型 | 4.2.0 | |
| category (可选) | String | body(包含在params结构中) | 网络类型,需要与system标签搭配使用,system为true时可设置为Public、Private |
|
4.2.0 |
| ipVersion (可选) | Integer | body(包含在params结构中) | IP协议号 |
|
4.2.0 |
| system (可选) | boolean | body(包含在params结构中) | 是否用于系统虚拟机 | 4.2.0 | |
| dnsDomain (可选) | String | body(包含在params结构中) | DNS域 | 4.2.0 | |
| enableIPAM (可选) | Boolean | body(包含在params结构中) | IP地址管理是否启用 | 4.2.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.2.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.2.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.2.0 | |
| userTags (可选) | List | body | 用户标签 | 4.2.0 |
API返回
返回示例
{
"inventory": {
"vSwitchUuid": "39217a13614a3435bcc5ed199dc6bc04",
"vlanMode": "ACCESS",
"vlanId": 100,
"uuid": "afc3dd5d3e5e36f7af08797bd6582a7d",
"name": "port-group-1",
"description": "Test",
"type": "portGroup",
"zoneUuid": "2ee7572e6ce53147866096c79eb4d4f0",
"l2NetworkUuid": "5f62648626353514892de22f154eeee7",
"state": "Enabled",
"system": false,
"category": "Private",
"enableIPAM": false
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 分布式端口组类型 | 0.6 |
| zoneUuid | String | 数据中心UUID | 0.6 |
| l2NetworkUuid | String | 端口组分布式交换机UUID | 0.6 |
| state | String | 分布式端口组的可用状态 | 0.6 |
| dnsDomain | String | DNS域 | 0.6 |
| system | Boolean | 是否用于系统虚拟机 | 0.6 |
| category | String | 网络类型,需要与system标签搭配使用,system为false时可设置为Public、Private | 0.6 |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| enableIPAM | Boolean | 打开IP地址管理功能 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| dns | List | 域名解析服务器 | 0.6 |
| ipRanges | List | 详情参考ipRanges | 0.6 |
| networkServices | List | 详情参考networkServices | 0.6 |
| hostRoute | List | 详情参考hostRoute | 2.3 |
| reservedIpRanges | List | 详情参考reservedIpRanges | 4.10.16 |
#ipRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 起始地址 | 4.6.21 |
| endIp | String | 结束地址 | 4.6.21 |
| netmask | String | 掩码 | 4.6.21 |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 网关 | 0.6 |
| networkCidr | String | 网络CIDR | 4.6.21 |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| ipRangeType | IpRangeType | 详情参考ipRangeType | 4.6.21 |
#ipRangeType
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Normal | IpRangeType | 普通地址段 | 4.6.21 |
| AddressPool | IpRangeType | 地址池段 | 4.6.21 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 0.6 |
| networkServiceType | String | 0.6 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| l3NetworkUuid | String | 分布式端口组UUID | 2.3 |
| prefix | String | 2.3 | |
| nexthop | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
#reservedIpRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.10.16 |
| l3NetworkUuid | String | 分布式端口组UUID | 4.10.16 |
| name | String | 资源名称 | 4.10.16 |
| description | String | 资源的详细描述 | 4.10.16 |
| startIp | String | 起始IP(包含在保留地址段内) | 4.10.16 |
| endIp | String | 结束IP(包含在保留地址段内) | 4.10.16 |
| ipVersion | Integer | ip协议号 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 4.10.16 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.10.16 |
SDK示例
Java SDK
CreatePortGroupAction action = new CreatePortGroupAction();
action.vSwitchUuid = "04d84d13c7e43c53810bd0d470210b4d";
action.vlanMode = "ACCESS";
action.vlan = 100;
action.name = "port-group-1";
action.description = "Test";
action.type = "L3BasicNetwork";
action.category = "Private";
action.ipVersion = 4;
action.system = false;
action.enableIPAM = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreatePortGroupAction.Result res = action.call();Python SDK
action = CreatePortGroupAction()
action.vSwitchUuid = "04d84d13c7e43c53810bd0d470210b4d"
action.vlanMode = "ACCESS"
action.vlan = 100
action.name = "port-group-1"
action.description = "Test"
action.type = "L3BasicNetwork"
action.category = "Private"
action.ipVersion = 4
action.system = false
action.enableIPAM = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()删除分布式端口组(DeletePortGroup)
API请求
URLs
DELETE zstack/v1/l3-networks/port-group/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/port-group/04e1623d8c9531c7b42d6257c7ef774f参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.2.0 | |
| deleteMode (可选) | String | body | 删除模式(Permissive / Enforcing,Permissive) | 4.2.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.2.0 | |
| userTags (可选) | List | body | 用户标签 | 4.2.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeletePortGroupAction action = new DeletePortGroupAction();
action.uuid = "04e1623d8c9531c7b42d6257c7ef774f";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeletePortGroupAction.Result res = action.call();Python
SDK
DeletePortGroupAction action = DeletePortGroupAction()
action.uuid = "04e1623d8c9531c7b42d6257c7ef774f"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeletePortGroupAction.Result res = action.call()查询分布式端口组(QueryPortGroup)
API请求
URLs
GET zstack/v1/l3-networks/port-group
GET zstack/v1/l3-networks/port-group/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/port-groupcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/port-group/c94adc28385a31d99a2c07dfa8120532可查询字段
运行CLI命令行工具,输入QueryPortGroup并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"vSwitchUuid": "5343e94b3aa93086b81c1b33c335b9ad",
"vlanMode": "ACCESS",
"vlanId": 100,
"uuid": "01a9693135323cf1acb3049e8ddf50b2",
"name": "port-group-1",
"description": "Test",
"type": "portGroup",
"zoneUuid": "36712d24b27b327aae544095c768366b",
"l2NetworkUuid": "49012f786210301697167b3771a65e8c",
"state": "Enabled",
"system": false,
"category": "Private",
"enableIPAM": false
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.2.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventories | List | 详情参考inventories | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| vSwitchUuid | String | 虚拟交换机UUID | 4.2.0 |
| vlanId | Integer | VLAN号 | 4.2.0 |
| vlanRanges | String | VLAN范围 | 4.2.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.2.0 |
| name | String | 资源名称 | 4.2.0 |
| description | String | 资源的详细描述 | 4.2.0 |
| type | String | 端口组类型 | 4.2.0 |
| zoneUuid | String | 数据中心UUID | 4.2.0 |
| l2NetworkUuid | String | 端口组分布式交换机UUID | 4.2.0 |
| state | String | 状态 | 4.2.0 |
| dnsDomain | String | DNS域 | 4.2.0 |
| system | Boolean | 是否用于系统虚拟机 | 4.2.0 |
| category | String | 网络类型,需要与system标签搭配使用,system为true时可设置为Public、Private | 4.2.0 |
| ipVersion | Integer | IP协议号 | 4.2.0 |
| enableIPAM | Boolean | IP地址管理是否启用 | 4.2.0 |
| createDate | Timestamp | 创建时间 | 4.2.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.2.0 |
| dns | List | 4.2.0 | |
| vlanMode | PortGroupVlanMode | 详情参考vlanMode | 4.2.0 |
| ipRanges | List | 详情参考ipRanges | 0.6 |
| networkServices | List | 详情参考networkServices | 0.6 |
| hostRoute | List | 详情参考hostRoute | 2.3 |
#vlanMode
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ACCESS | PortGroupVlanMode | 4.2.0 | |
| TRUNK | PortGroupVlanMode | 4.2.0 | |
| PVLAN | PortGroupVlanMode | 4.2.0 |
#ipRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 起始地址 | 0.6 |
| endIp | String | 结束地址 | 0.6 |
| netmask | String | 掩码 | 0.6 |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 网关 | 0.6 |
| networkCidr | String | 网络CIDR | 0.6 |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| ipRangeType | IpRangeType | 详情参考ipRangeType | 3.9 |
#ipRangeType
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Normal | IpRangeType | 普通地址段 | 3.9 |
| AddressPool | IpRangeType | 地址池段 | 3.9 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 0.6 |
| networkServiceType | String | 0.6 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| l3NetworkUuid | String | 分布式端口组UUID | 2.3 |
| prefix | String | 2.3 | |
| nexthop | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
QueryPortGroupAction action = new QueryPortGroupAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryPortGroupAction.Result res = action.call();Python
SDK
QueryPortGroupAction action = QueryPortGroupAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryPortGroupAction.Result res = action.call()更新分布式端口组(UpdatePortGroup)
API请求
URLs
PUT zstack/v1/l3-networks/port-group/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updatePortGroup": {
"name": "Test-L3Network"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updatePortGroup":{"name":"Test-L3Network"}}' \
http://localhost:8080/zstack/v1/l3-networks/port-group/a1a3a4bea5e73628b591081fde9f019a/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.2.0 | |
| name (可选) | String | body(包含在updatePortGroup结构中) | 资源名称 | 4.2.0 | |
| description (可选) | String | body(包含在updatePortGroup结构中) | 资源的详细描述 | 4.2.0 | |
| dnsDomain (可选) | String | body(包含在updatePortGroup结构中) | DNS域 | 4.2.0 | |
| category (可选) | String | body(包含在updatePortGroup结构中) | 网络类型,需要与system标签搭配使用,system为true时可设置为Public、Private |
|
4.2.0 |
| system (可选) | Boolean | body(包含在updatePortGroup结构中) | 是否用于系统虚拟机 | 4.2.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.2.0 | |
| userTags (可选) | List | body | 用户标签 | 4.2.0 |
API返回
返回示例
{
"inventory": {
"vSwitchUuid": "d0d6d19b51ef3ec18b9607a51ac8fa47",
"vlanMode": "ACCESS",
"vlanId": 100,
"uuid": "20f61c97cf2e32e58bed3812144de79d",
"name": "port-group-1",
"description": "Test",
"type": "portGroup",
"zoneUuid": "231b37f483e93801bad53885c1fe3cdb",
"l2NetworkUuid": "60cbdcfee56831cdb8324aa7d9797032",
"state": "Enabled",
"system": false,
"category": "Private",
"enableIPAM": false
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 数据中心UUID | 0.6 |
| l2NetworkUuid | String | 端口组分布式交换机UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| dns | List | 0.6 | |
| ipRanges | List | 详情参考ipRanges | 0.6 |
| networkServices | List | 详情参考networkServices | 0.6 |
| hostRoute | List | 详情参考hostRoute | 2.3 |
#ipRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 起始地址 | 0.6 |
| endIp | String | 结束地址 | 0.6 |
| netmask | String | 掩码 | 0.6 |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 网关 | 0.6 |
| networkCidr | String | 网络CIDR | 0.6 |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| ipRangeType | IpRangeType | 详情参考ipRangeType | 3.9 |
#ipRangeType
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Normal | IpRangeType | 普通地址段 | 3.9 |
| AddressPool | IpRangeType | 地址池段 | 3.9 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 0.6 |
| networkServiceType | String | 0.6 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| l3NetworkUuid | String | 分布式端口组UUID | 2.3 |
| prefix | String | 2.3 | |
| nexthop | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
UpdatePortGroupAction action = new UpdatePortGroupAction();
action.uuid = "a1a3a4bea5e73628b591081fde9f019a";
action.name = "Test-L3Network";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdatePortGroupAction.Result res = action.call();Python
SDK
UpdatePortGroupAction action = UpdatePortGroupAction()
action.uuid = "a1a3a4bea5e73628b591081fde9f019a"
action.name = "Test-L3Network"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdatePortGroupAction.Result res = action.call()获取分布式端口组类型(GetL3NetworkTypes)
API请求
URLs
GET zstack/v1/l3-networks/typesHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 3a142b201e9342abbb5864a0ea48992e" \
-X GET http://localhost:8080/zstack/v1/l3-networks/types参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"l3NetworkTypes": [
"L3BasicNetwork"
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| types | List | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetL3NetworkTypesAction action = new GetL3NetworkTypesAction();
action.sessionId = "9105437ebb27461fbae36ecb9336ceba";
GetL3NetworkTypesAction.Result res = action.call();Python
SDK
GetL3NetworkTypesAction action = GetL3NetworkTypesAction()
action.sessionId = "a69bae9c3cad4209b042956b23c70af7"
GetL3NetworkTypesAction.Result res = action.call()改变分布式端口组状态(ChangeL3NetworkState)
API请求
URLs
PUT zstack/v1/l3-networks/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeL3NetworkState": {
"stateEvent": "enable"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeL3NetworkState":{"stateEvent":"enable"}}' \
http://localhost:8080/zstack/v1/l3-networks/a8744f1ba60c33f3a2c912c077f41fe5/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| stateEvent | String | body(包含在changeL3NetworkState结构中) | 状态,可选enable与disable |
|
0.6 |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "dfae4bce43694f4d9fc0ba5cdf4e38bd"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 数据中心UUID | 0.6 |
| l2NetworkUuid | String | 端口组分布式交换机UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| enableIPAM | Boolean | 打开IP地址管理功能 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| dns | List | 0.6 | |
| ipRanges | List | 详情参考ipRanges | 0.6 |
| networkServices | List | 详情参考networkServices | 0.6 |
| hostRoute | List | 详情参考hostRoute | 2.3 |
| reservedIpRanges | List | 详情参考reservedIpRanges | 4.10.16 |
#ipRange
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 0.6 |
| networkServiceType | String | 0.6 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| l3NetworkUuid | String | 分布式端口组UUID | 2.3 |
| prefix | String | 2.3 | |
| nexthop | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
#reservedIpRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.10.16 |
| l3NetworkUuid | String | 分布式端口组UUID | 4.10.16 |
| name | String | 资源名称 | 4.10.16 |
| description | String | 资源的详细描述 | 4.10.16 |
| startIp | String | 起始IP(包含在保留地址段内) | 4.10.16 |
| endIp | String | 结束IP(包含在保留地址段内) | 4.10.16 |
| ipVersion | Integer | ip协议号 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 4.10.16 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.10.16 |
SDK示例
Java
SDK
ChangeL3NetworkStateAction action = new ChangeL3NetworkStateAction();
action.uuid = "eb0849bf0e57400da650a09f2e852260";
action.stateEvent = "enable";
action.sessionId = "be8ec965ebd94169ba713c42dc079af9";
ChangeL3NetworkStateAction.Result res = action.call();
Python SDK
action = ChangeL3NetworkStateAction()
action.uuid = "a8744f1ba60c33f3a2c912c077f41fe5"
action.stateEvent = "enable"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()获取网络DHCP服务所用地址(GetL3NetworkDhcpIpAddress)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/dhcp-ipHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/82cae6542d3b3e7ea50dab8681f3785c/dhcp-ip参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 0.6 | |
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"ip": "192.168.100.3"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ip | String | IP地址 | 0.6 |
| ip6 | String | IPv6地址 | 3.10.0 |
| success | boolean | 成功 | 0.6 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetL3NetworkDhcpIpAddressAction action = new GetL3NetworkDhcpIpAddressAction();
action.l3NetworkUuid = "1c311c313859434f8586d4288a31952e";
action.sessionId = "dd1a8993de0e41e18d8718ea2e2d8259";
GetL3NetworkDhcpIpAddressAction.Result res = action.call();Python
SDK
GetL3NetworkDhcpIpAddressAction action = GetL3NetworkDhcpIpAddressAction()
action.l3NetworkUuid = "4970a85c53a24e35a55f44830058e719"
action.sessionId = "50fd78e250d94c5d944a5fa1a5d6bde0"
GetL3NetworkDhcpIpAddressAction.Result res = action.call()从分布式端口组移除DNS(RemoveDnsFromL3Network)
API请求
URLs
DELETE/v1/l3-networks/{l3NetworkUuid}/dns/{dns}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 209fa412351946a6bef267d423f4e53c" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/d96f7d4c0506435a9a1aa7394976c0b2/dns/8.8.4.4?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 0.6 | |
| dns | String | url | DNS地址 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "535aea9c1be24fb9b172fa1955341685",
"dns": []
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 数据中心UUID | 0.6 |
| l2NetworkUuid | String | 端口组分布式交换机UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| enableIPAM | Boolean | 打开IP地址管理功能 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| dns | List | 0.6 | |
| ipRanges | List | 详情参考ipRanges | 0.6 |
| networkServices | List | 详情参考networkServices | 0.6 |
| hostRoute | List | 详情参考hostRoute | 2.3 |
| reservedIpRanges | List | 详情参考reservedIpRanges | 4.10.16 |
#ipRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 0.6 |
| networkServiceType | String | 0.6 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| l3NetworkUuid | String | 分布式端口组UUID | 2.3 |
| prefix | String | 2.3 | |
| nexthop | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
#reservedIpRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.10.16 |
| l3NetworkUuid | String | 分布式端口组UUID | 4.10.16 |
| name | String | 资源名称 | 4.10.16 |
| description | String | 资源的详细描述 | 4.10.16 |
| startIp | String | 起始IP(包含在保留地址段内) | 4.10.16 |
| endIp | String | 结束IP(包含在保留地址段内) | 4.10.16 |
| ipVersion | Integer | ip协议号 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 4.10.16 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.10.16 |
SDK示例
Java
SDK
RemoveDnsFromL3NetworkAction action = new RemoveDnsFromL3NetworkAction();
action.l3NetworkUuid = "3e9227b9ecbd42bba0f3a4620f5655d2";
action.dns = "8.8.4.4";
action.sessionId = "f3e42d2a37ed4c42a6ce7d192af94e05";
RemoveDnsFromL3NetworkAction.Result res = action.call();Python SDK
action = RemoveDnsFromL3NetworkAction()
action.l3NetworkUuid = "bdb41ab0a7c131a285acbfbd6e88b7d1"
action.dns = "8.8.4.4"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()向分布式端口组添加DNS(AddDnsToL3Network)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/dnsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"dns": "8.8.8.8"
},
"systemTags": [],
"userTags": []
}Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"dns":"8.8.8.8"}}' \
http://localhost:8080/zstack/v1/l3-networks/0b8da8c298ed3960925abbcc4f913da8/dns参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 0.6 | |
| dns | String | url | DNS地址 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "08f7b0b577a84c28968ddce5a9377c5d",
"dns": [
"8.8.8.8"
]
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 数据中心UUID | 0.6 |
| l2NetworkUuid | String | 端口组分布式交换机UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| enableIPAM | Boolean | 打开IP地址管理功能 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| dns | List | 0.6 | |
| ipRanges | List | 详情参考ipRanges | 0.6 |
| networkServices | List | 详情参考networkServices | 0.6 |
| hostRoute | List | 详情参考hostRoute | 2.3 |
| reservedIpRanges | List | 详情参考reservedIpRanges | 4.10.16 |
#ipRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 0.6 |
| networkServiceType | String | 0.6 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| l3NetworkUuid | String | 分布式端口组UUID | 2.3 |
| prefix | String | 2.3 | |
| nexthop | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
#reservedIpRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.10.16 |
| l3NetworkUuid | String | 分布式端口组UUID | 4.10.16 |
| name | String | 资源名称 | 4.10.16 |
| description | String | 资源的详细描述 | 4.10.16 |
| startIp | String | 起始IP(包含在保留地址段内) | 4.10.16 |
| endIp | String | 结束IP(包含在保留地址段内) | 4.10.16 |
| ipVersion | Integer | ip协议号 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 4.10.16 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.10.16 |
SDK示例
Java
SDK
AddDnsToL3NetworkAction action = new AddDnsToL3NetworkAction();
action.l3NetworkUuid = "80bfafb9c4534a2593fcda534ee6414f";
action.dns = "8.8.8.8";
action.sessionId = "0a24af3791134b81bba960844b3aa899";
AddDnsToL3NetworkAction.Result res = action.call();Python SDK
action = AddDnsToL3NetworkAction()
action.l3NetworkUuid = "0b8da8c298ed3960925abbcc4f913da8"
action.dns = "8.8.8.8"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()向分布式端口组添加主机路由(AddHostRouteToL3Network)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/hostrouteHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"prefix": "169.254.169.254/32",
"nexthop": "192.168.1.254"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"prefix":"169.254.169.254/32","nexthop":"192.168.1.254"}}' \
http://localhost:8080/zstack/v1/l3-networks/45d86c07f10437c6bf3161bae9974bb7/hostroute参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 2.3 | |
| prefix | String | body(包含在params结构中) | 2.3 | ||
| nexthop | String | body(包含在params结构中) | 2.3 | ||
| systemTags (可选) | List | body | 2.3 | ||
| userTags (可选) | List | body | 2.3 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "7dfdf976ef1334fba5c3b475104011b2",
"dns": [
"8.8.8.8"
],
"hostRoute": [
{
"prefix": "169.254.169.254/32",
"nexthop": "192.168.1.254"
}
]
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 数据中心UUID | 0.6 |
| l2NetworkUuid | String | 端口组分布式交换机UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| enableIPAM | Boolean | 打开IP地址管理功能 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| dns | List | 0.6 | |
| ipRanges | List | 详情参考ipRanges | 0.6 |
| networkServices | List | 详情参考networkServices | 0.6 |
| hostRoute | List | 详情参考hostRoute | 2.3 |
| reservedIpRanges | List | 详情参考reservedIpRanges | 4.10.16 |
#ipRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 0.6 |
| networkServiceType | String | 0.6 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| l3NetworkUuid | String | 分布式端口组UUID | 2.3 |
| prefix | String | 2.3 | |
| nexthop | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
#reservedIpRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.10.16 |
| l3NetworkUuid | String | 分布式端口组UUID | 4.10.16 |
| name | String | 资源名称 | 4.10.16 |
| description | String | 资源的详细描述 | 4.10.16 |
| startIp | String | 起始IP(包含在保留地址段内) | 4.10.16 |
| endIp | String | 结束IP(包含在保留地址段内) | 4.10.16 |
| ipVersion | Integer | ip协议号 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 4.10.16 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.10.16 |
SDK示例
Java
SDK
AddHostRouteToL3NetworkAction action = new AddHostRouteToL3NetworkAction();
action.l3NetworkUuid = "45d86c07f10437c6bf3161bae9974bb7";
action.prefix = "169.254.169.254/32";
action.nexthop = "192.168.1.254";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddHostRouteToL3NetworkAction.Result res = action.call();Python SDK
action = AddHostRouteToL3NetworkAction()
action.l3NetworkUuid = "45d86c07f10437c6bf3161bae9974bb7"
action.prefix = "169.254.169.254/32"
action.nexthop = "192.168.1.254"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()从分布式端口组移除主机路由(RemoveHostRouteFromL3Network)
API请求
URLs
DELETE zstack/v1/l3-networks/{l3NetworkUuid}/hostroute?prefix={prefix}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/8648a70a245232c5a1bee9ae408419e5/hostroute?prefix=169.254.169.254/32参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 2.3 | |
| prefix | String | body | 2.3 | ||
| systemTags (可选) | List | body | 2.3 | ||
| userTags (可选) | List | body | 2.3 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "15e1e6a016f43a5688ca3d3445076309",
"dns": []
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 数据中心UUID | 0.6 |
| l2NetworkUuid | String | 端口组分布式交换机UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| enableIPAM | Boolean | 打开IP地址管理功能 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| dns | List | 0.6 | |
| ipRanges | List | 详情参考ipRanges | 0.6 |
| networkServices | List | 详情参考networkServices | 0.6 |
| hostRoute | List | 详情参考hostRoute | 2.3 |
| reservedIpRanges | List | 详情参考reservedIpRanges | 4.10.16 |
#ipRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 0.6 |
| networkServiceType | String | 0.6 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| l3NetworkUuid | String | 分布式端口组UUID | 2.3 |
| prefix | String | 2.3 | |
| nexthop | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
#reservedIpRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.10.16 |
| l3NetworkUuid | String | 分布式端口组UUID | 4.10.16 |
| name | String | 资源名称 | 4.10.16 |
| description | String | 资源的详细描述 | 4.10.16 |
| startIp | String | 起始IP(包含在保留地址段内) | 4.10.16 |
| endIp | String | 结束IP(包含在保留地址段内) | 4.10.16 |
| ipVersion | Integer | ip协议号 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 4.10.16 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.10.16 |
SDK示例
Java
SDK
RemoveHostRouteFromL3NetworkAction action = new RemoveHostRouteFromL3NetworkAction();
action.l3NetworkUuid = "8648a70a245232c5a1bee9ae408419e5";
action.prefix = "169.254.169.254/32";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveHostRouteFromL3NetworkAction.Result res = action.call();Python SDK
action = RemoveHostRouteFromL3NetworkAction()
action.l3NetworkUuid = "8648a70a245232c5a1bee9ae408419e5"
action.prefix = "169.254.169.254/32"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()获取空闲IP(GetFreeIp)
API请求
URLs
GET zstack/v1/l3-networks/ip/freeGET zstack/v1/l3-networks/{l3NetworkUuid}/ip/freeGET zstack/v1/l3-networks/ip-ranges/{ipRangeUuid}/ip/freeHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip/free?l3NetworkUuid=c8cd63a1882331a9a5ee83e5d9b265ec&ipRangeUuid=10fc8508fd723e63bcc57b8bb6d7a133&limit=100.0curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/c8cd63a1882331a9a5ee83e5d9b265ec/ip/free?l3NetworkUuid=c8cd63a1882331a9a5ee83e5d9b265ec&ipRangeUuid=10fc8508fd723e63bcc57b8bb6d7a133&limit=100.0curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-ranges/10fc8508fd723e63bcc57b8bb6d7a133/ip/free?l3NetworkUuid=c8cd63a1882331a9a5ee83e5d9b265ec&ipRangeUuid=10fc8508fd723e63bcc57b8bb6d7a133&limit=100.0参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid (可选) | String | query | 分布式端口组UUID Note: l3NetworkUuid和ipRangeUuid二选一 |
0.6 | |
| ipRangeUuid (可选) | String | query | IP段UUID Note: l3NetworkUuid和ipRangeUuid二选一 |
0.6 | |
| start (可选) | String | query | 起始值 | 0.6 | |
| ipRangeType (可选) | String | query | 地址类型 |
|
3.9.0 |
| ipVersion (可选) | Integer | query | IP地址版本号 |
|
3.10.0 |
| limit (可选) | int | query | 数量限制 | 0.6 | |
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"inventories": [
{
"ipRangeUuid": "662d600a4b644f98a0c49df2e5430d69",
"ip": "10.20.10.5",
"netmask": "255.255.255.0",
"gateway": "10.20.10.1"
},
{
"ipRangeUuid": "662d600a4b644f98a0c49df2e5430d69",
"ip": "10.20.10.6",
"netmask": "255.255.255.0",
"gateway": "10.20.10.1"
},
{
"ipRangeUuid": "662d600a4b644f98a0c49df2e5430d69",
"ip": "10.20.10.10",
"netmask": "255.255.255.0",
"gateway": "10.20.10.1"
}
]
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ipRangeUuid | String | IP段UUID | 0.6 |
| ip | String | 0.6 | |
| netmask | String | 0.6 | |
| gateway | String | 0.6 |
SDK示例
Java
SDK
GetFreeIpAction action = new GetFreeIpAction();
action.l3NetworkUuid = "c8cd63a1882331a9a5ee83e5d9b265ec";
action.ipRangeUuid = "10fc8508fd723e63bcc57b8bb6d7a133";
action.limit = 100.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetFreeIpAction.Result res = action.call();Python
SDK
GetFreeIpAction action = GetFreeIpAction()
action.l3NetworkUuid = "c8cd63a1882331a9a5ee83e5d9b265ec"
action.ipRangeUuid = "10fc8508fd723e63bcc57b8bb6d7a133"
action.limit = 100.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetFreeIpAction.Result res = action.call()检查IP可用性(CheckIpAvailability)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/ip/{ip}/availabilityHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 642bc388bc3040ce9ed0c477bd6b3874" \
-X GET http://localhost:8080/zstack/v1/l3-networks/44fc110c3d87326299b46975aacb1705/ip/192.168.10.100/availability?arpCheck=false&ipRangeCheck=true参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 0.6 | |
| ip | String | url | IP地址 | 0.6 | |
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 | |
| arpCheck (可选) | Boolean | query | 使用arping检测 | 4.10.16 | |
| ipRangeCheck (可选) | Boolean | query | 在数据库可用地址段内检测 | 4.10.16 |
API返回
返回示例
{
"available": true
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| available | boolean | 可用 | 0.6 |
| success | boolean | 成功 | 0.6 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java SDK
CheckIpAvailabilityAction action = new CheckIpAvailabilityAction();
action.l3NetworkUuid = "44fc110c3d87326299b46975aacb1705";
action.ip = "192.168.10.100";
action.arpCheck = false;
action.ipRangeCheck = true;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CheckIpAvailabilityAction.Result res = action.call();Python SDK
action = CheckIpAvailabilityAction()
action.l3NetworkUuid = "44fc110c3d87326299b46975aacb1705"
action.ip = "192.168.10.100"
action.arpCheck = false
action.ipRangeCheck = true
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()获取IP网络地址容量(GetIpAddressCapacity)
API请求
URLs
GET zstack/v1/ip-capacityHeaders
Authorization: OAuth the-session-uuid sCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/ip-capacity?ipRangeUuids=6bf57331ebe433389c6c230153ac5d8d&all=false参数列表
| 名字 | 类型 | 位置 | 描述 | 起始版本 |
|---|---|---|---|---|
| zoneUuids (可选) | List | query | 数据中心UUID | 0.6 |
| l3NetworkUuids (可选) | List | query | 分布式端口组UUID | 0.6 |
| ipRangeUuids (可选) | List | query | IP地址范围UUID | 0.6 |
| all (可选) | boolean | query | 系统全局 | 0.6 |
| systemTags (可选) | List | query | 系统标签 | 0.6 |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"totalCapacity": 20.0,
"availableCapacity": 15.0,
"usedIpAddressNumber": 5.0,
"ipv4TotalCapacity": 0.0,
"ipv4AvailableCapacity": 0.0,
"ipv4UsedIpAddressNumber": 0.0,
"ipv6TotalCapacity": 0.0,
"ipv6AvailableCapacity": 0.0,
"ipv6UsedIpAddressNumber": 0.0,
"capacityData": [
{
"resourceUuid": "68b9a1c74c4c33c7b818e4c14bdea0a7",
"totalCapacity": 20.0,
"availableCapacity": 15.0,
"usedIpAddressNumber": 5.0,
"ipv4TotalCapacity": 0.0,
"ipv4AvailableCapacity": 0.0,
"ipv4UsedIpAddressNumber": 0.0,
"ipv6TotalCapacity": 0.0,
"ipv6AvailableCapacity": 0.0,
"ipv6UsedIpAddressNumber": 0.0
}
],
"resourceType": "L3NetworkVO"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| totalCapacity | long | IP地址容量 | 0.6 |
| availableCapacity | long | 可用IP地址容量 | 0.6 |
| usedIpAddressNumber | long | 已使用IP数量 | 3.10.0 |
| ipv4TotalCapacity | long | IPv4地址容量 | 3.10.0 |
| ipv4AvailableCapacity | long | 可用IPv4地址容量 | 3.10.0 |
| ipv4UsedIpAddressNumber | long | 已使用IPv4数量 | 3.10.0 |
| ipv6TotalCapacity | long | IPv6地址容量 | 3.10.0 |
| ipv6AvailableCapacity | long | 可用IPv6地址容量 | 3.10.0 |
| ipv6UsedIpAddressNumber | long | 已使用IPv6数量 | 3.10.0 |
| resourceType | String | 所查询资源的类型(地址范围、分布式端口组、数据中心) | 3.9.0 |
| success | boolean | 成功 | 0.6 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| capacityData | List | 详情参考capacityData | 3.9.0 |
| error | ErrorCode | 详情参考error | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#capacityData
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| resourceUuid | String | 资源UUID | 3.9.0 |
| totalCapacity | long | IP地址总容量 | 3.9.0 |
| availableCapacity | long | 可用IP地址容量 | 3.9.0 |
| usedIpAddressNumber | long | 已用IP地址容量 | 3.9.0 |
| ipv4TotalCapacity | long | IPv4地址总容量 | 3.10.0 |
| ipv4AvailableCapacity | long | 可用IPv4地址容量 | 3.10.0 |
| ipv4UsedIpAddressNumber | long | 已用IPv4地址容量 | 3.10.0 |
| ipv6TotalCapacity | long | IPv6地址总容量 | 3.10.0 |
| ipv6AvailableCapacity | long | 可用IPv6地址容量 | 3.10.0 |
| ipv6UsedIpAddressNumber | long | 已用IPv6地址容量 | 3.10.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetIpAddressCapacityAction action = new GetIpAddressCapacityAction();
action.ipRangeUuids = asList("6bf57331ebe433389c6c230153ac5d8d");
action.all = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetIpAddressCapacityAction.Result res = action.call();Python
SDK
GetIpAddressCapacityAction action = GetIpAddressCapacityAction()
action.ipRangeUuids = [6bf57331ebe433389c6c230153ac5d8d]
action.all = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetIpAddressCapacityAction.Result res = action.call()添加IP地址范围(AddIpRange)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/ip-rangesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-IP-Range",
"startIp": "192.168.100.10",
"endIp": "192.168.100.250",
"netmask": "255.255.255.0",
"gateway": "192.168.100.1",
"ipRangeType": "Normal"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-IP-Range","startIp":"192.168.100.10","endIp":"192.168.100.250","netmask":"255.255.255.0","gateway":"192.168.100.1","ipRangeType":"Normal"}}' http://localhost:8080/zstack/v1/l3-networks/acc0573590db3297814610cab774b60b/ip-ranges参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 0.6 | |
| name | String | body(包含在params结构中) | 分布式端口组的名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 分布式端口组的详细描述 | 0.6 | |
| startIp | String | body(包含在params结构中) | 起始地址 | 0.6 | |
| endIp | String | body(包含在params结构中) | 结束地址 | 0.6 | |
| netmask | String | body(包含在params结构中) | 网络掩码 | 0.6 | |
| gateway | String | body(包含在params结构中) | 网关 | 0.6 | |
| ipRangeType (可选) | String | body(包含在params结构中) | 地址类型 |
|
3.9.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,分布式端口组会使用该字段值作为UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
Note:
- ZStack ZSphere添加IP地址范围时支持添加IP地址段的时候指定DHCP
server地址功能,SystemTags增加DhcpServer选项。
- 选项格式为:
flatNetwork::DhcpServer::{%s}::ipUuid::{%s} - 例如:
flatNetwork::DhcpServer::192.168.1.100::ipUuid::null
- 选项格式为:
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "4cbec970df744e258726f71de79e6497",
"name": "Test-IP-Range",
"startIp": "192.168.100.10",
"endIp": "192.168.100.250",
"netmask": "255.255.255.0",
"gateway": "192.168.100.1"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventory | IpRangeInventory | 详情参考inventory | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| ipRangeType | IpRangeType | 详情参考ipRangeType | 3.9.0 |
#ipRangeType
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Normal | IpRangeType | 3.9.0 | |
| AddressPool | IpRangeType | 3.9.0 |
SDK示例
Java
SDK
AddIpRangeAction action = new AddIpRangeAction();
action.l3NetworkUuid = "acc0573590db3297814610cab774b60b";
action.name = "Test-IP-Range";
action.startIp = "192.168.100.10";
action.endIp = "192.168.100.250";
action.netmask = "255.255.255.0";
action.gateway = "192.168.100.1";
action.ipRangeType = "Normal";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddIpRangeAction.Result res = action.call();Python
SDK
AddIpRangeAction action = AddIpRangeAction()
action.l3NetworkUuid = "acc0573590db3297814610cab774b60b"
action.name = "Test-IP-Range"
action.startIp = "192.168.100.10"
action.endIp = "192.168.100.250"
action.netmask = "255.255.255.0"
action.gateway = "192.168.100.1"
action.ipRangeType = "Normal"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddIpRangeAction.Result res = action.call()删除IP地址范围(DeleteIpRange)
API请求
URLs
DELETE zstack/v1/l3-networks/ip-ranges/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 1872261fb9824d9f9dd73a991cf05a44" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/ip-ranges/6ab14473fbfa340a807c5987cafa8f7f参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | IP地址范围的UUID | 0.6 | |
| deleteMode (可选) | String | body | 删除模式 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeleteIpRangeAction action = new DeleteIpRangeAction();
action.uuid = "6d1f44d0fe1440189eb293f18d7bf682";
action.deleteMode = "Permissive";
action.sessionId = "4a3745cb42f5430f874c6f6c4b298e95";
DeleteIpRangeAction.Result res = action.call();Python
SDK
DeleteIpRangeAction action = DeleteIpRangeAction()
action.uuid = "0f1fcf2e779543baa416deb89eeeb2db"
action.deleteMode = "Permissive"
action.sessionId = "d07fb42a181d43dda2b6992536b02804"
DeleteIpRangeAction.Result res = action.call()查询IP地址范围(QueryIpRange)
API请求
URLs
GET zstack/v1/l3-networks/ip-ranges
GET /v1/l3-networks/ip-ranges/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 8f7b1e0396c54646a4b37affdfdda079" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-ranges?q=uuid=887227aa5d5c49e2a8137b79dad3738acurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 60a5dfda1a9843809415eb28f2550f94" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-ranges/17684784fcc04571a47eb24dc2eb9638可查询字段
运行CLI命令行工具,输入QueryIpRange并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"l3NetworkUuid": "9a72daf0034443aa81864e593f0f5b32",
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventories | List | 详情参考inventories | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
QueryIpRangeAction action = new QueryIpRangeAction();
action.conditions = asList("uuid=d5764d7ab9174e5486e55ba805d28675");
action.sessionId = "5357e54aa55a4846ac96972776d3100f";
QueryIpRangeAction.Result res = action.call();Python
SDK
QueryIpRangeAction action = QueryIpRangeAction()
action.conditions = ["uuid=2cda79a574344eeb9f38393253ddf858"]
action.sessionId = "c87d6755153549f6a4e7373b601ac99f"
QueryIpRangeAction.Result res = action.call()更新IP地址范围(UpdateIpRange)
API请求
URLs
PUT zstack/v1/l3-networks/ip-ranges/{uuid}/actions
Headers
Authorization: OAuth the-session-uuidBody
{
"updateIpRange": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateIpRange":{}}' \
http://localhost:8080/zstack/v1/l3-networks/ip-ranges/0ebb3eb1c1e134bea93c2f9ed2e2beef/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| name (可选) | String | body(包含在updateIpRange结构中) | 分布式端口组的名称 | 0.6 | |
| description (可选) | String | body(包含在updateIpRange结构中) | 分布式端口组的详细描述 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "f7f0ee7b4978413fa36c811e47dd56a3",
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24"
}
}#error
| 名 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
UpdateIpRangeAction action = new UpdateIpRangeAction();
action.uuid = "97054a54a1fc4b49ba3d7a5d44b9e385";
action.sessionId = "8644fd2755f148359edff9521b27868b";
UpdateIpRangeAction.Result res = action.call();Python
SDK
UpdateIpRangeAction action = UpdateIpRangeAction()
action.uuid = "2b4499297735445482dc994113574b41"
action.sessionId = "0a16c9ea3e6e4ad9b1ff71a826b67277"
UpdateIpRangeAction.Result res = action.call()通过网络CIDR添加IP地址范围(AddIpRangeByNetworkCidr)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/ip-ranges/by-cidrHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24",
"ipRangeType": "Normal"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-IPRange","networkCidr":"192.168.10.0/24","ipRangeType":"Normal"}}' http://localhost:8080/zstack/v1/l3-networks/c186887bc5e43da7ba42bd5d66eba0cd/ip-ranges/by-cidr参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 分布式端口组的名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 分布式端口组的详细描述 | 0.6 | |
| l3NetworkUuid | String | url | 分布式端口组UUID | 0.6 | |
| networkCidr | String | body(包含在params结构中) | 网络CIDR | 0.6 | |
| gateway (可选) | String | body(包含在params结构中) | 网关 | 3.7.0 | |
| ipRangeType (可选) | String | body(包含在params结构中) | 地址类型 |
|
3.9.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,分布式端口组会使用该字段值作为UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
Note:
- ZStack ZSphere通过网络CIDR添加IP地址范围时支持添加IP地址段的时候指定DHCP
server地址功能,SystemTags增加affinityGroup选项。
- 选项格式为:
flatNetwork::DhcpServer::{%s}::ipUuid::{%s} - 例如:
flatNetwork::DhcpServer::192.168.1.100::ipUuid::null
- 选项格式为:
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "4e0926c4fa27455f88c7d94420bf3422",
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 分布式端口组UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| ipRangeType | IpRangeType | 详情参考ipRangeType | 3.9.0 |
#ipRangeType
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Normal | IpRangeType | 3.9.0 | |
| AddressPool | IpRangeType | 3.9.0 |
SDK示例
Java
SDK
AddIpRangeByNetworkCidrAction action = new AddIpRangeByNetworkCidrAction();
action.name = "Test-IPRange";
action.l3NetworkUuid = "c186887bc5e43da7ba42bd5d66eba0cd";
action.networkCidr = "192.168.10.0/24";
action.ipRangeType = "Normal";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddIpRangeByNetworkCidrAction.Result res = action.call();Python
SDK
AddIpRangeByNetworkCidrAction action = AddIpRangeByNetworkCidrAction()
action.name = "Test-IPRange"
action.l3NetworkUuid = "c186887bc5e43da7ba42bd5d66eba0cd"
action.networkCidr = "192.168.10.0/24"
action.ipRangeType = "Normal"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddIpRangeByNetworkCidrAction.Result res = action.call()获取分布式端口组MTU值(GetL3NetworkMtu)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/mtuHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth dc112a530fd2402cae6b4962f65eae4e" \
-X GET http://localhost:8080/zstack/v1/l3-networks/be54f79eb90f4f929da7fe64e1aea8e4/mtu参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 2.1 | |
| systemTags (可选) | List | query | 2.1 | ||
| userTags (可选) | List | query | 2.1 |
API返回
返回示例
{
"mtu": 9216.0
} #error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
SDK示例
Java
SDK
GetL3NetworkMtuAction action = new GetL3NetworkMtuAction();
action.l3NetworkUuid = "fd8d572d777d4383b201ddfce629d50e";
action.sessionId = "0cc5202de3ce4881a305e5fa1d431aaa";
GetL3NetworkMtuAction.Result res = action.call();Python
SDK
GetL3NetworkMtuAction action = GetL3NetworkMtuAction()
action.l3NetworkUuid = "7615cfd154a048dcab07a1114ee6205d"
action.sessionId = "d0f3cf05a49345438a92108d2fd86cfe"
GetL3NetworkMtuAction.Result res = action.call()设置分布式端口组MTU值(SetL3NetworkMtu)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/mtu
Headers
Authorization: OAuth the-session-uuidBody
{
"params": {
"mtu": 9216.0
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"mtu":9216.0}}' \
http://localhost:8080/zstack/v1/l3-networks/817672c1bb903264a9a41c34332c3145/mtu参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 2.1 | |
| mtu | Integer | body(包含在params结构中) | 2.1 | ||
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
SetL3NetworkMtuAction action = new SetL3NetworkMtuAction();
action.l3NetworkUuid = "b19ce058b0f54c6d83c14078c0079c2c";
action.mtu = 9216.0;
action.sessionId = "b441c616886c4183a51ba044e35c7d66";
SetL3NetworkMtuAction.Result res = action.call();Python
SDK
SetL3NetworkMtuAction action = SetL3NetworkMtuAction()
action.l3NetworkUuid = "67dc01887dfc4142aabe4221675c1b98"
action.mtu = 9216.0
action.sessionId = "d5188e0801994e3a9dfb3d3ebc2f7a39"
SetL3NetworkMtuAction.Result res = action.call()添加IPv6地址范围(AddIpv6Range)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/ipv6-rangesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-IP-Range",
"startIp": "2002:2001::02",
"endIp": "2002:2001::FE",
"gateway": "2002:2001::01",
"prefixLen": 64,
"addressMode": "Stateful-DHCP"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-IP-Range","startIp":"2002:2001::02","endIp":"2002:2001::FE","gateway":"2002:2001::01","prefixLen":64.0,"addressMode":"Stateful-DHCP"}}' http://localhost:8080/zstack/v1/l3-networks/b6f82aa00c3f37adba4b349eb427db80/ipv6-ranges参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 3.1.0 | |
| name | String | body(包含在params结构中) | 分布式端口组的名称 | 3.1.0 | |
| description (可选) | String | body(包含在params结构中) | 分布式端口组的详细描述 | 3.1.0 | |
| startIp | String | body(包含在params结构中) | 起始地址 | 3.1.0 | |
| endIp | String | body(包含在params结构中) | 结束地址 | 3.1.0 | |
| gateway | String | body(包含在params结构中) | 网关 | 3.1.0 | |
| prefixLen | Integer | body(包含在params结构中) | 前缀长度 | 3.1.0 | |
| addressMode | String | body(包含在params结构中) | IPv6地址分配模式 |
|
3.1.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,分布式端口组会使用该字段值作为UUID | 3.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.1.0 | |
| userTags (可选) | List | body | 用户标签 | 3.1.0 |
Note:
- ZStack ZSphere添加IPv6地址范围时支持指定DHCP
server地址功能,SystemTags增加affinityGroup选项。
- 选项格式为:
flatNetwork::DhcpServer::{%s}::ipUuid::{%s} - 例如:
flatNetwork::DhcpServer::192.168.1.100::ipUuid::null
- 选项格式为:
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "10d6128c8f473a63889597becc396bba",
"name": "Test-IP-Range",
"startIp": "2002:2001::02",
"endIp": "2002:2001::FE",
"netmask": "FFFF:FFFF:FFFF:FFFF:0:0:0:0",
"prefixLen": "64"
"gateway": "2002:2001::01"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.1.0 |
| description | String | 错误的概要描述 | 3.1.0 |
| details | String | 错误的详细信息 | 3.1.0 |
| elaboration | String | 保留字段,默认为null | 3.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.1.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.1.0 |
| l3NetworkUuid | String | 分布式端口组UUID | 3.1.0 |
| name | String | 资源名称 | 3.1.0 |
| description | String | 资源的详细描述 | 3.1.0 |
| startIp | String | 3.1.0 | |
| endIp | String | 3.1.0 | |
| netmask | String | 3.1.0 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 3.1.0 | |
| networkCidr | String | 3.1.0 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 3.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.1.0 |
SDK示例
Java
SDK
AddIpv6RangeAction action = new AddIpv6RangeAction();
action.l3NetworkUuid = "b6f82aa00c3f37adba4b349eb427db80";
action.name = "Test-IP-Range";
action.startIp = "2002:2001::02";
action.endIp = "2002:2001::FE";
action.gateway = "2002:2001::01";
action.prefixLen = 64;
action.addressMode = "Stateful-DHCP";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddIpv6RangeAction.Result res = action.call();Python
SDK
AddIpv6RangeAction action = AddIpv6RangeAction()
action.l3NetworkUuid = "b6f82aa00c3f37adba4b349eb427db80"
action.name = "Test-IP-Range"
action.startIp = "2002:2001::02"
action.endIp = "2002:2001::FE"
action.gateway = "2002:2001::01"
action.prefixLen = 64
action.addressMode = "Stateful-DHCP"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddIpv6RangeAction.Result res = action.call()通过网络CIDR添加IPv6地址范围(AddIpv6RangeByNetworkCidr)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/ipv6-ranges/by-cidrHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-IPRange",
"networkCidr": "2002:2001::/64",
"addressMode": "SLAAC"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-IPRange","networkCidr":"2002:2001::/64","addressMode":"SLAAC"}}' http://localhost:8080/zstack/v1/l3-networks/92850b5a66633e2aa8c3a8ae6ebb541d/ipv6-ranges/by-cidr参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 分布式端口组的名称 | 3.1.0 | |
| description (可选) | String | body(包含在params结构中) | 分布式端口组的详细描述 | 3.1.0 | |
| l3NetworkUuid | String | url | 分布式端口组UUID | 3.1.0 | |
| networkCidr | String | body(包含在params结构中) | 网络CIDR | 3.1.0 | |
| addressMode | String | body(包含在params结构中) | IPv6地址分配模式 |
|
3.1.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,分布式端口组会使用该字段值作为UUID | 3.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.1.0 | |
| userTags (可选) | List | body | 用户标签 | 3.1.0 |
Note:
- ZStack ZSphere通过网络CIDR添加IPv6地址范围时支持指定DHCP
server地址功能,SystemTags增加affinityGroup选项。
- 选项格式为:
flatNetwork::DhcpServer::{%s}::ipUuid::{%s} - 例如:
flatNetwork::DhcpServer::192.168.1.100::ipUuid::null
- 选项格式为:
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "6735b2c2bc0c345892b7d66b1616d909",
"name": "Test-IPRange",
"networkCidr": "2002:2001::/64"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.1.0 |
| description | String | 错误的概要描述 | 3.1.0 |
| details | String | 错误的详细信息 | 3.1.0 |
| elaboration | String | 保留字段,默认为null | 3.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.1.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.1.0 |
| l3NetworkUuid | String | 分布式端口组UUID | 3.1.0 |
| name | String | 资源名称 | 3.1.0 |
| description | String | 资源的详细描述 | 3.1.0 |
| startIp | String | 3.1.0 | |
| endIp | String | 3.1.0 | |
| netmask | String | 3.1.0 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 3.1.0 | |
| networkCidr | String | 3.1.0 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 3.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.1.0 |
SDK示例
Java
SDK
AddIpv6RangeByNetworkCidrAction action = new AddIpv6RangeByNetworkCidrAction();
action.name = "Test-IPRange";
action.l3NetworkUuid = "92850b5a66633e2aa8c3a8ae6ebb541d";
action.networkCidr = "2002:2001::/64";
action.addressMode = "SLAAC";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddIpv6RangeByNetworkCidrAction.Result res = action.call();Python
SDK
AddIpv6RangeByNetworkCidrAction action = AddIpv6RangeByNetworkCidrAction()
action.name = "Test-IPRange"
action.l3NetworkUuid = "92850b5a66633e2aa8c3a8ae6ebb541d"
action.networkCidr = "2002:2001::/64"
action.addressMode = "SLAAC"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddIpv6RangeByNetworkCidrAction.Result res = action.call()查询IP地址(QueryIpAddress)
API请求
URLs
GET zstack/v1/l3-networks/ip-address
GET zstack/v1/l3-networks/ip-address{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-addresscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-address/87b2ab50f6c13ebb9dd73ca46bb22bc7可查询字段
运行CLI命令行工具,输入QueryIpAddress并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "3ccfbfd6bd483a5eaeabed00b284f4fc",
"ipRangeUuid": "1b3a29978ea73f0db4ce8d8c2d0bd479",
"l3NetworkUuid": "c11b366475f836078e5aa86469de2eef",
"ipVersion": 4.0,
"ip": "192.168.1.100",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"ipInLong": 0.0,
"vmNicUuid": "28e22f67b2893b208547333dfef7cfa8"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考errot | 3.1.0 |
| inventories | List | 详情参考inventories | 3.1.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.1.0 |
| description | String | 错误的概要描述 | 3.1.0 |
| details | String | 错误的详细信息 | 3.1.0 |
| elaboration | String | 保留字段,默认为null | 3.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.1.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.1.0 |
| ipRangeUuid | String | IP段UUID | 3.1.0 |
| l3NetworkUuid | String | 分布式端口组UUID | 3.1.0 |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| ip | String | IP地址 | 3.1.0 |
| netmask | String | 网络掩码 | 3.1.0 |
| gateway | String | 网关地址 | 3.1.0 |
| usedFor | String | 3.1.0 | |
| ipInLong | long | 3.1.0 | |
| vmNicUuid | String | 虚拟机网卡UUID | 3.1.0 |
| createDate | Timestamp | 创建时间 | 3.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.1.0 |
SDK示例
Java
SDK
QueryIpAddressAction action = new QueryIpAddressAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryIpAddressAction.Result res = action.call();Python
SDK
QueryIpAddressAction action = QueryIpAddressAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryIpAddressAction.Result res = action.call()获取分布式端口组IP地址使用情况统计(GetL3NetworkIpStatistic)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/ip-statisticHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/9bdd769f3e603f65bd368512ebe8b998/ip-statistic?resourceType=All&sortBy=Ip&sortDirection=asc&start=0&limit=20&replyWithCount=false参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 3.7.0 | |
| resourceType (可选) | String | query | 统计资源类型 |
|
3.7.0 |
| ip (可选) | String | query | 指定IP地址 | 3.7.0 | |
| sortBy (可选) | String | query | 排序方式 |
|
3.7.0 |
| sortDirection (可选) | String | query | 排序方向 |
|
3.7.0 |
| start (可选) | Integer | query | 统计结果起始位置 | 3.7.0 | |
| limit (可选) | Integer | query | 统计结果数量 | 3.7.0 | |
| replyWithCount (可选) | boolean | query | 同时返回统计结果总数 | 3.7.0 | |
| systemTags (可选) | List | query | 系统标签 | 3.7.0 | |
| userTags (可选) | List | query | 用户标签 | 3.7.0 |
API返回
返回示例
{
"ipStatistics": [
{
"ip": "192.168.0.1",
"resourceTypes": [
"Other"
]
}
],
"total": 1
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| total | Long | IP统计结果总数 | 3.7.0 |
| success | boolean | 成功 | 3.7.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.7.0 |
| ipStatistics | List | 详情参考ipStatistics | 3.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.7.0 |
| description | String | 错误的概要描述 | 3.7.0 |
| details | String | 错误的详细信息 | 3.7.0 |
| elaboration | String | 保留字段,默认为null | 3.7.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.7.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.7.0 |
#ipStatistics
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ip | String | IP地址 | 3.7.0 |
| vipUuid | String | 虚拟IP的UUID | 3.7.0 |
| vipName | String | 虚拟IP名字 | 3.7.0 |
| vmInstanceUuid | String | 虚拟机实例UUID | 3.7.0 |
| vmInstanceName | String | 虚拟机实例名字 | 3.7.0 |
| vmInstanceType | String | 虚拟机实例类型 | 3.7.0 |
| applianceVmOwnerUuid | String | 应用虚拟机实例的网络服务Uuid | 4.1.0 |
| vmDefaultIp | String | 虚拟机实例默认IP | 3.7.0 |
| resourceTypes | List | 绑定到IP地址的资源类型列表 | 3.7.0 |
| state | String | 资源状态 | 3.7.0 |
| useFor | String | 虚拟IP绑定的网络服务 | 3.7.0 |
| createDate | Timestamp | 创建时间 | 3.7.0 |
| ownerName | String | 资源所有者名字 | 3.7.0 |
| resourceOwnerUuid | String | 资源所有者的UUID | 4.1.0 |
| usedIpUuid | String | IP的UUID | 4.1.0 |
SDK示例
Java
SDK
GetL3NetworkIpStatisticAction action = new GetL3NetworkIpStatisticAction();
action.l3NetworkUuid = "9bdd769f3e603f65bd368512ebe8b998";
action.resourceType = "All";
action.sortBy = "Ip";
action.sortDirection = "asc";
action.start = 0;
action.limit = 20;
action.replyWithCount = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetL3NetworkIpStatisticAction.Result res = action.call();
Python
SDK
GetL3NetworkIpStatisticAction action = GetL3NetworkIpStatisticAction()
action.l3NetworkUuid = "9bdd769f3e603f65bd368512ebe8b998"
action.resourceType = "All"
action.sortBy = "Ip"
action.sortDirection = "asc"
action.start = 0
action.limit = 20
action.replyWithCount = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetL3NetworkIpStatisticAction.Result res = action.call()
查询IP地址池(QueryAddressPool)
API请求
URLs
GET zstack/v1/l3-networks/address-poolsGET zstack/v1/l3-networks/address-pools/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/address-pools?q=uuid=a73cf6bc10a0390bb5e461d9f5e3fd6dcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/address-pools/f45cb0f9098336a39662b7553f42deb5可查询字段
运行CLI命令行工具,输入QueryAddressPool并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"l3NetworkUuid": "81ce7828f3f63c0ea8a69dd9139bdaa0",
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24",
"ipRangeType": "AddressPool"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.9.0 |
| inventories | List | 详情参考inventories | 3.9.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.9.0 |
| description | String | 错误的概要描述 | 3.9.0 |
| details | String | 错误的详细信息 | 3.9.0 |
| elaboration | String | 保留字段,默认为null | 3.9.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.9.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.9.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.9.0 |
| l3NetworkUuid | String | 分布式端口组UUID | 3.9.0 |
| name | String | 资源名称 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| startIp | String | 起始IP | 3.9.0 |
| endIp | String | 结束IP | 3.9.0 |
| netmask | String | 掩码 | 3.9.0 |
| gateway | String | 网关 | 3.9.0 |
| networkCidr | String | 网络CIDR | 3.9.0 |
| ipVersion | Integer | ip协议号 | 3.9.0 |
| addressMode | String | IPv6地址分配模式 | 3.9.0 |
| prefixLen | Integer | 掩码长度 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
| ipRangeType | IpRangeType | 详情参考ipRangeType | 3.9.0 |
#ipRangeType
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Normal | IpRangeType | 普通地址段 | 3.9.0 |
| AddressPool | IpRangeType | 地址池段 | 3.9.0 |
SDK示例
Java
SDK
QueryAddressPoolAction action = new QueryAddressPoolAction();
action.conditions = asList("uuid=4cbab87c862032f1a161bebe7e1f55a1");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryAddressPoolAction.Result res = action.call();Python
SDK
QueryAddressPoolAction action = QueryAddressPoolAction()
action.conditions = ["uuid=455d45fad9893eba9565de38588c7416"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryAddressPoolAction.Result res = action.call()修改DHCP服务器地址(ChangeL3NetworkDhcpIpAddress)
API请求
URLs
PUT zstack/v1/l3-networks/{l3NetworkUuid}/dhcp-ipHeaders
Authorization: OAuth the-session-uuidBody
{
"changeL3NetworkDhcpIpAddress": {
"dhcpServerIp": "192.168.1.100",
"dhcpv6ServerIp": "2024:04:28:01::100"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeL3NetworkDhcpIpAddress":{"dhcpServerIp":"192.168.1.100","dhcpv6ServerIp":"2024:04:28:01::100"}}' \
http://localhost:8080/zstack/v1/l3-networks/6b693b00316b30819bb30bfe0df10256/dhcp-ip参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 4.10.16 | |
| dhcpServerIp (可选) | String | body(包含在changeL3NetworkDhcpIpAddress结构中) |
DHCP v4 服务器地址 | 4.10.16 | |
| dhcpv6ServerIp (可选) | String | body(包含在changeL3NetworkDhcpIpAddress结构中) |
DHCP v6 服务器地址 | 4.10.16 | |
| systemTags (可选) | List | body | 系统标签 | 4.10.16 | |
| userTags (可选) | List | body | 用户标签 | 4.10.16 |
API返回
返回示例
{
"dhcpServerIp": "192.168.100.3",
"dhcpv6ServerIp": "2024:04:28:01::100"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| dhcpServerIp | String | 4.10.16 | |
| dhcpv6ServerIp | String | 4.10.16 | |
| success | boolean | 4.10.16 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.10.16 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.9.0 |
| description | String | 错误的概要描述 | 3.9.0 |
| details | String | 错误的详细信息 | 3.9.0 |
| elaboration | String | 保留字段,默认为null | 3.9.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.9.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.9.0 |
SDK示例
Java SDK
ChangeL3NetworkDhcpIpAddressAction action = new ChangeL3NetworkDhcpIpAddressAction();
action.l3NetworkUuid = "6b693b00316b30819bb30bfe0df10256";
action.dhcpServerIp = "192.168.1.100";
action.dhcpv6ServerIp = "2024:04:28:01::100";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeL3NetworkDhcpIpAddressAction.Result res = action.call();Python SDK
action = ChangeL3NetworkDhcpIpAddressAction()
action.l3NetworkUuid = "6b693b00316b30819bb30bfe0df10256"
action.dhcpServerIp = "192.168.1.100"
action.dhcpv6ServerIp = "2024:04:28:01::100"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()添加保留地址段(AddReservedIpRange)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/reserved-ip-rangesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"startIp": "192.168.100.10",
"endIp": "192.168.100.250"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"startIp":"192.168.100.10","endIp":"192.168.100.250"}}' \
http://localhost:8080/zstack/v1/l3-networks/dc9fb647bbd73a768da652b6cd100495/reserved-ip-ranges参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 4.10.16 | |
| startIp | String | body(包含在params结构中) |
开始IP(包含在地址段内) | 4.10.16 | |
| endIp | String | body(包含在params结构中) |
结束IP(包含在地址段内) | 4.10.16 | |
| resourceUuid (可选) | String | body(包含在params结构中) |
资源UUID | 4.10.16 | |
| tagUuids (可选) | List | body(包含在params结构中) |
标签UUID列表 | 4.10.16 | |
| systemTags (可选) | List | body | 系统标签 | 4.10.16 | |
| userTags (可选) | List | body | 用户标签 | 4.10.16 |
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "9bb0926251903385928489eba7388cd4",
"name": "Test-IP-Range",
"startIp": "192.168.100.10",
"endIp": "192.168.100.250",
"ipVersion": 4
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.10.16 | |
| inventory | ReservedIpRangeInventory | 详情参考inventory | 4.10.16 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.10.16 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.10.16 |
| l3NetworkUuid | String | 分布式端口组UUID | 4.10.16 |
| name | String | 资源名称 | 4.10.16 |
| description | String | 资源的详细描述 | 4.10.16 |
| startIp | String | 起始IP(包含在保留地址段内) | 4.10.16 |
| endIp | String | 结束IP(包含在保留地址段内) | 4.10.16 |
| ipVersion | Integer | ip协议号 | 4.10.16 |
| createDate | Timestamp | 创建时间 | 4.10.16 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.10.16 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.9.0 |
| description | String | 错误的概要描述 | 3.9.0 |
| details | String | 错误的详细信息 | 3.9.0 |
| elaboration | String | 保留字段,默认为null | 3.9.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.9.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.9.0 |
SDK示例
Java SDK
AddReservedIpRangeAction action = new AddReservedIpRangeAction();
action.l3NetworkUuid = "dc9fb647bbd73a768da652b6cd100495";
action.startIp = "192.168.100.10";
action.endIp = "192.168.100.250";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddReservedIpRangeAction.Result res = action.call();Python SDK
action = AddReservedIpRangeAction()
action.l3NetworkUuid = "dc9fb647bbd73a768da652b6cd100495"
action.startIp = "192.168.100.10"
action.endIp = "192.168.100.250"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()删除IP地址(DeleteIpAddress)
API请求
URLs
DELETE zstack/v1/l3-networks/{l3NetworkUuid}/ip-addressHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/b6e5c225bf553bc8bd5a5fcf3fac9fa3/ip-address?usedIpUuids=ff010728f1f63b86be83482e1c436700&deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 4.10.16 | |
| usedIpUuids | List | query | 被删除地址Uuid | 4.10.16 | |
| deleteMode (可选) | String | query | 删除模式(Permissive / Enforcing,Permissive) | 4.10.16 | |
| systemTags (可选) | List | query | 系统标签 | 4.10.16 | |
| userTags (可选) | List | query | 用户标签 | 4.10.16 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java SDK
DeleteIpAddressAction action = new DeleteIpAddressAction();
action.l3NetworkUuid = "b6e5c225bf553bc8bd5a5fcf3fac9fa3";
action.usedIpUuids = asList("ff010728f1f63b86be83482e1c436700");
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteIpAddressAction.Result res = action.call();Python SDK
action = DeleteIpAddressAction()
action.l3NetworkUuid = "b6e5c225bf553bc8bd5a5fcf3fac9fa3"
action.usedIpUuids = [ff010728f1f63b86be83482e1c436700]
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()删除保留地址段(DeleteReservedIpRange)
API请求
URLs
DELETE zstack/v1/l3-networks/reserved-ip-ranges/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/reserved-ip-ranges/c01027fecc013c338e25d67581eed865?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 分布式端口组UUID | 4.10.16 | |
| deleteMode (可选) | String | query | 删除模式(Permissive / Enforcing,Permissive) | 4.10.16 | |
| systemTags (可选) | List | query | 系统标签 | 4.10.16 | |
| userTags (可选) | List | query | 用户标签 | 4.10.16 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java SDK
DeleteReservedIpRangeAction action = new DeleteReservedIpRangeAction();
action.uuid = "c01027fecc013c338e25d67581eed865";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteReservedIpRangeAction.Result res = action.call();Python SDK
action = DeleteReservedIpRangeAction()
action.uuid = "c01027fecc013c338e25d67581eed865"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()