三层网络相关接口
创建三层网络(CreateL3Network)
API请求
URLs
POST zstack/v1/l3-networksHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-L3Network",
"type": "L3BasicNetwork",
"l2NetworkUuid": "bb059728e72f3ff1b3ae2fc9caba3dce",
"category": "Private",
"system": false,
"enableIPAM": true
},
"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-L3Network","type":"L3BasicNetwork","l2NetworkUuid":"bb059728e72f3ff1b3ae2fc9caba3dce","category":"Private","system":false,"enableIPAM":true}}' \
http://localhost:8080/zstack/v1/l3-networks参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 三层网络的名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 三层网络的详细描述 | 0.6 | |
| type (可选) | String | body(包含在params结构中) | 三层网络类型 |
|
0.6 |
| l2NetworkUuid | String | body(包含在params结构中) | 二层网络UUID | 0.6 | |
| ipVersion (可选) | Integer | body(包含在params结构中) | ip协议号 |
|
4.6.21 |
| system (可选) | boolean | body(包含在params结构中) | 是否用于系统云主机 | 0.6 | |
| dnsDomain (可选) | String | body(包含在params结构中) | DNS域 | 0.6 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,三层网络会使用该字段值作为UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 | |
| category (可选) | String | body(包含在params结构中) | 网络类型,需要与system标签搭配使用,system为false时可设置为Public、Private |
|
2.2 |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.6.21 | |
| enableIPAM (可选) | Boolean | body(包含在params结构中) | IP地址管理是否启用 | 4.6.21 |
Note:
- ZStack Cloud创建三层网络时支持指定端口镜像网络,SystemTags增加mirrorNetwork选项。
- 选项格式为:
mirrorNetwork::{L3NetworkVOUuid} - 例如:
mirrorNetwork::1c707a63817b4f29b1235fa1f76c0ccc
- 选项格式为:
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "d15de5c033f8359b839496eec349b704",
"category": "Private"
}
}
#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 |
| 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 | 起始地址 | 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 |
SDK示例
Java
SDK
CreateL3NetworkAction action = new CreateL3NetworkAction();
action.name = "Test-L3Network";
action.type = "L3BasicNetwork";
action.l2NetworkUuid = "bb059728e72f3ff1b3ae2fc9caba3dce";
action.category = "Private";
action.system = false;
action.enableIPAM = true;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateL3NetworkAction.Result res = action.call();Python
SDK
CreateL3NetworkAction action = CreateL3NetworkAction()
action.name = "Test-L3Network"
action.type = "L3BasicNetwork"
action.l2NetworkUuid = "bb059728e72f3ff1b3ae2fc9caba3dce"
action.category = "Private"
action.system = false
action.enableIPAM = true
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateL3NetworkAction.Result res = action.call()删除三层网络(DeleteL3Network)
API请求
URLs
DELETE zstack/v1/l3-networks/{uuid}?deleteMode={deleteMode}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 9e78fa4cfc8a49baadb763cd62ac6a3f" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/76490f9cd26d4c8a9501cc5a5312aa99?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的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
DeleteL3NetworkAction action = new DeleteL3NetworkAction();
action.uuid = "c19ee03770c6486b85abc58ea10f017a";
action.deleteMode = "Permissive";
action.sessionId = "b8b93037f8064e219bdcbe9dd9a9f366";
DeleteL3NetworkAction.Result res = action.call();Python
SDK
DeleteL3NetworkAction action = DeleteL3NetworkAction()
action.uuid = "8c4a39676be64072b20e7b7dc4b0ccc7"
action.deleteMode = "Permissive"
action.sessionId = "e0e4140009fc4b95af7197bffc64f7c0"
DeleteL3NetworkAction.Result res = action.call()查询三层网络(QueryL3Network)
API请求
URLs
GET zstack/v1/l3-networks
GET zstack/v1/l3-networks/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 98858a4b613f46a4815c34c1c930b34e" \
-X GET http://localhost:8080/zstack/v1/l3-networksNote:
例如:查询三层私有网络
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 98858a4b613f46a4815c34c1c930b34e" \
-X GET http://localhost:8080/zstack/v1/l3-networks?q=category=Privatecurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth c1148725103644bc8e2879d72fa47389" \
-X GET http://localhost:8080/zstack/v1/l3-networks/9d119c003bb54d4781443bbc7febcd7f可查询字段
运行CLI命令行工具,输入QueryL3Network并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"name": "Test-L3Network",
"l2NetworkUuid": "8bcf5b824378406494d81ffdae56bde3"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| 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为true时可设置为Public、Private | 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 | 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 |
SDK示例
Java
SDK
QueryL3NetworkAction action = new QueryL3NetworkAction();
action.conditions = asList();
action.sessionId = "58f4bcc9b20f46bfaba379ca0c739535";
QueryL3NetworkAction.Result res = action.call();Python
SDK
QueryL3NetworkAction action = QueryL3NetworkAction()
action.conditions = []
action.sessionId = "2f99e245b0f04712941da401ecab7173"
QueryL3NetworkAction.Result res = action.call()更新三层网络(UpdateL3Network)
API请求
URLs
PUT zstack/v1/l3-networks/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateL3Network": {
"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 '{"updateL3Network":{"name":"Test-L3Network"}}' \
http://localhost:8080/zstack/v1/l3-networks/a1a3a4bea5e73628b591081fde9f019a/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| name (可选) | String | body(包含在updateL3Network结构中) | 三层网络的名称 | 0.6 | |
| description (可选) | String | body(包含在updateL3Network结构中) | 三层网络的详细描述 | 0.6 | |
| system (可选) | Boolean | body(包含在updateL3Network结构中) | 是否用于系统云主机 | 0.6 | |
| dnsDomain (可选) | String | body(包含在updateL3Network结构中) | DNS域 | 2.6.0 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 | |
| category (可选) | String | body(包含在updateL3Network结构中) | 网络类型,需要与system标签搭配使用,system为true时可设置为Public、Private |
|
2.2 |
API返回
返回示例
{
"inventory": {
"uuid": "dd370da0d6fa49288fc119b35db36b7c",
"name": "Test-L3Network"
}
}#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 | 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 |
SDK示例
Java
SDK
UpdateL3NetworkAction action = new UpdateL3NetworkAction();
action.uuid = "88d2a1d687974c0ea0e102c276739e39";
action.name = "Test-L3Network";
action.sessionId = "dae0914beced4293bd336fe443ed0d2b";
UpdateL3NetworkAction.Result res = action.call();Python
SDK
UpdateL3NetworkAction action = UpdateL3NetworkAction()
action.uuid = "3210b12187464e35bfdc50d8d4e2d1d0"
action.name = "Test-L3Network"
action.sessionId = "9e0b1d4240ef4421804612b01c98d7b8"
UpdateL3NetworkAction.Result res = action.call()获取三层网络类型(GetL3NetworkTypes)
API请求
URLs
GET zstack/v1/l3-networks/typesHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 3a142b201e9342abbb5864a0ea48992e" \
-X GET http://localhost:8080/zstack/v1/l3-networks/types参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"l3NetworkTypes": [
"L3BasicNetwork"
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| types | List | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetL3NetworkTypesAction action = new GetL3NetworkTypesAction();
action.sessionId = "9105437ebb27461fbae36ecb9336ceba";
GetL3NetworkTypesAction.Result res = action.call();Python
SDK
GetL3NetworkTypesAction action = GetL3NetworkTypesAction()
action.sessionId = "a69bae9c3cad4209b042956b23c70af7"
GetL3NetworkTypesAction.Result res = action.call()改变三层网络状态(ChangeL3NetworkState)
API请求
URLs
PUT zstack/v1/l3-networks/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeL3NetworkState": {
"stateEvent": "enable"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeL3NetworkState":{"stateEvent":"enable"}}' \
http://localhost:8080/zstack/v1/l3-networks/a8744f1ba60c33f3a2c912c077f41fe5/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| stateEvent | String | body(包含在changeL3NetworkState结构中) | 状态,可选enable与disable |
|
0.6 |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "dfae4bce43694f4d9fc0ba5cdf4e38bd"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 区域UUID | 0.6 |
| l2NetworkUuid | String | 二层网络UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| 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 |
#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 |
SDK示例
Java
SDK
ChangeL3NetworkStateAction action = new ChangeL3NetworkStateAction();
action.uuid = "eb0849bf0e57400da650a09f2e852260";
action.stateEvent = "enable";
action.sessionId = "be8ec965ebd94169ba713c42dc079af9";
ChangeL3NetworkStateAction.Result res = action.call();
Python
SDK
ChangeL3NetworkStateAction action = ChangeL3NetworkStateAction()
action.uuid = "d8a1565df89748a2a21ef87b9c9f5be7"
action.stateEvent = "enable"
action.sessionId = "7b8417b9ee3b4df8a21acc8e7c41a7f9"
ChangeL3NetworkStateAction.Result res = action.call()获取网络DHCP服务所用地址(GetL3NetworkDhcpIpAddress)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/dhcp-ipHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/82cae6542d3b3e7ea50dab8681f3785c/dhcp-ip参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 0.6 | |
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"ip": "192.168.100.3"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ip | String | IP地址 | 0.6 |
| ip6 | String | IPv6地址 | 3.10.0 |
| success | boolean | 成功 | 0.6 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetL3NetworkDhcpIpAddressAction action = new GetL3NetworkDhcpIpAddressAction();
action.l3NetworkUuid = "1c311c313859434f8586d4288a31952e";
action.sessionId = "dd1a8993de0e41e18d8718ea2e2d8259";
GetL3NetworkDhcpIpAddressAction.Result res = action.call();Python
SDK
GetL3NetworkDhcpIpAddressAction action = GetL3NetworkDhcpIpAddressAction()
action.l3NetworkUuid = "4970a85c53a24e35a55f44830058e719"
action.sessionId = "50fd78e250d94c5d944a5fa1a5d6bde0"
GetL3NetworkDhcpIpAddressAction.Result res = action.call()向三层网络添加DNS(AddDnsToL3Network)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/dnsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"dns": "8.8.8.8"
},
"systemTags": [],
"userTags": []
}Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"dns":"8.8.8.8"}}' \
http://localhost:8080/zstack/v1/l3-networks/0b8da8c298ed3960925abbcc4f913da8/dns参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 0.6 | |
| dns | String | url | DNS地址 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "08f7b0b577a84c28968ddce5a9377c5d",
"dns": [
"8.8.8.8"
]
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 区域UUID | 0.6 |
| l2NetworkUuid | String | 二层网络UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| 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 | 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 |
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
AddDnsToL3NetworkAction action = AddDnsToL3NetworkAction()
action.l3NetworkUuid = "17ecd7a47dc34f1ba01df5180480e264"
action.dns = "8.8.8.8"
action.sessionId = "30e00bf1296244cd98c93dec6182ab72"
AddDnsToL3NetworkAction.Result res = action.call()从三层网络移除DNS(RemoveDnsFromL3Network)
API请求
URLs
DELETE/v1/l3-networks/{l3NetworkUuid}/dns/{dns}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 209fa412351946a6bef267d423f4e53c" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/d96f7d4c0506435a9a1aa7394976c0b2/dns/8.8.4.4?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 0.6 | |
| dns | String | url | DNS地址 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "535aea9c1be24fb9b172fa1955341685",
"dns": []
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 区域UUID | 0.6 |
| l2NetworkUuid | String | 二层网络UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| 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 | 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 |
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
RemoveDnsFromL3NetworkAction action = RemoveDnsFromL3NetworkAction()
action.l3NetworkUuid = "4046beb7d6164cb3843fb5fac2f86ac3"
action.dns = "8.8.4.4"
action.sessionId = "e9fd57376378422e9b58ada9be59185c"
RemoveDnsFromL3NetworkAction.Result res = action.call()向三层网络添加主机路由(AddHostRouteToL3Network)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/hostrouteHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"prefix": "169.254.169.254/32",
"nexthop": "192.168.1.254"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"prefix":"169.254.169.254/32","nexthop":"192.168.1.254"}}' \
http://localhost:8080/zstack/v1/l3-networks/45d86c07f10437c6bf3161bae9974bb7/hostroute参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 2.3 | |
| prefix | String | body(包含在params结构中) | 2.3 | ||
| nexthop | String | body(包含在params结构中) | 2.3 | ||
| systemTags (可选) | List | body | 2.3 | ||
| userTags (可选) | List | body | 2.3 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "7dfdf976ef1334fba5c3b475104011b2",
"dns": [
"8.8.8.8"
],
"hostRoute": [
{
"prefix": "169.254.169.254/32",
"nexthop": "192.168.1.254"
}
]
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 区域UUID | 0.6 |
| l2NetworkUuid | String | 二层网络UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| 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 | 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 |
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
AddHostRouteToL3NetworkAction action = 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()从三层网络移除主机路由(RemoveHostRouteFromL3Network)
API请求
URLs
DELETE zstack/v1/l3-networks/{l3NetworkUuid}/hostroute?prefix={prefix}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/8648a70a245232c5a1bee9ae408419e5/hostroute?prefix=169.254.169.254/32参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 2.3 | |
| prefix | String | body | 2.3 | ||
| systemTags (可选) | List | body | 2.3 | ||
| userTags (可选) | List | body | 2.3 |
API返回
返回示例
{
"inventory": {
"name": "Test-L3Network",
"l2NetworkUuid": "15e1e6a016f43a5688ca3d3445076309",
"dns": []
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| type | String | 0.6 | |
| zoneUuid | String | 区域UUID | 0.6 |
| l2NetworkUuid | String | 二层网络UUID | 0.6 |
| state | String | 0.6 | |
| dnsDomain | String | 0.6 | |
| system | Boolean | 0.6 | |
| category | String | 0.6 | |
| 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 | |
| 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 |
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
RemoveHostRouteFromL3NetworkAction action = RemoveHostRouteFromL3NetworkAction()
action.l3NetworkUuid = "8648a70a245232c5a1bee9ae408419e5"
action.prefix = "169.254.169.254/32"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveHostRouteFromL3NetworkAction.Result res = action.call()获取空闲IP(GetFreeIp)
API请求
URLs
GET zstack/v1/l3-networks/ip/freeGET zstack/v1/l3-networks/{l3NetworkUuid}/ip/freeGET zstack/v1/l3-networks/ip-ranges/{ipRangeUuid}/ip/freeHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip/free?l3NetworkUuid=c8cd63a1882331a9a5ee83e5d9b265ec&ipRangeUuid=10fc8508fd723e63bcc57b8bb6d7a133&limit=100.0curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/c8cd63a1882331a9a5ee83e5d9b265ec/ip/free?l3NetworkUuid=c8cd63a1882331a9a5ee83e5d9b265ec&ipRangeUuid=10fc8508fd723e63bcc57b8bb6d7a133&limit=100.0curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-ranges/10fc8508fd723e63bcc57b8bb6d7a133/ip/free?l3NetworkUuid=c8cd63a1882331a9a5ee83e5d9b265ec&ipRangeUuid=10fc8508fd723e63bcc57b8bb6d7a133&limit=100.0参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid (可选) | String | query | 三层网络UUID Note: l3NetworkUuid和ipRangeUuid二选一 |
0.6 | |
| ipRangeUuid (可选) | String | query | IP段UUID Note: l3NetworkUuid和ipRangeUuid二选一 |
0.6 | |
| start (可选) | String | query | 起始值 | 0.6 | |
| ipRangeType (可选) | String | query | 地址类型 |
|
3.9.0 |
| ipVersion (可选) | Integer | query | IP地址版本号 |
|
3.10.0 |
| limit (可选) | int | query | 数量限制 | 0.6 | |
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"inventories": [
{
"ipRangeUuid": "662d600a4b644f98a0c49df2e5430d69",
"ip": "10.20.10.5",
"netmask": "255.255.255.0",
"gateway": "10.20.10.1"
},
{
"ipRangeUuid": "662d600a4b644f98a0c49df2e5430d69",
"ip": "10.20.10.6",
"netmask": "255.255.255.0",
"gateway": "10.20.10.1"
},
{
"ipRangeUuid": "662d600a4b644f98a0c49df2e5430d69",
"ip": "10.20.10.10",
"netmask": "255.255.255.0",
"gateway": "10.20.10.1"
}
]
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| ipRangeUuid | String | IP段UUID | 0.6 |
| ip | String | 0.6 | |
| netmask | String | 0.6 | |
| gateway | String | 0.6 |
SDK示例
Java
SDK
GetFreeIpAction action = new GetFreeIpAction();
action.l3NetworkUuid = "c8cd63a1882331a9a5ee83e5d9b265ec";
action.ipRangeUuid = "10fc8508fd723e63bcc57b8bb6d7a133";
action.limit = 100.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetFreeIpAction.Result res = action.call();Python
SDK
GetFreeIpAction action = GetFreeIpAction()
action.l3NetworkUuid = "c8cd63a1882331a9a5ee83e5d9b265ec"
action.ipRangeUuid = "10fc8508fd723e63bcc57b8bb6d7a133"
action.limit = 100.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetFreeIpAction.Result res = action.call()检查IP可用性(CheckIpAvailability)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/ip/{ip}/availabilityHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 642bc388bc3040ce9ed0c477bd6b3874" \
-X GET http://localhost:8080/zstack/v1/l3-networks/42ab1436d38245a78a9995e732aa5aad/ip/192.168.10.100/availability?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 0.6 | |
| ip | String | url | IP地址 | 0.6 | |
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
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 = "8cb0703274b44a389ffc2f24935235fe";
action.ip = "192.168.10.100";
action.sessionId = "399dfce0d08f460c92a2c2660d80b187";
CheckIpAvailabilityAction.Result res = action.call();Python
SDK
CheckIpAvailabilityAction action = CheckIpAvailabilityAction()
action.l3NetworkUuid = "19ff4c2f7aab415cae3a6abb8512d05d"
action.ip = "192.168.10.100"
action.sessionId = "c872c583479743009ba56a65d2c7dd22"
CheckIpAvailabilityAction.Result res = action.call()获取IP网络地址容量(GetIpAddressCapacity)
API请求
URLs
GET zstack/v1/ip-capacityHeaders
Authorization: OAuth the-session-uuid sCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/ip-capacity?ipRangeUuids=6bf57331ebe433389c6c230153ac5d8d&all=false参数列表
| 名字 | 类型 | 位置 | 描述 | 起始版本 |
|---|---|---|---|---|
| zoneUuids (可选) | List | query | 区域UUID | 0.6 |
| l3NetworkUuids (可选) | List | query | 三层网络UUID | 0.6 |
| ipRangeUuids (可选) | List | query | IP地址范围UUID | 0.6 |
| all (可选) | boolean | query | 系统全局 | 0.6 |
| systemTags (可选) | List | query | 系统标签 | 0.6 |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"totalCapacity": 20.0,
"availableCapacity": 15.0,
"usedIpAddressNumber": 5.0,
"ipv4TotalCapacity": 0.0,
"ipv4AvailableCapacity": 0.0,
"ipv4UsedIpAddressNumber": 0.0,
"ipv6TotalCapacity": 0.0,
"ipv6AvailableCapacity": 0.0,
"ipv6UsedIpAddressNumber": 0.0,
"capacityData": [
{
"resourceUuid": "68b9a1c74c4c33c7b818e4c14bdea0a7",
"totalCapacity": 20.0,
"availableCapacity": 15.0,
"usedIpAddressNumber": 5.0,
"ipv4TotalCapacity": 0.0,
"ipv4AvailableCapacity": 0.0,
"ipv4UsedIpAddressNumber": 0.0,
"ipv6TotalCapacity": 0.0,
"ipv6AvailableCapacity": 0.0,
"ipv6UsedIpAddressNumber": 0.0
}
],
"resourceType": "L3NetworkVO"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| totalCapacity | long | IP地址容量 | 0.6 |
| availableCapacity | long | 可用IP地址容量 | 0.6 |
| usedIpAddressNumber | long | 已使用IP数量 | 3.10.0 |
| ipv4TotalCapacity | long | IPv4地址容量 | 3.10.0 |
| ipv4AvailableCapacity | long | 可用IPv4地址容量 | 3.10.0 |
| ipv4UsedIpAddressNumber | long | 已使用IPv4数量 | 3.10.0 |
| ipv6TotalCapacity | long | IPv6地址容量 | 3.10.0 |
| ipv6AvailableCapacity | long | 可用IPv6地址容量 | 3.10.0 |
| ipv6UsedIpAddressNumber | long | 已使用IPv6数量 | 3.10.0 |
| resourceType | String | 所查询资源的类型(地址范围、三层网络、区域) | 3.9.0 |
| success | boolean | 成功 | 0.6 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| capacityData | List | 详情参考capacityData | 3.9.0 |
| error | ErrorCode | 详情参考error | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#capacityData
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| resourceUuid | String | 资源UUID | 3.9.0 |
| totalCapacity | long | IP地址总容量 | 3.9.0 |
| availableCapacity | long | 可用IP地址容量 | 3.9.0 |
| usedIpAddressNumber | long | 已用IP地址容量 | 3.9.0 |
| ipv4TotalCapacity | long | IPv4地址总容量 | 3.10.0 |
| ipv4AvailableCapacity | long | 可用IPv4地址容量 | 3.10.0 |
| ipv4UsedIpAddressNumber | long | 已用IPv4地址容量 | 3.10.0 |
| ipv6TotalCapacity | long | IPv6地址总容量 | 3.10.0 |
| ipv6AvailableCapacity | long | 可用IPv6地址容量 | 3.10.0 |
| ipv6UsedIpAddressNumber | long | 已用IPv6地址容量 | 3.10.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetIpAddressCapacityAction action = new GetIpAddressCapacityAction();
action.ipRangeUuids = asList("6bf57331ebe433389c6c230153ac5d8d");
action.all = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetIpAddressCapacityAction.Result res = action.call();Python
SDK
GetIpAddressCapacityAction action = GetIpAddressCapacityAction()
action.ipRangeUuids = [6bf57331ebe433389c6c230153ac5d8d]
action.all = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetIpAddressCapacityAction.Result res = action.call()添加IP地址范围(AddIpRange)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/ip-rangesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-IP-Range",
"startIp": "192.168.100.10",
"endIp": "192.168.100.250",
"netmask": "255.255.255.0",
"gateway": "192.168.100.1",
"ipRangeType": "Normal"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-IP-Range","startIp":"192.168.100.10","endIp":"192.168.100.250","netmask":"255.255.255.0","gateway":"192.168.100.1","ipRangeType":"Normal"}}' http://localhost:8080/zstack/v1/l3-networks/acc0573590db3297814610cab774b60b/ip-ranges参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 0.6 | |
| name | String | body(包含在params结构中) | 三层网络的名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 三层网络的详细描述 | 0.6 | |
| startIp | String | body(包含在params结构中) | 起始地址 | 0.6 | |
| endIp | String | body(包含在params结构中) | 结束地址 | 0.6 | |
| netmask | String | body(包含在params结构中) | 网络掩码 | 0.6 | |
| gateway | String | body(包含在params结构中) | 网关 | 0.6 | |
| ipRangeType (可选) | String | body(包含在params结构中) | 地址类型 |
|
3.9.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,三层网络会使用该字段值作为UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
Note:
- ZStack Cloud添加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/v1/l3-networks/ip-ranges/{uuid}?deleteMode={deleteMode}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 1872261fb9824d9f9dd73a991cf05a44" \
-X DELETE http://localhost:8080/zstack/v1/l3-networks/ip-ranges/a2a9f85d22914afe95a195b63143830d?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | IP地址范围的UUID | 0.6 | |
| deleteMode (可选) | String | body | 删除模式 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeleteIpRangeAction action = new DeleteIpRangeAction();
action.uuid = "6d1f44d0fe1440189eb293f18d7bf682";
action.deleteMode = "Permissive";
action.sessionId = "4a3745cb42f5430f874c6f6c4b298e95";
DeleteIpRangeAction.Result res = action.call();Python
SDK
DeleteIpRangeAction action = DeleteIpRangeAction()
action.uuid = "0f1fcf2e779543baa416deb89eeeb2db"
action.deleteMode = "Permissive"
action.sessionId = "d07fb42a181d43dda2b6992536b02804"
DeleteIpRangeAction.Result res = action.call()查询IP地址范围(QueryIpRange)
API请求
URLs
GET zstack/v1/l3-networks/ip-ranges
GET /v1/l3-networks/ip-ranges/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 8f7b1e0396c54646a4b37affdfdda079" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-ranges?q=uuid=887227aa5d5c49e2a8137b79dad3738acurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 60a5dfda1a9843809415eb28f2550f94" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-ranges/17684784fcc04571a47eb24dc2eb9638可查询字段
运行CLI命令行工具,输入QueryIpRange并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"l3NetworkUuid": "9a72daf0034443aa81864e593f0f5b32",
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventories | List | 详情参考inventories | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 三层网络UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
QueryIpRangeAction action = new QueryIpRangeAction();
action.conditions = asList("uuid=d5764d7ab9174e5486e55ba805d28675");
action.sessionId = "5357e54aa55a4846ac96972776d3100f";
QueryIpRangeAction.Result res = action.call();Python
SDK
QueryIpRangeAction action = QueryIpRangeAction()
action.conditions = ["uuid=2cda79a574344eeb9f38393253ddf858"]
action.sessionId = "c87d6755153549f6a4e7373b601ac99f"
QueryIpRangeAction.Result res = action.call()更新IP地址范围(UpdateIpRange)
API请求
URLs
PUT zstack/v1/l3-networks/ip-ranges/{uuid}/actions
Headers
Authorization: OAuth the-session-uuidBody
{
"updateIpRange": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateIpRange":{}}' \
http://localhost:8080/zstack/v1/l3-networks/ip-ranges/0ebb3eb1c1e134bea93c2f9ed2e2beef/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| name (可选) | String | body(包含在updateIpRange结构中) | 三层网络的名称 | 0.6 | |
| description (可选) | String | body(包含在updateIpRange结构中) | 三层网络的详细描述 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "f7f0ee7b4978413fa36c811e47dd56a3",
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24"
}
}#error
| 名 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 三层网络UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
UpdateIpRangeAction action = new UpdateIpRangeAction();
action.uuid = "97054a54a1fc4b49ba3d7a5d44b9e385";
action.sessionId = "8644fd2755f148359edff9521b27868b";
UpdateIpRangeAction.Result res = action.call();Python
SDK
UpdateIpRangeAction action = UpdateIpRangeAction()
action.uuid = "2b4499297735445482dc994113574b41"
action.sessionId = "0a16c9ea3e6e4ad9b1ff71a826b67277"
UpdateIpRangeAction.Result res = action.call()通过网络CIDR添加IP地址范围(AddIpRangeByNetworkCidr)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/ip-ranges/by-cidrHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24",
"ipRangeType": "Normal"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-IPRange","networkCidr":"192.168.10.0/24","ipRangeType":"Normal"}}' http://localhost:8080/zstack/v1/l3-networks/c186887bc5e43da7ba42bd5d66eba0cd/ip-ranges/by-cidr参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 三层网络的名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 三层网络的详细描述 | 0.6 | |
| l3NetworkUuid | String | url | 三层网络UUID | 0.6 | |
| networkCidr | String | body(包含在params结构中) | 网络CIDR | 0.6 | |
| gateway (可选) | String | body(包含在params结构中) | 网关 | 3.7.0 | |
| ipRangeType (可选) | String | body(包含在params结构中) | 地址类型 |
|
3.9.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,三层网络会使用该字段值作为UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
Note:
- ZStack Cloud通过网络CIDR添加IP地址范围时支持添加IP地址段的时候指定DHCP
server地址功能,SystemTags增加affinityGroup选项。
- 选项格式为:
flatNetwork::DhcpServer::{%s}::ipUuid::{%s} - 例如:
flatNetwork::DhcpServer::192.168.1.100::ipUuid::null
- 选项格式为:
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "4e0926c4fa27455f88c7d94420bf3422",
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| l3NetworkUuid | String | 三层网络UUID | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| startIp | String | 0.6 | |
| endIp | String | 0.6 | |
| netmask | String | 0.6 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 0.6 | |
| networkCidr | String | 0.6 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| ipRangeType | IpRangeType | 详情参考ipRangeType | 3.9.0 |
#ipRangeType
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Normal | IpRangeType | 3.9.0 | |
| AddressPool | IpRangeType | 3.9.0 |
SDK示例
Java
SDK
AddIpRangeByNetworkCidrAction action = new AddIpRangeByNetworkCidrAction();
action.name = "Test-IPRange";
action.l3NetworkUuid = "c186887bc5e43da7ba42bd5d66eba0cd";
action.networkCidr = "192.168.10.0/24";
action.ipRangeType = "Normal";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddIpRangeByNetworkCidrAction.Result res = action.call();Python
SDK
AddIpRangeByNetworkCidrAction action = AddIpRangeByNetworkCidrAction()
action.name = "Test-IPRange"
action.l3NetworkUuid = "c186887bc5e43da7ba42bd5d66eba0cd"
action.networkCidr = "192.168.10.0/24"
action.ipRangeType = "Normal"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddIpRangeByNetworkCidrAction.Result res = action.call()获取三层网络Mtu值(GetL3NetworkMtu)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/mtuHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth dc112a530fd2402cae6b4962f65eae4e" \
-X GET http://localhost:8080/zstack/v1/l3-networks/be54f79eb90f4f929da7fe64e1aea8e4/mtu参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 2.1 | |
| systemTags (可选) | List | query | 2.1 | ||
| userTags (可选) | List | query | 2.1 |
API返回
返回示例
{
"mtu": 9216.0
} #error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.1 |
| description | String | 错误的概要描述 | 2.1 |
| details | String | 错误的详细信息 | 2.1 |
| elaboration | String | 保留字段,默认为null | 2.1 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.1 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.1 |
SDK示例
Java
SDK
GetL3NetworkMtuAction action = new GetL3NetworkMtuAction();
action.l3NetworkUuid = "fd8d572d777d4383b201ddfce629d50e";
action.sessionId = "0cc5202de3ce4881a305e5fa1d431aaa";
GetL3NetworkMtuAction.Result res = action.call();Python
SDK
GetL3NetworkMtuAction action = GetL3NetworkMtuAction()
action.l3NetworkUuid = "7615cfd154a048dcab07a1114ee6205d"
action.sessionId = "d0f3cf05a49345438a92108d2fd86cfe"
GetL3NetworkMtuAction.Result res = action.call()设置三层网络Mtu值(SetL3NetworkMtu)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/mtu
Headers
Authorization: OAuth the-session-uuidBody
{
"params": {
"mtu": 9216.0
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"mtu":9216.0}}' \
http://localhost:8080/zstack/v1/l3-networks/817672c1bb903264a9a41c34332c3145/mtu参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 2.1 | |
| mtu | Integer | body(包含在params结构中) | 2.1 | ||
| systemTags (可选) | List | body | 2.1 | ||
| userTags (可选) | List | body | 2.1 |
API返回
该API成功时返回一个空的JSON结构{},出错时返回的JSON结构包含一个error字段,例如:
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
SetL3NetworkMtuAction action = new SetL3NetworkMtuAction();
action.l3NetworkUuid = "b19ce058b0f54c6d83c14078c0079c2c";
action.mtu = 9216.0;
action.sessionId = "b441c616886c4183a51ba044e35c7d66";
SetL3NetworkMtuAction.Result res = action.call();Python
SDK
SetL3NetworkMtuAction action = SetL3NetworkMtuAction()
action.l3NetworkUuid = "67dc01887dfc4142aabe4221675c1b98"
action.mtu = 9216.0
action.sessionId = "d5188e0801994e3a9dfb3d3ebc2f7a39"
SetL3NetworkMtuAction.Result res = action.call()获取三层网络上路由器的接口地址(GetL3NetworkRouterInterfaceIp)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/router-interface-ipHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/71aa55703e063d9db0f13fa0b285a82b/router-interface-ip参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 2.2 | |
| systemTags (可选) | List | query | 2.2 | ||
| userTags (可选) | List | query | 2.2 |
API返回
返回示例
{
"routerInterfaceIp": "192.168.0.2"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| routerInterfaceIp | String | 三层网络上路由器的接口地址,仅当会在普通三层网络上创建VPC路由器或在VPC网络上加载VPC路由器时有效 | 2.2 |
| success | boolean | 2.2 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.2 |
#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
GetL3NetworkRouterInterfaceIpAction action = new GetL3NetworkRouterInterfaceIpAction();
action.l3NetworkUuid = "23453c09a0f534d5bb10a3267c09aac8";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetL3NetworkRouterInterfaceIpAction.Result res = action.call();Python
SDK
GetL3NetworkRouterInterfaceIpAction action = GetL3NetworkRouterInterfaceIpAction()
action.l3NetworkUuid = "5cece4a676083f6fa3491a068e3e34e6"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetL3NetworkRouterInterfaceIpAction.Result res = action.call()设置三层网络路由器接口IP(SetL3NetworkRouterInterfaceIp)
设置三层网络上路由器接口地址,仅当会在普通三层网络上创建VPC路由器或在VPC网络上加载VPC路由器时有效。
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/router-interface-ipHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"routerInterfaceIp": "192.168.10.2"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"routerInterfaceIp":"192.168.10.2"}}' \
http://localhost:8080/zstack/v1/l3-networks/40124528890f368c8752825634144fd5/router-interface-ip参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 2.1 | |
| routerInterfaceIp | String | 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
SetL3NetworkRouterInterfaceIpAction action = new SetL3NetworkRouterInterfaceIpAction();
action.l3NetworkUuid = "00ab12382f544de0ac71b48afe7ecd9c";
action.routerInterfaceIp = "192.168.10.2";
action.sessionId = "279a26540d254f42b7a2320652e6c64b";
SetL3NetworkRouterInterfaceIpAction.Result res = action.call();Python
SDK
SetL3NetworkRouterInterfaceIpAction action = SetL3NetworkRouterInterfaceIpAction()
action.l3NetworkUuid = "3558f265c4204eae93104e3ffa974661"
action.routerInterfaceIp = "192.168.10.2"
action.sessionId = "97c0fdecc551496d86b8861f045df21a"
SetL3NetworkRouterInterfaceIpAction.Result res = action.call()添加IPv6地址范围(AddIpv6Range)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/ipv6-rangesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-IP-Range",
"startIp": "2002:2001::02",
"endIp": "2002:2001::FE",
"gateway": "2002:2001::01",
"prefixLen": 64,
"addressMode": "Stateful-DHCP"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-IP-Range","startIp":"2002:2001::02","endIp":"2002:2001::FE","gateway":"2002:2001::01","prefixLen":64.0,"addressMode":"Stateful-DHCP"}}' http://localhost:8080/zstack/v1/l3-networks/b6f82aa00c3f37adba4b349eb427db80/ipv6-ranges参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 3.1.0 | |
| name | String | body(包含在params结构中) | 三层网络的名称 | 3.1.0 | |
| description (可选) | String | body(包含在params结构中) | 三层网络的详细描述 | 3.1.0 | |
| startIp | String | body(包含在params结构中) | 起始地址 | 3.1.0 | |
| endIp | String | body(包含在params结构中) | 结束地址 | 3.1.0 | |
| gateway | String | body(包含在params结构中) | 网关 | 3.1.0 | |
| prefixLen | Integer | body(包含在params结构中) | 前缀长度 | 3.1.0 | |
| addressMode | String | body(包含在params结构中) | IPv6地址分配模式 |
|
3.1.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,三层网络会使用该字段值作为UUID | 3.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.1.0 | |
| userTags (可选) | List | body | 用户标签 | 3.1.0 |
Note:
- ZStack Cloud添加IPv6地址范围时支持指定DHCP
server地址功能,SystemTags增加affinityGroup选项。
- 选项格式为:
flatNetwork::DhcpServer::{%s}::ipUuid::{%s} - 例如:
flatNetwork::DhcpServer::192.168.1.100::ipUuid::null
- 选项格式为:
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "10d6128c8f473a63889597becc396bba",
"name": "Test-IP-Range",
"startIp": "2002:2001::02",
"endIp": "2002:2001::FE",
"netmask": "FFFF:FFFF:FFFF:FFFF:0:0:0:0",
"prefixLen": "64"
"gateway": "2002:2001::01"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.1.0 |
| description | String | 错误的概要描述 | 3.1.0 |
| details | String | 错误的详细信息 | 3.1.0 |
| elaboration | String | 保留字段,默认为null | 3.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.1.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.1.0 |
| l3NetworkUuid | String | 三层网络UUID | 3.1.0 |
| name | String | 资源名称 | 3.1.0 |
| description | String | 资源的详细描述 | 3.1.0 |
| startIp | String | 3.1.0 | |
| endIp | String | 3.1.0 | |
| netmask | String | 3.1.0 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 3.1.0 | |
| networkCidr | String | 3.1.0 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 3.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.1.0 |
SDK示例
Java
SDK
AddIpv6RangeAction action = new AddIpv6RangeAction();
action.l3NetworkUuid = "b6f82aa00c3f37adba4b349eb427db80";
action.name = "Test-IP-Range";
action.startIp = "2002:2001::02";
action.endIp = "2002:2001::FE";
action.gateway = "2002:2001::01";
action.prefixLen = 64;
action.addressMode = "Stateful-DHCP";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddIpv6RangeAction.Result res = action.call();Python
SDK
AddIpv6RangeAction action = AddIpv6RangeAction()
action.l3NetworkUuid = "b6f82aa00c3f37adba4b349eb427db80"
action.name = "Test-IP-Range"
action.startIp = "2002:2001::02"
action.endIp = "2002:2001::FE"
action.gateway = "2002:2001::01"
action.prefixLen = 64
action.addressMode = "Stateful-DHCP"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddIpv6RangeAction.Result res = action.call()通过网络CIDR添加IPv6地址范围(AddIpv6RangeByNetworkCidr)
API请求
URLs
POST zstack/v1/l3-networks/{l3NetworkUuid}/ipv6-ranges/by-cidrHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-IPRange",
"networkCidr": "2002:2001::/64",
"addressMode": "SLAAC"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"Test-IPRange","networkCidr":"2002:2001::/64","addressMode":"SLAAC"}}' http://localhost:8080/zstack/v1/l3-networks/92850b5a66633e2aa8c3a8ae6ebb541d/ipv6-ranges/by-cidr参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 三层网络的名称 | 3.1.0 | |
| description (可选) | String | body(包含在params结构中) | 三层网络的详细描述 | 3.1.0 | |
| l3NetworkUuid | String | url | 三层网络UUID | 3.1.0 | |
| networkCidr | String | body(包含在params结构中) | 网络CIDR | 3.1.0 | |
| addressMode | String | body(包含在params结构中) | IPv6地址分配模式 |
|
3.1.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID。若指定,三层网络会使用该字段值作为UUID | 3.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.1.0 | |
| userTags (可选) | List | body | 用户标签 | 3.1.0 |
Note:
- ZStack Cloud通过网络CIDR添加IPv6地址范围时支持指定DHCP
server地址功能,SystemTags增加affinityGroup选项。
- 选项格式为:
flatNetwork::DhcpServer::{%s}::ipUuid::{%s} - 例如:
flatNetwork::DhcpServer::192.168.1.100::ipUuid::null
- 选项格式为:
API返回
返回示例
{
"inventory": {
"l3NetworkUuid": "6735b2c2bc0c345892b7d66b1616d909",
"name": "Test-IPRange",
"networkCidr": "2002:2001::/64"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.1.0 |
| description | String | 错误的概要描述 | 3.1.0 |
| details | String | 错误的详细信息 | 3.1.0 |
| elaboration | String | 保留字段,默认为null | 3.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.1.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.1.0 |
| l3NetworkUuid | String | 三层网络UUID | 3.1.0 |
| name | String | 资源名称 | 3.1.0 |
| description | String | 资源的详细描述 | 3.1.0 |
| startIp | String | 3.1.0 | |
| endIp | String | 3.1.0 | |
| netmask | String | 3.1.0 | |
| prefixLen | String | 掩码长度 | 3.1.0 |
| gateway | String | 3.1.0 | |
| networkCidr | String | 3.1.0 | |
| ipVersion | Integer | ip协议号 | 3.1.0 |
| addressMode | String | IPv6地址分配模式 | 3.1.0 |
| createDate | Timestamp | 创建时间 | 3.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.1.0 |
SDK示例
Java
SDK
AddIpv6RangeByNetworkCidrAction action = new AddIpv6RangeByNetworkCidrAction();
action.name = "Test-IPRange";
action.l3NetworkUuid = "92850b5a66633e2aa8c3a8ae6ebb541d";
action.networkCidr = "2002:2001::/64";
action.addressMode = "SLAAC";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddIpv6RangeByNetworkCidrAction.Result res = action.call();Python
SDK
AddIpv6RangeByNetworkCidrAction action = AddIpv6RangeByNetworkCidrAction()
action.name = "Test-IPRange"
action.l3NetworkUuid = "92850b5a66633e2aa8c3a8ae6ebb541d"
action.networkCidr = "2002:2001::/64"
action.addressMode = "SLAAC"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddIpv6RangeByNetworkCidrAction.Result res = action.call()查询IP地址(QueryIpAddress)
API请求
URLs
GET zstack/v1/l3-networks/ip-address
GET zstack/v1/l3-networks/ip-address{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-addresscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/ip-address/87b2ab50f6c13ebb9dd73ca46bb22bc7可查询字段
运行CLI命令行工具,输入QueryIpAddress并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "3ccfbfd6bd483a5eaeabed00b284f4fc",
"ipRangeUuid": "1b3a29978ea73f0db4ce8d8c2d0bd479",
"l3NetworkUuid": "c11b366475f836078e5aa86469de2eef",
"ipVersion": 4.0,
"ip": "192.168.1.100",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"ipInLong": 0.0,
"vmNicUuid": "28e22f67b2893b208547333dfef7cfa8"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考errot | 3.1.0 |
| inventories | List | 详情参考inventories | 3.1.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.1.0 |
| description | String | 错误的概要描述 | 3.1.0 |
| details | String | 错误的详细信息 | 3.1.0 |
| elaboration | String | 保留字段,默认为null | 3.1.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.1.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.1.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.1.0 |
| ipRangeUuid | String | IP段UUID | 3.1.0 |
| l3NetworkUuid | String | 三层网络UUID | 3.1.0 |
| ipVersion | Integer | IP协议号 | 3.1.0 |
| ip | String | IP地址 | 3.1.0 |
| netmask | String | 网络掩码 | 3.1.0 |
| gateway | String | 网关地址 | 3.1.0 |
| usedFor | String | 3.1.0 | |
| ipInLong | long | 3.1.0 | |
| vmNicUuid | String | 云主机网卡UUID | 3.1.0 |
| createDate | Timestamp | 创建时间 | 3.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.1.0 |
SDK示例
Java
SDK
QueryIpAddressAction action = new QueryIpAddressAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryIpAddressAction.Result res = action.call();Python
SDK
QueryIpAddressAction action = QueryIpAddressAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryIpAddressAction.Result res = action.call()获取三层网络IP地址使用情况统计(GetL3NetworkIpStatistic)
API请求
URLs
GET zstack/v1/l3-networks/{l3NetworkUuid}/ip-statisticHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/9bdd769f3e603f65bd368512ebe8b998/ip-statistic?resourceType=All&sortBy=Ip&sortDirection=asc&start=0.0&limit=20.0&replyWithCount=false参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| l3NetworkUuid | String | url | 三层网络UUID | 3.7.0 | |
| resourceType (可选) | String | query | 统计资源类型 |
|
3.7.0 |
| ip (可选) | String | query | 指定IP地址 | 3.7.0 | |
| sortBy (可选) | String | query | 排序方式 |
|
3.7.0 |
| sortDirection (可选) | String | query | 排序方向 |
|
3.7.0 |
| start (可选) | Integer | query | 统计结果起始位置 | 3.7.0 | |
| limit (可选) | Integer | query | 统计结果数量 | 3.7.0 | |
| replyWithCount (可选) | boolean | query | 同时返回统计结果总数 | 3.7.0 | |
| systemTags (可选) | List | query | 系统标签 | 3.7.0 | |
| userTags (可选) | List | query | 用户标签 | 3.7.0 |
API返回
返回示例
{
"ipStatistics": [
{
"ip": "192.168.0.1",
"resourceTypes": [
"Other"
]
}
],
"total": 1.0
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 | ErrorCode | 详情参考error | 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 |
| 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 |
#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 |
SDK示例
Java
SDK
GetL3NetworkIpStatisticAction action = new GetL3NetworkIpStatisticAction();
action.l3NetworkUuid = "9bdd769f3e603f65bd368512ebe8b998";
action.resourceType = "All";
action.sortBy = "Ip";
action.sortDirection = "asc";
action.start = 0.0;
action.limit = 20.0;
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.0
action.limit = 20.0
action.replyWithCount = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetL3NetworkIpStatisticAction.Result res = action.call()查询IP地址池(QueryAddressPool)
API请求
URLs
GET zstack/v1/l3-networks/address-poolsGET zstack/v1/l3-networks/address-pools/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/address-pools?q=uuid=a73cf6bc10a0390bb5e461d9f5e3fd6dcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/l3-networks/address-pools/f45cb0f9098336a39662b7553f42deb5可查询字段
运行CLI命令行工具,输入QueryAddressPool并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"l3NetworkUuid": "81ce7828f3f63c0ea8a69dd9139bdaa0",
"name": "Test-IPRange",
"networkCidr": "192.168.10.0/24",
"ipRangeType": "AddressPool"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.9.0 |
| inventories | List | 详情参考inventories | 3.9.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.9.0 |
| description | String | 错误的概要描述 | 3.9.0 |
| details | String | 错误的详细信息 | 3.9.0 |
| elaboration | String | 保留字段,默认为null | 3.9.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.9.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.9.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.9.0 |
| l3NetworkUuid | String | 三层网络UUID | 3.9.0 |
| name | String | 资源名称 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| startIp | String | 起始IP | 3.9.0 |
| endIp | String | 结束IP | 3.9.0 |
| netmask | String | 掩码 | 3.9.0 |
| gateway | String | 网关 | 3.9.0 |
| networkCidr | String | 网络CIDR | 3.9.0 |
| ipVersion | Integer | ip协议号 | 3.9.0 |
| addressMode | String | IPv6地址分配模式 | 3.9.0 |
| prefixLen | Integer | 掩码长度 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
| ipRangeType | IpRangeType | 详情参考ipRangeType | 3.9.0 |
#ipRangeType
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Normal | IpRangeType | 普通地址段 | 3.9.0 |
| AddressPool | IpRangeType | 地址池段 | 3.9.0 |
SDK示例
Java
SDK
QueryAddressPoolAction action = new QueryAddressPoolAction();
action.conditions = asList("uuid=4cbab87c862032f1a161bebe7e1f55a1");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryAddressPoolAction.Result res = action.call();Python
SDK
QueryAddressPoolAction action = QueryAddressPoolAction()
action.conditions = ["uuid=455d45fad9893eba9565de38588c7416"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryAddressPoolAction.Result res = action.call()