文档目录

网络资源

分布式交换机相关接口

新建分布式交换机(CreateL2VirtualSwitch)

API请求

URLs
POST zstack/v1/l2-networks/virtual-switch
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 虚拟交换机类型
  • LinuxBridge
  • OvsDpdk
  • MacVlan
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"
  }
}
名字 类型 描述 起始版本
success boolean 4.1.0
inventory L2VirtualSwitchNetworkInventory 详情参考inventory 4.1.0
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 4.1.0
#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-uuid
Curl示例
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"
    }
}/9

SDK示例

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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
"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-bondings
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 绑定模式
  • 802.3ad
  • active-backup
4.1.0
xmitHashPolicy (可选) String body(包含在updateVirtualSwitchUplinkBondings结构中) 哈希策略
  • layer2
  • layer2+3
  • layer3+4
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-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l2-networks/virtual-switch
curl -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/types
Headers
OAuth: the-session-uuid
Curl示例
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-uuid
Curl示例
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 分布式交换机实现类型
  • LinuxBridge
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-uuid
Curl示例
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"
  }
}
名字 类型 描述 起始版本
success boolean 0.6
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory L2NetworkInventory 详情参考inventory 0.6
#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-candidates
Headers
Authorization: OAuth the-session-uuid
Curl示例
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-candidates
Headers
Authorization: OAuth the-session-uuid
Curl示例
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-uuid
Body
{
  "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结构中) 交换机实现类型
  • LinuxBridge
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"
  }
}
名字 类型 描述 起始版本
success boolean 4.1.0
inventory L2NetworkInventory 详情参考inventory 4.1.0
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 4.1.0
#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-uuid
Curl示例
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"
  }
}
名字 类型 描述 起始版本
success boolean 4.1.0
inventory L2NetworkInventory 详情参考inventory 4.1.0
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 4.1.0
#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/vSwitchTypes
Headers
OAuth: the-session-uuid
Curl示例
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-uuid
Curl示例
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-group
curl -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-group
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 绑定类型
  • LinuxBonding
  • OvsBonding
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"
  }
}
名字 类型 描述 起始版本
success boolean 4.3.0
inventory UplinkGroupInventory 详情参考inventory 4.3.0
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 4.3.0
#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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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"
  }
}
名字 类型 描述 起始版本
success boolean 4.10.0
inventory L2NetworkInventory 详情参考inventory 4.10.0
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 4.10.0
#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-group
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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模式
  • ACCESS
  • TRUNK
  • PVLAN
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
  • Public
  • Private
  • System
4.2.0
ipVersion (可选) Integer body(包含在params结构中) IP协议号
  • 4
  • 6
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
  }
}
名字 类型 描述 起始版本
success boolean 4.6.21
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory L3NetworkInventory 详情参考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
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-uuid
Curl示例
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-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/port-group
curl -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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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
  • Public
  • Private
  • System
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
  }
}
名字 类型 描述 起始版本
success boolean 4.2.0
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 4.2.0
inventory L3NetworkInventory 详情参考inventory 4.2.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
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/types
Headers
Authorization: OAuth the-session-uuid
Curl示例
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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
"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
  • enable
  • disable
0.6
systemTags (可选) List body 系统标签 0.6
userTags (可选) List body 用户标签 0.6

API返回

返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "dfae4bce43694f4d9fc0ba5cdf4e38bd"
  }
}
名字 类型 描述 起始版本
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory L3NetworkInventory 详情参考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
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-ip
Headers
Authorization: OAuth the-session-uuid
Curl示例
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-uuid
Curl示例
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 ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory L3NetworkInventory 详情参考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
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}/dns
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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 ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory L3NetworkInventory 详情参考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
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}/hostroute
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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 ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.3
inventory L3NetworkInventory 详情参考inventory 2.3
#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-uuid
Curl示例
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 ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.3
inventory L3NetworkInventory 详情参考inventory 2.3
#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/free
GET zstack/v1/l3-networks/{l3NetworkUuid}/ip/free
GET zstack/v1/l3-networks/ip-ranges/{ipRangeUuid}/ip/free
Headers
Authorization: OAuth the-session-uuid
Curl示例
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.0
curl -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.0
curl -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 地址类型
  • Normal
  • AddressPool
3.9.0
ipVersion (可选) Integer query IP地址版本号
  • 4
  • 6
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 ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 0.6
inventory L3NetworkInventory 详情参考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
名字 类型 描述 起始版本
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}/availability
Headers
Authorization: OAuth the-session-uuid
Curl示例
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-capacity
Headers
Authorization: OAuth the-session-uuid s
Curl示例
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-ranges
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 地址类型
  • Normal
  • AddressPool
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-uuid
Curl示例
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-uuid
Curl示例
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=887227aa5d5c49e2a8137b79dad3738a
curl -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-uuid
Body
{
"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 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

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-cidr
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 地址类型
  • Normal
  • AddressPool
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 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
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}/mtu
Headers
Authorization: OAuth the-session-uuid
Curl示例
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
}
名字 类型 描述 起始版本
mtu Integer 2.1
success boolean 2.1
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 2.1
error ErrorCode 详情参考error 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
#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-uuid
Body
{
  "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-ranges
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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地址分配模式
  • SLAAC
  • Stateful-DHCP
  • Stateless-DHCP
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 ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.1.0
inventory IpRangeInventory 详情参考inventory 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
#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-cidr
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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地址分配模式
  • SLAAC
  • Stateful-DHCP
  • Stateless-DHCP
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 ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.1.0
inventory IpRangeInventory 详情参考inventory 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
#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-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-address
curl -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-statistic
Headers
Authorization: OAuth the-session-uuid
Curl示例
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 统计资源类型
  • All
  • Vip
  • VM
  • KernelInterface
3.7.0
ip (可选) String query 指定IP地址 3.7.0
sortBy (可选) String query 排序方式
  • Ip
  • CreateDate
3.7.0
sortDirection (可选) String query 排序方向
  • asc
  • desc
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-pools
GET zstack/v1/l3-networks/address-pools/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
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=a73cf6bc10a0390bb5e461d9f5e3fd6d
curl -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-ip
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-ranges
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-address
Headers
Authorization: OAuth the-session-uuid
Curl示例
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-uuid
Curl示例
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()
开发手册 | ZStack ZSphere · ZVF | ZStack 资源中心