负载均衡相关接口
创建负载均衡器(CreateLoadBalancer)
API请求
URLs
POST zstack/v1/load-balancersHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-Lb",
"vipUuid": "59a98484f6fe43b9af1d782f725f40ac"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 855586410b7b4c0cba21bfd5ed2df4fb" \
-X POST -d '{"params":{"name":"Test-Lb","vipUuid":"d7720f0981853e91b37678e4acb1d4f0"}}' http://localhost:8080/zstack/v1/load-balancers
参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 0.6 | |
| vipUuid | String | body(包含在params结构中) | VIP UUID | 0.6 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 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
Python
SDKCreateLoadBalancerAction action = new CreateLoadBalancerAction();
action.name = "Test-Lb";
action.vipUuid = "861b79a91e894ea68f77ffd7007bb57d";
action.sessionId = "056fdb04a78544fd9a43f757d6af4700";
CreateLoadBalancerAction.Result res = action.call();CreateLoadBalancerAction action = CreateLoadBalancerAction()
action.name = "Test-Lb"
action.vipUuid = "3b1839e4bef9437a9b0cf28789951009"
action.sessionId = "b21c8f46991440d48be3dcf5c4a36f15"
CreateLoadBalancerAction.Result res = action.call()删除负载均衡器(DeleteLoadBalancer)
API请求
URLs
DELETE/v1/load-balancers/listeners/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 1ac325e9a263466d88a9bdf44c64ce96" \
-X DELETE http://localhost:8080/zstack/v1/load-balancers/listeners/db191bc52926462eb21d24b30db7971f参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| 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
DeleteLoadBalancerListenerAction action = new DeleteLoadBalancerListenerAction();
action.uuid = "2e7918e14cb345888cb57769f117fb91";
action.sessionId = "efa96e940fce42c58c5e43885ce1f37f";
DeleteLoadBalancerListenerAction.Result res = action.call();Python
SDK
DeleteLoadBalancerListenerAction action = DeleteLoadBalancerListenerAction()
action.uuid = "be721492004a49038940201562070e1e"
action.sessionId = "4a6baa8346204970bf3ce9397f48504a"
DeleteLoadBalancerListenerAction.Result res = action.call()
查询负载均衡器(QueryLoadBalancer)
API请求
URLs
GET zstack/v1/load-balancers
GET zstack/v1/load-balancers/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 18a70c9589fa4d93a59a228488e459fb" \
-X GET http://localhost:8080/zstack/v1/load-balancerscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b3fd9ebb07e44e61be3c1f4d24710f9d" \
-X GET http://localhost:8080/zstack/v1/load-balancers/2bc2a3e1855249c6ad436556915253d5可查询字段
运行CLI命令行工具,输入QueryLoadBalancer并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"name": "Test-Lb",
"uuid": "36c2ba1d4a86409693a2de40fa0473ca",
"vipUuid": "8807c418b3b74ee5991006bcc4c670e4"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 0.6 |
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| state | String | 0.6 | |
| vipUuid | String | VIP UUID | 0.6 |
| createDate | Timestamp | 创建时间 | 3.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.1.0 |
| listeners | List | 详情参考listeners | 0.6 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
| certificateRefs | List | 详情参考certificateRefs | 0.6 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| listenerUuid | String | 2.3 | |
| certificateUuid | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
QueryLoadBalancerAction action = new QueryLoadBalancerAction();
action.conditions = asList();
action.sessionId = "d649f3ea966e437db93b2049bef206ca";
QueryLoadBalancerAction.Result res = action.call();Python
SDK
QueryLoadBalancerAction action = QueryLoadBalancerAction()
action.conditions = []
action.sessionId = "244697b709b0490ab8d8d37e6f94592f"
QueryLoadBalancerAction.Result res = action.call()刷新负载均衡器(RefreshLoadBalancer)
API请求
URLs
PUT zstack/v1/load-balancers/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"refreshLoadBalancer": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b1e125550d924d17a0efa1bb6dd36806" \
-X PUT -d '{"refreshLoadBalancer":{}}' \
http://localhost:8080/zstack/v1/load-balancers/9fb0a5a16d06393db160485b0b79fd49/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-Lb",
"uuid": "ee6de94ed5bf49c8b09a7bd3e5965c60",
"vipUuid": "691e275592d84c898c1d495febf42a9a"
}
}#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
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 0.6 |
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| state | String | 0.6 | |
| vipUuid | String | VIP UUID | 0.6 |
| createDate | Timestamp | 创建时间 | 3.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.1.0 |
| listeners | List | 详情参考listeners | 0.6 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
| aclRefs | List | 详情参考aclRefs | 3.9.0 |
| certificateRefs | List | 详情参考certificateRefs | 0.6 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 3.9.0 |
| listenerUuid | String | 监听器唯一标识 | 3.9.0 |
| aclUuid | String | 访问策略组唯一标识 | 3.9.0 |
| type | String | 访问策略类型 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| listenerUuid | String | 2.3 | |
| certificateUuid | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
RefreshLoadBalancerAction action = new RefreshLoadBalancerAction();
action.uuid = "cad53be6896e43cf8aef4021d165f56d";
action.sessionId = "fec73392481a4edaa2738131516ef0d7";
RefreshLoadBalancerAction.Result res = action.call();Python
SDK
RefreshLoadBalancerAction action = RefreshLoadBalancerAction()
action.uuid = "3556da2f1d3b47e48ec3068a5c3055ba"
action.sessionId = "9947fe6582f44b5a961143d08f49a2eb"
RefreshLoadBalancerAction.Result res = action.call()创建负载均衡监听器(CreateLoadBalancerListener)
API请求
URLs
POST zstack/v1/load-balancers/{loadBalancerUuid}/listenersHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "Test-Listener",
"instancePort": 80.0,
"loadBalancerPort": 80.0,
"protocol": "http"
"aclStatus": "disable",
"aclType": "black"
},
"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-Listener","instancePort":80.0,"loadBalancerPort":80.0,"protocol":"http","aclStatus":"disable","aclType":"black"}}'
http://localhost:8080/zstack/v1/load-balancers/192b3fe960d63e078ced8f59529a25ad/listeners参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| loadBalancerUuid | String | url | 负载均衡器UUID | 0.6 | |
| name | String | body(包含在params结构中) | 资源名称 | 0.6 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 0.6 | |
| instancePort(可选) | Integer | body(包含在params结构中) | 云主机端口 | 0.6 | |
| loadBalancerPort | int | body(包含在params结构中) | 负载均衡器端口 | 0.6 | |
| protocol (可选) | String | body(包含在params结构中) | 协议 |
|
3.0.0 |
| certificateUuid (可选) | String | body(包含在params结构中) | 2.3.2 | ||
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 0.6 | |
| instancePort (可选) | Integer | body(包含在params结构中) | 0.6 | ||
| healthCheckProtocol (可选) | String | body(包含在params结构中) | 健康检查协议 |
|
3.9.0 |
| healthCheckMethod (可选) | String | body(包含在params结构中) | 健康检查方法 |
|
3.9.0 |
| healthCheckURI (可选) | String | body(包含在params结构中) | 健康检查的URI | 3.9.0 | |
| healthCheckHttpCode (可选) | String | body(包含在params结构中) | 健康检查期望的返回码 | 3.9.0 | |
| aclStatus (可选) | String | body(包含在params结构中) | 访问控制策略状态 |
|
3.9.0 |
| aclUuids (可选) | list | body(包含在params结构中) | 访问控制策略组 | 3.9.0 | |
| aclType (可选) | String | body(包含在params结构中) | 访问控制策略类型 |
|
3.9.0 |
| tagUuids (可选) | list | body(包含在params结构中) | 标签UUID列表 | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
Note:
- ZStack Cloud创建负载均衡监听器时支持设置7层健康检查参数,SystemTags增加healthCheckParameter选项。
- 选项格式为:
healthCheckParameter::{parameter},参数形如:healthCheckParameter::method:uri:expect-result - 例如:
healthCheckParameter::GET:/healthstatus.html:http_2xx
- 选项格式为:
- ZStack Cloud创建负载均衡监听器时支持设置监听器访问控制状态,SystemTags增加accessControlStatus选项。
- 选项格式为:
accessControlStatus::{status} - 例如:
accessControlStatus::enable
- 选项格式为:
- ZStack Cloud创建负载均衡监听器时支持指定会话保持模式及开关,SystemTags增加sessionPersistence选项。
- 选项格式为:
sessionPersistence::{%s},其中%s可以为disable/iphash/insert/rewrite - 例如:
sessionPersistence::insert
- 选项格式为:
- ZStack Cloud创建负载均衡监听器时支持设置指定会话保持时间,SystemTags增加sessionIdleTimeout选项。
- 选项格式为:
sessionIdleTimeout::{%s},其中%s可以为30-3600 - 例如:
sessionIdleTimeout::60
- 选项格式为:
- ZStack Cloud创建负载均衡监听器时支持设置会话保持重写名称,SystemTags增加cookieName选项。
- 选项格式为:
validRegexValues::{%s},其中%s可以为"[A-Za-z0-9_-]+", maxLength = 20 - 例如:
cookieName::zstack-cookie
- 选项格式为:
- ZStack Cloud支持设置是否开启HTTP重定向,SystemTags增加httpRedirectHttps选项。
- 选项格式为:
httpRedirectHttps::{%s},其中%s可以为disable/enable - 例如:
httpRedirectHttps::enable
- 选项格式为:
- ZStack Cloud支持重定向目的监听端口,SystemTags增加redirectPort选项。
- 选项格式为:
redirectPort::{%s},其中%s可以为1-65535 - 例如:
redirectPort::80
- 选项格式为:
- ZStack Cloud支持重定向状态码,SystemTags增加statusCode选项。
- 选项格式为:
statusCode::{%s},其中%s可以为301/302/303/307/308 - 例如:
statusCode::302
- 选项格式为:
API返回
返回示例
{
"inventory": {
"uuid": "e82212513e2f3644885d98ce164ee687",
"name": "Test-Listener",
"loadBalancerUuid": "f7b267e9a5683ba5981b79196ca65d47",
"instancePort": 80.0,
"loadBalancerPort": 80.0,
"protocol": "http"
}
}#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 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
| aclRefs | List | 详情参考aclRefs | 3.9.0 |
| certificateRefs | List | 详情参考certificateRefs | 0.6 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 3.9.0 |
| listenerUuid | String | 监听器唯一标识 | 3.9.0 |
| aclUuid | String | 访问策略组唯一标识 | 3.9.0 |
| type | String | 访问策略类型 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| listenerUuid | String | 2.3 | |
| certificateUuid | String | 2.3.2 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
CreateLoadBalancerListenerAction action = new CreateLoadBalancerListenerAction();
action.loadBalancerUuid = "192b3fe960d63e078ced8f59529a25ad";
action.name = "Test-Listener";
action.instancePort = 80.0;
action.loadBalancerPort = 80.0;
action.protocol = "http";
action.aclStatus = "disable";
action.aclType = "black";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateLoadBalancerListenerAction.Result res = action.call();Python
SDK
CreateLoadBalancerListenerAction action = CreateLoadBalancerListenerAction()
action.loadBalancerUuid = "192b3fe960d63e078ced8f59529a25ad"
action.name = "Test-Listener"
action.instancePort = 80.0
action.loadBalancerPort = 80.0
action.protocol = "http"
action.aclStatus = "disable"
action.aclType = "black"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateLoadBalancerListenerAction.Result res = action.call()删除负载均衡监听器(DeleteLoadBalancerListener)
API请求
URLs
DELETE/v1/load-balancers/listeners/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 1ac325e9a263466d88a9bdf44c64ce96" \
-X DELETE http://localhost:8080/zstack/v1/load-balancers/listeners/db191bc52926462eb21d24b30db7971f?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 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
DeleteLoadBalancerListenerAction action = new DeleteLoadBalancerListenerAction();
action.uuid = "2e7918e14cb345888cb57769f117fb91";
action.sessionId = "efa96e940fce42c58c5e43885ce1f37f";
DeleteLoadBalancerListenerAction.Result res = action.call();Python
SDK
DeleteLoadBalancerListenerAction action = DeleteLoadBalancerListenerAction()
action.uuid = "be721492004a49038940201562070e1e"
action.sessionId = "4a6baa8346204970bf3ce9397f48504a"
DeleteLoadBalancerListenerAction.Result res = action.call()查询负载均衡监听器(QueryLoadBalancerListener)
API请求
URLs
GET zstack/v1/load-balancers/listeners
GET zstack/v1/load-balancers/listeners/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 6d7ca1c2f39440d5a4110962854c3234" \
-X GET http://localhost:8080/zstack/v1/load-balancers/listenerscurl \
-H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 057112ec0d5e4bcd9193b1f9499169eb" \
-X GET http://localhost:8080/zstack/v1/load-balancers/listeners/cdf776df1cb04ae6a3cf1fb1330dab2d可查询字段
运行CLI命令行工具,输入QueryLoadBalancerListener并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "be2f6e299e364f5cb71e52f11eeee34e",
"name": "Test-Listener",
"loadBalancerUuid": "90a89f6ec62b4acf9ccb770b453fddc5",
"instancePort": 80.0,
"loadBalancerPort": 80.0,
"protocol": "http"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
| certificateRefs | List | 详情参考certificateRefs | 0.6 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| listenerUuid | String | 2.3 | |
| certificateUuid | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
QueryLoadBalancerListenerAction action = new QueryLoadBalancerListenerAction();
action.conditions = asList();
action.sessionId = "c616bc4ee56648b6a921b2da70fe7798";
QueryLoadBalancerListenerAction.Result res = action.call();Python
SDK
QueryLoadBalancerListenerAction action = QueryLoadBalancerListenerAction()
action.conditions = []
action.sessionId = "529b237f77cd4130b861ebe99a30c983"
QueryLoadBalancerListenerAction.Result res = action.call()更新负载均衡监听器(UpdateLoadBalancerListener)
API请求
URLs
PUT zstack/v1/load-balancers/listeners/{uuid}Headers
Authorization: OAuth the-session-uuidBody
{
"updateLoadBalancerListener": {
"name": "Test-Listener",
"description": "desc info"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateLoadBalancerListener":{"name":"Test-Listener","description":"desc info"}}' \
http://localhost:8080/zstack/v1/load-balancers/listeners/6566eed5ab7432d2956b1c093d25daab参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| name (可选) | String | body(包含在updateLoadBalancerListener结构中) | 资源名称 | 0.6 | |
| description (可选) | String | body(包含在updateLoadBalancerListener结构中) | 资源的详细描述 | 0.6 | |
| systemTags (可选) | List | body | 0.6 | ||
| userTags (可选) | List | body | 0.6 |
API返回
返回示例
{
"inventory": {
"uuid": "84735dfea01d359196587f35314a1e17",
"name": "Test-Listener",
"description": "desc info",
"loadBalancerUuid": "c8f77d0df3c83e449f0d372dbe80bd09",
"instancePort": 80.0,
"loadBalancerPort": 80.0,
"protocol": "http"
}
}#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 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
| certificateRefs | List | 详情参考certificateRefs | 0.6 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3 | |
| listenerUuid | String | 2.3 | |
| certificateUuid | String | 2.3 | |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
SDK示例
Java
SDK
UpdateLoadBalancerListenerAction action = new UpdateLoadBalancerListenerAction();
action.uuid = "6566eed5ab7432d2956b1c093d25daab";
action.name = "Test-Listener";
action.description = "desc info";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateLoadBalancerListenerAction.Result res = action.call();Python
SDK
UpdateLoadBalancerListenerAction action = UpdateLoadBalancerListenerAction()
action.uuid = "6566eed5ab7432d2956b1c093d25daab"
action.name = "Test-Listener"
action.description = "desc info"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateLoadBalancerListenerAction.Result res = action.call()修改负载均衡监听器参数(ChangeLoadBalancerListener)
API请求
URLs
PUT zstack/v1/load-balancers/listeners/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeLoadBalancerListener": {
"connectionIdleTimeout": 300,
"maxConnection": 5000,
"balancerAlgorithm": "roundrobin",
"healthCheckTarget": "default",
"healthyThreshold": 2,
"unhealthyThreshold": 3,
"healthCheckInterval": 5,
"nbprocess": 1,
"httpMode": "http-keep-alive",
"sessionPersistence": "insert",
"sessionIdleTimeout": 60
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeLoadBalancerListener":{"connectionIdleTimeout":300,"maxConnection":5000,"balancerAlgorithm":"roundrobin","healthCheckTarget":"default","healthyThreshold":2,"unhealthyThreshold":3,"healthCheckInterval":5,"nbprocess":1,"httpMode":"http-keep-alive","sessionPersistence":"insert","sessionIdleTimeout":60}}'
http://localhost:8080/zstack/v1/load-balancers/listeners/ca4f7cea0c5a3a329742b127d7f80615/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.4.0 | |
| connectionIdleTimeout (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 空闲连接超时 | 4.6.0 | |
| maxConnection (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 最大连接并发数 | 4.6.0 | |
| balancerAlgorithm (可选) | String | body(包含在changeLoadBalancerListener结构中) | 负载均衡算法 |
|
4.6.0 |
| healthCheckTarget (可选) | String | body(包含在changeLoadBalancerListener结构中) | 健康检查端口 | 4.6.0 | |
| healthyThreshold (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 健康检查阈值 | 4.6.0 | |
| unhealthyThreshold (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 非健康检查阈值 | 4.6.0 | |
| healthCheckInterval (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 健康检查间隔 | 4.6.0 | |
| healthCheckProtocol (可选) | String | body(包含在changeLoadBalancerListener结构中) | 负载均衡健康检查协议 |
|
3.9.0 |
| healthCheckMethod (可选) | String | body(包含在changeLoadBalancerListener结构中) | 健康检查方法 |
|
3.9.0 |
| healthCheckURI (可选) | String | body(包含在changeLoadBalancerListener结构中) | 健康检查的URI | 3.9.0 | |
| healthCheckHttpCode (可选) | String | body(包含在changeLoadBalancerListener结构中) | 健康检查期望的成功返回码 | 3.9.0 | |
| aclStatus (可选) | String | body(包含在changeLoadBalancerListener结构中) | 访问控制状态 |
|
3.9.0 |
| securityPolicyType (可选) | String | body(包含在changeLoadBalancerListener结构中) | TLS安全策略 |
|
4.1.0 |
| nbprocess (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 负载均衡进程数量 | 4.1.0 | |
| httpMode (可选) | String | body(包含在changeLoadBalancerListener结构中) | 负载均衡HTTP模式 |
|
4.1.0 |
| sessionPersistence (可选) | String | body(包含在changeLoadBalancerListener结构中) | 会话保持模式 |
|
4.6.0 |
| sessionIdleTimeout (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 会话保持超时时间 | 4.6.0 | |
| cookieName (可选) | String | body(包含在changeLoadBalancerListener结构中) | Cookie名称 | 4.6.0 | |
| systemTags (可选) | List | body | 3.4.0 | ||
| userTags (可选) | List | body | 3.4.0 | ||
| httpRedirectHttps (可选) | String | body(包含在changeLoadBalancerListener结构中) | http重定向https |
|
4.7.21 |
| redirectPort (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 重定向端口 | 4.7.21 | |
| statusCode (可选) | Integer | body(包含在changeLoadBalancerListener结构中) | 重定向状态码 |
|
4.7.21 |
Note:
- ZStack Cloud修改负载均衡监听器参数时支持设置后端server的权重,SystemTags增加balancerWeight选项。
- 选项格式为:
balancerWeight::{nicUuid}::{weight},其中weight为对应后端server的权重.范围:0~100的整数,默认为100。 - 例如:
balancerWeight::{"c44007641c9040c6b2587e19b1b3e2b0"}::{100}
- 选项格式为:
API返回
返回示例
{
"inventory": {
"uuid": "6356c8f8ae7534bab9a2175144dbc997",
"name": "Test-Listener",
"description": "desc info",
"loadBalancerUuid": "4b32d1a27d8e3d77a606e5014caddd86",
"instancePort": 80,
"loadBalancerPort": 80,
"protocol": "http"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 3.4.0 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.4.0 |
| inventory | LoadBalancerListenerInventory | 详情参考inventory | 3.4.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.4.0 |
| description | String | 错误的概要描述 | 3.4.0 |
| details | String | 错误的详细信息 | 3.4.0 |
| elaboration | String | 保留字段,默认为null | 3.4.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.4.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.4.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.4.0 |
| name | String | 资源名称 | 3.4.0 |
| description | String | 资源的详细描述 | 3.4.0 |
| loadBalancerUuid | String | 负载均衡器UUID | 3.4.0 |
| instancePort | Integer | 3.4.0 | |
| loadBalancerPort | Integer | 3.4.0 | |
| protocol | String | 3.4.0 | |
| createDate | Timestamp | 创建时间 | 3.4.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.4.0 |
| vmNicRefs | List | 详情参考vmNicRefs | 3.4.0 |
| aclRefs | List | 详情参考aclRefs | 3.9.0 |
| certificateRefs | List | 详情参考certificateRefs | 3.4.0 |
| serverGroupRefs | List | 详情参考serverGroupRefs | 4.1.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 3.4.0 | |
| listenerUuid | String | 3.4.0 | |
| vmNicUuid | String | 云主机网卡UUID | 3.4.0 |
| status | String | 3.4.0 | |
| createDate | Timestamp | 创建时间 | 3.4.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.4.0 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 3.9.0 |
| listenerUuid | String | 监听器唯一标识 | 3.9.0 |
| aclUuid | String | 访问策略组唯一标识 | 3.9.0 |
| type | String | 访问策略类型 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 3.4.0 | |
| listenerUuid | String | 3.4.0 | |
| certificateUuid | String | 3.4.0 | |
| createDate | Timestamp | 创建时间 | 3.4.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.4.0 |
#serverGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 4.1.0 | |
| listenerUuid | String | 4.1.0 | |
| serverGroupUuid | String | 4.1.0 | |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
SDK示例
Java
SDK
ChangeLoadBalancerListenerAction action = new ChangeLoadBalancerListenerAction();
action.uuid = "ca4f7cea0c5a3a329742b127d7f80615";
action.connectionIdleTimeout = 300;
action.maxConnection = 5000;
action.balancerAlgorithm = "roundrobin";
action.healthCheckTarget = "default";
action.healthyThreshold = 2;
action.unhealthyThreshold = 3;
action.healthCheckInterval = 5;
action.nbprocess = 1;
action.httpMode = "http-keep-alive";
action.sessionPersistence = "insert";
action.sessionIdleTimeout = 60;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeLoadBalancerListenerAction.Result res = action.call();Python
SDK
ChangeLoadBalancerListenerAction action = ChangeLoadBalancerListenerAction()
action.uuid = "ca4f7cea0c5a3a329742b127d7f80615"
action.connectionIdleTimeout = 300
action.maxConnection = 5000
action.balancerAlgorithm = "roundrobin"
action.healthCheckTarget = "default"
action.healthyThreshold = 2
action.unhealthyThreshold = 3
action.healthCheckInterval = 5
action.nbprocess = 1
action.httpMode = "http-keep-alive"
action.sessionPersistence = "insert"
action.sessionIdleTimeout = 60
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeLoadBalancerListenerAction.Result res = action.call()获取云主机网卡(GetCandidateVmNicsForLoadBalancer)
获取可供负载均衡器添加的云主机网卡。
API请求
URLs
GET zstack/v1/load-balancers/listeners/{listenerUuid}/vm-instances/candidate-nicsHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth e75a29e482104fd094dde90d69b212c6" \
-X GET http://localhost:8080/zstack/v1/load-balancers/listeners/4fe68eaa71ec47699c19b7819bd52f80/vm-instances/candidate-nics参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| listenerUuid | String | url | 负载均衡监听器UUID | 0.6 | |
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"inventories": [
{
"uuid": "241c356448ea4dfab7e95dd1e52a163d",
"vmInstanceUuid": "5d0f9bee14d94943a4e6ec34c599dc19",
"usedIpUuid": "2974a99c5bc2481cb54759c83fea8f52",
"l3NetworkUuid": "a3dfb2211d6e4d538a73bb3453876654",
"ip": "192.168.1.10",
"mac": "00:0c:29:bd:99:fc",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"deviceId": 0.0,
"createDate": "Jun 7, 2017 9:21:22 PM",
"lastOpDate": "Jun 7, 2017 9:21:22 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| vmInstanceUuid | String | 云主机UUID | 0.6 |
| l3NetworkUuid | String | 三层网络UUID | 0.6 |
| ip | String | 0.6 | |
| mac | String | 0.6 | |
| netmask | String | 0.6 | |
| gateway | String | 0.6 | |
| metaData | String | 0.6 | |
| deviceId | Integer | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
GetCandidateVmNicsForLoadBalancerAction action = new GetCandidateVmNicsForLoadBalancerAction();
action.listenerUuid = "939a6fd54937468b9b9c27c4d3903c6e";
action.sessionId = "af93732431cf45e7828b579fcb9e46bc";
GetCandidateVmNicsForLoadBalancerAction.Result res = action.call();Python
SDK
GetCandidateVmNicsForLoadBalancerAction action = GetCandidateVmNicsForLoadBalancerAction()
action.listenerUuid = "a100b63272ff460eb0301f5759ff2fce"
action.sessionId = "423e456aac8041aa9bfdf4ce26ab32ce"
GetCandidateVmNicsForLoadBalancerAction.Result res = action.call()添加云主机网卡到负载均衡器(AddVmNicToLoadBalancer)
API请求
URLs
POST zstack/v1/load-balancers/listeners/{listenerUuid}/vm-instances/nicsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"vmNicUuids": [
"aadbfdd8413545d9a1d53d8a0cfa58a8"
]
},
"systemTags": [],
"userTags": []
}上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 47ac995879a9490f83b6b6ef79bca99f" \
-X POST -d '{"params":{"vmNicUuids":["f141d926d13b34cc905507ce7aa9a479"]}}' \
http://localhost:8080/zstack/v1/load-balancers/listeners/21e488793c5831a0842d72a63bcdaf04/vm-instances/nics参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmNicUuids | List | body(包含在params结构中) | 云主机网卡UUID | 0.6 | |
| listenerUuid | String | url | 负载均衡监听器UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
Note:
- ZStack Cloud添加云主机网卡到负载均衡器时支持设置后端server的权重,SystemTags增加balancerWeight选项。
- 选项格式为:
balancerWeight::{nicUuid}::{weight},其中weight为对应后端server的权重.范围:0~100的整数,默认为100。 - 例如:
balancerWeight::{"c44007641c9040c6b2587e19b1b3e2b0"}::{100}
- 选项格式为:
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
AddVmNicToLoadBalancerAction action = new AddVmNicToLoadBalancerAction();
action.vmNicUuids = asList("01741d3cc9d0422197b2176f3c977d52");
action.listenerUuid = "fd774b08700545ddaa5938fb2ccf4320";
action.sessionId = "ed5ea413b2354a94ac7b427528f88d26";
AddVmNicToLoadBalancerAction.Result res = action.call()Python
SDK
AddVmNicToLoadBalancerAction action = AddVmNicToLoadBalancerAction()
action.vmNicUuids = [9b08b7603be945d2928a08a0e8d1fc00]
action.listenerUuid = "874bcad239a645af8cd69ed267a48809"
action.sessionId = "a70b5f9862424ceb8ea8e2c7d679e0df"
AddVmNicToLoadBalancerAction.Result res = action.call()从负载均衡器移除云主机网卡(RemoveVmNicFromLoadBalancer)
API请求
URLs
DELETE/v1/load-balancers/listeners/{listenerUuid}/vm-instances/nics?vmNicUuids={vmNicUuids}
Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth a846184b54d845dbb85e50ba35364b6e" \
-X DELETE http://localhost:8080/zstack/v1/load-balancers/listeners/9fda51c382d841e0a47a4195f8dac67b/vm-instances/nics?vmNicUuids=9952aa24a745355b866782dd9b1c53e8
参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| vmNicUuids | List | body | 云主机网卡UUID | 0.6 | |
| listenerUuid | String | url | 负载均衡监听器UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-Lb",
"uuid": "40f1e1e109d34feaa119ad14b7ed5638",
"vipUuid": "d3968f8dd2764d988f09b251617b2cf9"
}
}#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
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 0.6 |
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| state | String | 0.6 | |
| vipUuid | String | VIP UUID | 0.6 |
| listeners | List | 详情参考listeners | 0.6 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
RemoveVmNicFromLoadBalancerAction action = new RemoveVmNicFromLoadBalancerAction();
action.vmNicUuids = asList("6d6c33021c0a432c9030046c3a24be6e");
action.listenerUuid = "0a11bad9fdb84538953689a5c4430126";
action.sessionId = "867ccf6fbe934fe19e8bb5ba861de7fd";
RemoveVmNicFromLoadBalancerAction.Result res = action.call();Python
SDK
RemoveVmNicFromLoadBalancerAction action = RemoveVmNicFromLoadBalancerAction()
action.vmNicUuids = [ef9de345e68f4e6aa51164eff6ee5249]
action.listenerUuid = "04f42584e0a14afdb382e0961f057076"
action.sessionId = "46c7dabf668943faa1bb8b6be0d60397"
RemoveVmNicFromLoadBalancerAction.Result res = action.call()更新负载均衡器(UpdateLoadBalancer)
API请求
URLs
PUT zstack/v1/load-balancers/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateLoadBalancer": {
"name": "Test-Lb",
"description": "info"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateLoadBalancer":{"name":"Test-Lb","description":"info"}}' \
http://localhost:8080/zstack/v1/load-balancers/a355359f46d13e5ab64d6eeff66aedbf/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| name (可选) | String | body(包含在updateLoadBalancer结构中) | 资源名称 | 0.6 | |
| description (可选) | String | body(包含在updateLoadBalancer结构中) | 资源的详细描述 | 0.6 | |
| resourceUuid (可选) | String | body(包含在updateLoadBalancer结构中) | 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
UpdateLoadBalancerAction action = new UpdateLoadBalancerAction();
action.uuid = "a355359f46d13e5ab64d6eeff66aedbf";
action.name = "Test-Lb";
action.description = "info";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateLoadBalancerAction.Result res = action.call();Python
SDK
UpdateLoadBalancerAction action = UpdateLoadBalancerAction()
action.uuid = "a355359f46d13e5ab64d6eeff66aedbf"
action.name = "Test-Lb"
action.description = "info"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateLoadBalancerAction.Result res = action.call()创建证书(CreateCertificate)
API请求
URLs
POST zstack/v1/certificatesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "www.domain.com",
"certificate": "-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAECggEAd0Ixye3O8ifNgLAE1K0MBcyouMNWCMFJzHX34nO9vkILdKk3imWBWUgxrUn713CezOjZJn6PjuEyujs7UmpUA22Cyp27PqbHkAvNM02SUxx1bB19UIapSGaM7gvmTvkoAxT4+DVD9NL4wktgp22HYnNImEgs+AaxLB9sokEvC6mxP23pv7LfnK4EDH2b+1pbE++VheVIBZxK+mTdxPRgwQBJv2VtK0LRDndnRU8gmB5O0KBnep3sCsAKmWtAJf37L9lWgc9QC7LysnuMsZ10KuoeQndVetsAazBARHhUdLd1fWQqbLklC6NtcLodoS+umuvHArKx6LungK4cmNyGZQKBgQD8abrSQXOJuNNx7N+EJjn3hjc3FOrSAgGY7LCiQ/qEP8EkWslxotRHKqKqz78oq4RApT/fBV17HqPe67IJ5xhwYlIUASzs8WvigRV6ITSZv92G8iOSdW7ALZzF4q+tc2RgPvW/pZPaHoxfNU6TC/QW35qAslPWab7Tel9cGb030wKBgQDLf+OLfUfhJUq8mZ3L8U1p1QLpSJNx282hGVg+OXwpuQQZ5qrxkhzF/xBYCjmMQMEfxLtRJxYTPgkHcTp9ozl4ICXdmHpL8V+E5PBQjbCBNCbE8kjXngCc0wiKsLJIUWmKoVRoq7dAaUz3INzkp0tujf8aa7DzC+1C4+j5nvFlkwKBgCTAKClQyke1F2Qw/uI4xpvZeNSWQRJOpHjljVoy15jFx5NJfKcE9C9gb8q68LQ1NM5MwR3xpAi3D1j3rDZw5UgHqLes7CObiv+xl7TufMAeBV0OiEtcucFVYswVE0sH0AeLYzCCJSLO69U457XVObbS26X9UOOZBeW4nYXFYZ1tAoGBAJgnShIcnObZRDUZwqMfC5uqud+E9UF3cBsY4SK9RnnHrSpUjtHKRps/5498LaURMZS4OroluFqw0n1vCqWvqiOIHee+vwoTMjEiIBCKsEMapDYzVYVpzNl07HkOPm7V+Ey/7WXJpl2RngtU1fRcpYjGwMuXY5mF/GM8FxC055bjAoGATYqGLqNhbZ0SVhgSs/2vHMlJYaHwJLlYPS+9OWk5JycvYSbfa9/rc2jblieuE5MseHQFqU0BRVeHqY4dqpQpeO45fC5h9vqC4Lp2LaXbwtxv5Z0cb/o8ecXuSXeF/G2PQvhK44IQFb9RSLuQBUMp/gX6UNVS0dP+7dDpim5n2zY\u003d-----END PRIVATE KEY----------BEGIN CERTIFICATE-----MIID4zCCAsugAwIBAgIJAJWhNGBNfAtTMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYDVQQGEwJDTjELMAkGA1UECAwCU0gxCzAJBgNVBAcMAlNIMQ8wDQYDVQQKDAZaU1RBQ0sxDDAKBgNVBAsMA0RldjEZMBcGA1UEAwwQc2hpeGluLnpzdGFjay5pbzEkMCIGCSqGSIb3DQEJARYVc2hpeGluLnJ1YW5AenN0YWNrLmlvMB4XDTE4MDMyMDA0NDYwM1oXDTE5MDMyMDA0NDYwM1owgYcxCzAJBgNVBAYTAkNOMQswCQYDVQQIDAJTSDELMAkGA1UEBwwCU0gxDzANBgNVBAoMBlpTVEFDSzEMMAoGA1UECwwDRGV2MRkwFwYDVQQDDBBzaGl4aW4uenN0YWNrLmlvMSQwIgYJKoZIhvcNAQkBFhVzaGl4aW4ucnVhbkB6c3RhY2suaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAGjUDBOMB0GA1UdDgQWBBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAfBgNVHSMEGDAWgBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDH5POu4FmmAsHXe49gL6Y6Kdcti2FTBYse7ru05V4URGsU5Dab25mATqp7z7WCiv9pTdlC0KoJieML7rpLiLskBBLpToU8bUigX96q5dmMtDbLSmGeYfhHj9tHeYuGv0U2eRcN2Jo6xlHrl6X3RazO/h/9mCW6sLAGgaJ9MyQAiqRfYaO+ToBqdbHmBEwmueaOO7wFy9UbU7F/CdeEzblKdWRMKQgf5yxA6pXYghjPWWNAqElxnnXskBmjMhYaDfGCQuRK5Ma362ax0i8UGqYfMnflBgy1qX8+f7VjyWokK4tcjep72TTYkIVBGbwBMqk2U2v5qslBRmM5+pmAESJq-----END CERTIFICATE-----"
},
"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":"www.domain.com","certificate":"-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAECggEAd0Ixye3O8ifNgLAE1K0MBcyouMNWCMFJzHX34nO9vkILdKk3imWBWUgxrUn713CezOjZJn6PjuEyujs7UmpUA22Cyp27PqbHkAvNM02SUxx1bB19UIapSGaM7gvmTvkoAxT4+DVD9NL4wktgp22HYnNImEgs+AaxLB9sokEvC6mxP23pv7LfnK4EDH2b+1pbE++VheVIBZxK+mTdxPRgwQBJv2VtK0LRDndnRU8gmB5O0KBnep3sCsAKmWtAJf37L9lWgc9QC7LysnuMsZ10KuoeQndVetsAazBARHhUdLd1fWQqbLklC6NtcLodoS+umuvHArKx6LungK4cmNyGZQKBgQD8abrSQXOJuNNx7N+EJjn3hjc3FOrSAgGY7LCiQ/qEP8EkWslxotRHKqKqz78oq4RApT/fBV17HqPe67IJ5xhwYlIUASzs8WvigRV6ITSZv92G8iOSdW7ALZzF4q+tc2RgPvW/pZPaHoxfNU6TC/QW35qAslPWab7Tel9cGb030wKBgQDLf+OLfUfhJUq8mZ3L8U1p1QLpSJNx282hGVg+OXwpuQQZ5qrxkhzF/xBYCjmMQMEfxLtRJxYTPgkHcTp9ozl4ICXdmHpL8V+E5PBQjbCBNCbE8kjXngCc0wiKsLJIUWmKoVRoq7dAaUz3INzkp0tujf8aa7DzC+1C4+j5nvFlkwKBgCTAKClQyke1F2Qw/uI4xpvZeNSWQRJOpHjljVoy15jFx5NJfKcE9C9gb8q68LQ1NM5MwR3xpAi3D1j3rDZw5UgHqLes7CObiv+xl7TufMAeBV0OiEtcucFVYswVE0sH0AeLYzCCJSLO69U457XVObbS26X9UOOZBeW4nYXFYZ1tAoGBAJgnShIcnObZRDUZwqMfC5uqud+E9UF3cBsY4SK9RnnHrSpUjtHKRps/5498LaURMZS4OroluFqw0n1vCqWvqiOIHee+vwoTMjEiIBCKsEMapDYzVYVpzNl07HkOPm7V+Ey/7WXJpl2RngtU1fRcpYjGwMuXY5mF/GM8FxC055bjAoGATYqGLqNhbZ0SVhgSs/2vHMlJYaHwJLlYPS+9OWk5JycvYSbfa9/rc2jblieuE5MseHQFqU0BRVeHqY4dqpQpeO45fC5h9vqC4Lp2LaXbwtxv5Z0cb/o8ecXuSXeF/G2PQvhK44IQFb9RSLuQBUMp/gX6UNVS0dP+7dDpim5n2zY=-----END PRIVATE KEY----------BEGIN CERTIFICATE-----MIID4zCCAsugAwIBAgIJAJWhNGBNfAtTMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYDVQQGEwJDTjELMAkGA1UECAwCU0gxCzAJBgNVBAcMAlNIMQ8wDQYDVQQKDAZaU1RBQ0sxDDAKBgNVBAsMA0RldjEZMBcGA1UEAwwQc2hpeGluLnpzdGFjay5pbzEkMCIGCSqGSIb3DQEJARYVc2hpeGluLnJ1YW5AenN0YWNrLmlvMB4XDTE4MDMyMDA0NDYwM1oXDTE5MDMyMDA0NDYwM1owgYcxCzAJBgNVBAYTAkNOMQswCQYDVQQIDAJTSDELMAkGA1UEBwwCU0gxDzANBgNVBAoMBlpTVEFDSzEMMAoGA1UECwwDRGV2MRkwFwYDVQQDDBBzaGl4aW4uenN0YWNrLmlvMSQwIgYJKoZIhvcNAQkBFhVzaGl4aW4ucnVhbkB6c3RhY2suaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAGjUDBOMB0GA1UdDgQWBBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAfBgNVHSMEGDAWgBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDH5POu4FmmAsHXe49gL6Y6Kdcti2FTBYse7ru05V4URGsU5Dab25mATqp7z7WCiv9pTdlC0KoJieML7rpLiLskBBLpToU8bUigX96q5dmMtDbLSmGeYfhHj9tHeYuGv0U2eRcN2Jo6xlHrl6X3RazO/h/9mCW6sLAGgaJ9MyQAiqRfYaO+ToBqdbHmBEwmueaOO7wFy9UbU7F/CdeEzblKdWRMKQgf5yxA6pXYghjPWWNAqElxnnXskBmjMhYaDfGCQuRK5Ma362ax0i8UGqYfMnflBgy1qX8+f7VjyWokK4tcjep72TTYkIVBGbwBMqk2U2v5qslBRmM5+pmAESJq-----END CERTIFICATE-----"}}' http://localhost:8080/zstack/v1/certificates参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 2.3.2 | |
| certificate | String | body(包含在params结构中) | 2.3.2 | ||
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 2.3.2 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 2.3.2 | ||
| systemTags (可选) | List | body | 2.3.2 | ||
| userTags (可选) | List | body | 2.3.2 |
API返回
返回示例
{
"inventory": {
"name": "www.domain.com",
"certificate": "-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAECggEAd0Ixye3O8ifNgLAE1K0MBcyouMNWCMFJzHX34nO9vkILdKk3imWBWUgxrUn713CezOjZJn6PjuEyujs7UmpUA22Cyp27PqbHkAvNM02SUxx1bB19UIapSGaM7gvmTvkoAxT4+DVD9NL4wktgp22HYnNImEgs+AaxLB9sokEvC6mxP23pv7LfnK4EDH2b+1pbE++VheVIBZxK+mTdxPRgwQBJv2VtK0LRDndnRU8gmB5O0KBnep3sCsAKmWtAJf37L9lWgc9QC7LysnuMsZ10KuoeQndVetsAazBARHhUdLd1fWQqbLklC6NtcLodoS+umuvHArKx6LungK4cmNyGZQKBgQD8abrSQXOJuNNx7N+EJjn3hjc3FOrSAgGY7LCiQ/qEP8EkWslxotRHKqKqz78oq4RApT/fBV17HqPe67IJ5xhwYlIUASzs8WvigRV6ITSZv92G8iOSdW7ALZzF4q+tc2RgPvW/pZPaHoxfNU6TC/QW35qAslPWab7Tel9cGb030wKBgQDLf+OLfUfhJUq8mZ3L8U1p1QLpSJNx282hGVg+OXwpuQQZ5qrxkhzF/xBYCjmMQMEfxLtRJxYTPgkHcTp9ozl4ICXdmHpL8V+E5PBQjbCBNCbE8kjXngCc0wiKsLJIUWmKoVRoq7dAaUz3INzkp0tujf8aa7DzC+1C4+j5nvFlkwKBgCTAKClQyke1F2Qw/uI4xpvZeNSWQRJOpHjljVoy15jFx5NJfKcE9C9gb8q68LQ1NM5MwR3xpAi3D1j3rDZw5UgHqLes7CObiv+xl7TufMAeBV0OiEtcucFVYswVE0sH0AeLYzCCJSLO69U457XVObbS26X9UOOZBeW4nYXFYZ1tAoGBAJgnShIcnObZRDUZwqMfC5uqud+E9UF3cBsY4SK9RnnHrSpUjtHKRps/5498LaURMZS4OroluFqw0n1vCqWvqiOIHee+vwoTMjEiIBCKsEMapDYzVYVpzNl07HkOPm7V+Ey/7WXJpl2RngtU1fRcpYjGwMuXY5mF/GM8FxC055bjAoGATYqGLqNhbZ0SVhgSs/2vHMlJYaHwJLlYPS+9OWk5JycvYSbfa9/rc2jblieuE5MseHQFqU0BRVeHqY4dqpQpeO45fC5h9vqC4Lp2LaXbwtxv5Z0cb/o8ecXuSXeF/G2PQvhK44IQFb9RSLuQBUMp/gX6UNVS0dP+7dDpim5n2zY\u003d-----END PRIVATE KEY----------BEGIN CERTIFICATE-----MIID4zCCAsugAwIBAgIJAJWhNGBNfAtTMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYDVQQGEwJDTjELMAkGA1UECAwCU0gxCzAJBgNVBAcMAlNIMQ8wDQYDVQQKDAZaU1RBQ0sxDDAKBgNVBAsMA0RldjEZMBcGA1UEAwwQc2hpeGluLnpzdGFjay5pbzEkMCIGCSqGSIb3DQEJARYVc2hpeGluLnJ1YW5AenN0YWNrLmlvMB4XDTE4MDMyMDA0NDYwM1oXDTE5MDMyMDA0NDYwM1owgYcxCzAJBgNVBAYTAkNOMQswCQYDVQQIDAJTSDELMAkGA1UEBwwCU0gxDzANBgNVBAoMBlpTVEFDSzEMMAoGA1UECwwDRGV2MRkwFwYDVQQDDBBzaGl4aW4uenN0YWNrLmlvMSQwIgYJKoZIhvcNAQkBFhVzaGl4aW4ucnVhbkB6c3RhY2suaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAGjUDBOMB0GA1UdDgQWBBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAfBgNVHSMEGDAWgBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDH5POu4FmmAsHXe49gL6Y6Kdcti2FTBYse7ru05V4URGsU5Dab25mATqp7z7WCiv9pTdlC0KoJieML7rpLiLskBBLpToU8bUigX96q5dmMtDbLSmGeYfhHj9tHeYuGv0U2eRcN2Jo6xlHrl6X3RazO/h/9mCW6sLAGgaJ9MyQAiqRfYaO+ToBqdbHmBEwmueaOO7wFy9UbU7F/CdeEzblKdWRMKQgf5yxA6pXYghjPWWNAqElxnnXskBmjMhYaDfGCQuRK5Ma362ax0i8UGqYfMnflBgy1qX8+f7VjyWokK4tcjep72TTYkIVBGbwBMqk2U2v5qslBRmM5+pmAESJq-----END CERTIFICATE-----"
}
}#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.3.2 |
| description | String | 错误的概要描述 | 2.3.2 |
| details | String | 错误的详细信息 | 2.3.2 |
| elaboration | String | 保留字段,默认为null | 2.3.2 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.3.2 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.3.2 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 2.3.2 |
| uuid | String | 资源的UUID,唯一标示该资源 | 2.3.2 |
| certificate | String | 证书内容 | 2.3.2 |
| description | String | 资源的详细描述 | 2.3.2 |
| createDate | Timestamp | 创建时间 | 2.3.2 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3.2 |
| listeners | List | 详情参考listeners | 2.3.2 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3.2 | |
| listenerUuid | String | 2.3.2 | |
| certificateUuid | String | 2.3.2 | |
| createDate | Timestamp | 创建时间 | 2.3.2 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3.2 |
SDK示例
Java
SDK
CreateCertificateAction action = new CreateCertificateAction();
action.name = "www.domain.com";
action.certificate = "-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAECggEAd0Ixye3O8ifNgLAE1K0MBcyouMNWCMFJzHX34nO9vkILdKk3imWBWUgxrUn713CezOjZJn6PjuEyujs7UmpUA22Cyp27PqbHkAvNM02SUxx1bB19UIapSGaM7gvmTvkoAxT4+DVD9NL4wktgp22HYnNImEgs+AaxLB9sokEvC6mxP23pv7LfnK4EDH2b+1pbE++VheVIBZxK+mTdxPRgwQBJv2VtK0LRDndnRU8gmB5O0KBnep3sCsAKmWtAJf37L9lWgc9QC7LysnuMsZ10KuoeQndVetsAazBARHhUdLd1fWQqbLklC6NtcLodoS+umuvHArKx6LungK4cmNyGZQKBgQD8abrSQXOJuNNx7N+EJjn3hjc3FOrSAgGY7LCiQ/qEP8EkWslxotRHKqKqz78oq4RApT/fBV17HqPe67IJ5xhwYlIUASzs8WvigRV6ITSZv92G8iOSdW7ALZzF4q+tc2RgPvW/pZPaHoxfNU6TC/QW35qAslPWab7Tel9cGb030wKBgQDLf+OLfUfhJUq8mZ3L8U1p1QLpSJNx282hGVg+OXwpuQQZ5qrxkhzF/xBYCjmMQMEfxLtRJxYTPgkHcTp9ozl4ICXdmHpL8V+E5PBQjbCBNCbE8kjXngCc0wiKsLJIUWmKoVRoq7dAaUz3INzkp0tujf8aa7DzC+1C4+j5nvFlkwKBgCTAKClQyke1F2Qw/uI4xpvZeNSWQRJOpHjljVoy15jFx5NJfKcE9C9gb8q68LQ1NM5MwR3xpAi3D1j3rDZw5UgHqLes7CObiv+xl7TufMAeBV0OiEtcucFVYswVE0sH0AeLYzCCJSLO69U457XVObbS26X9UOOZBeW4nYXFYZ1tAoGBAJgnShIcnObZRDUZwqMfC5uqud+E9UF3cBsY4SK9RnnHrSpUjtHKRps/5498LaURMZS4OroluFqw0n1vCqWvqiOIHee+vwoTMjEiIBCKsEMapDYzVYVpzNl07HkOPm7V+Ey/7WXJpl2RngtU1fRcpYjGwMuXY5mF/GM8FxC055bjAoGATYqGLqNhbZ0SVhgSs/2vHMlJYaHwJLlYPS+9OWk5JycvYSbfa9/rc2jblieuE5MseHQFqU0BRVeHqY4dqpQpeO45fC5h9vqC4Lp2LaXbwtxv5Z0cb/o8ecXuSXeF/G2PQvhK44IQFb9RSLuQBUMp/gX6UNVS0dP+7dDpim5n2zY=-----END PRIVATE KEY----------BEGIN CERTIFICATE-----MIID4zCCAsugAwIBAgIJAJWhNGBNfAtTMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYDVQQGEwJDTjELMAkGA1UECAwCU0gxCzAJBgNVBAcMAlNIMQ8wDQYDVQQKDAZaU1RBQ0sxDDAKBgNVBAsMA0RldjEZMBcGA1UEAwwQc2hpeGluLnpzdGFjay5pbzEkMCIGCSqGSIb3DQEJARYVc2hpeGluLnJ1YW5AenN0YWNrLmlvMB4XDTE4MDMyMDA0NDYwM1oXDTE5MDMyMDA0NDYwM1owgYcxCzAJBgNVBAYTAkNOMQswCQYDVQQIDAJTSDELMAkGA1UEBwwCU0gxDzANBgNVBAoMBlpTVEFDSzEMMAoGA1UECwwDRGV2MRkwFwYDVQQDDBBzaGl4aW4uenN0YWNrLmlvMSQwIgYJKoZIhvcNAQkBFhVzaGl4aW4ucnVhbkB6c3RhY2suaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAGjUDBOMB0GA1UdDgQWBBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAfBgNVHSMEGDAWgBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDH5POu4FmmAsHXe49gL6Y6Kdcti2FTBYse7ru05V4URGsU5Dab25mATqp7z7WCiv9pTdlC0KoJieML7rpLiLskBBLpToU8bUigX96q5dmMtDbLSmGeYfhHj9tHeYuGv0U2eRcN2Jo6xlHrl6X3RazO/h/9mCW6sLAGgaJ9MyQAiqRfYaO+ToBqdbHmBEwmueaOO7wFy9UbU7F/CdeEzblKdWRMKQgf5yxA6pXYghjPWWNAqElxnnXskBmjMhYaDfGCQuRK5Ma362ax0i8UGqYfMnflBgy1qX8+f7VjyWokK4tcjep72TTYkIVBGbwBMqk2U2v5qslBRmM5+pmAESJq-----END CERTIFICATE-----";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateCertificateAction.Result res = action.call();Python
SDK
CreateCertificateAction action = CreateCertificateAction()
action.name = "www.domain.com"
action.certificate = "-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAECggEAd0Ixye3O8ifNgLAE1K0MBcyouMNWCMFJzHX34nO9vkILdKk3imWBWUgxrUn713CezOjZJn6PjuEyujs7UmpUA22Cyp27PqbHkAvNM02SUxx1bB19UIapSGaM7gvmTvkoAxT4+DVD9NL4wktgp22HYnNImEgs+AaxLB9sokEvC6mxP23pv7LfnK4EDH2b+1pbE++VheVIBZxK+mTdxPRgwQBJv2VtK0LRDndnRU8gmB5O0KBnep3sCsAKmWtAJf37L9lWgc9QC7LysnuMsZ10KuoeQndVetsAazBARHhUdLd1fWQqbLklC6NtcLodoS+umuvHArKx6LungK4cmNyGZQKBgQD8abrSQXOJuNNx7N+EJjn3hjc3FOrSAgGY7LCiQ/qEP8EkWslxotRHKqKqz78oq4RApT/fBV17HqPe67IJ5xhwYlIUASzs8WvigRV6ITSZv92G8iOSdW7ALZzF4q+tc2RgPvW/pZPaHoxfNU6TC/QW35qAslPWab7Tel9cGb030wKBgQDLf+OLfUfhJUq8mZ3L8U1p1QLpSJNx282hGVg+OXwpuQQZ5qrxkhzF/xBYCjmMQMEfxLtRJxYTPgkHcTp9ozl4ICXdmHpL8V+E5PBQjbCBNCbE8kjXngCc0wiKsLJIUWmKoVRoq7dAaUz3INzkp0tujf8aa7DzC+1C4+j5nvFlkwKBgCTAKClQyke1F2Qw/uI4xpvZeNSWQRJOpHjljVoy15jFx5NJfKcE9C9gb8q68LQ1NM5MwR3xpAi3D1j3rDZw5UgHqLes7CObiv+xl7TufMAeBV0OiEtcucFVYswVE0sH0AeLYzCCJSLO69U457XVObbS26X9UOOZBeW4nYXFYZ1tAoGBAJgnShIcnObZRDUZwqMfC5uqud+E9UF3cBsY4SK9RnnHrSpUjtHKRps/5498LaURMZS4OroluFqw0n1vCqWvqiOIHee+vwoTMjEiIBCKsEMapDYzVYVpzNl07HkOPm7V+Ey/7WXJpl2RngtU1fRcpYjGwMuXY5mF/GM8FxC055bjAoGATYqGLqNhbZ0SVhgSs/2vHMlJYaHwJLlYPS+9OWk5JycvYSbfa9/rc2jblieuE5MseHQFqU0BRVeHqY4dqpQpeO45fC5h9vqC4Lp2LaXbwtxv5Z0cb/o8ecXuSXeF/G2PQvhK44IQFb9RSLuQBUMp/gX6UNVS0dP+7dDpim5n2zY=-----END PRIVATE KEY----------BEGIN CERTIFICATE-----MIID4zCCAsugAwIBAgIJAJWhNGBNfAtTMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYDVQQGEwJDTjELMAkGA1UECAwCU0gxCzAJBgNVBAcMAlNIMQ8wDQYDVQQKDAZaU1RBQ0sxDDAKBgNVBAsMA0RldjEZMBcGA1UEAwwQc2hpeGluLnpzdGFjay5pbzEkMCIGCSqGSIb3DQEJARYVc2hpeGluLnJ1YW5AenN0YWNrLmlvMB4XDTE4MDMyMDA0NDYwM1oXDTE5MDMyMDA0NDYwM1owgYcxCzAJBgNVBAYTAkNOMQswCQYDVQQIDAJTSDELMAkGA1UEBwwCU0gxDzANBgNVBAoMBlpTVEFDSzEMMAoGA1UECwwDRGV2MRkwFwYDVQQDDBBzaGl4aW4uenN0YWNrLmlvMSQwIgYJKoZIhvcNAQkBFhVzaGl4aW4ucnVhbkB6c3RhY2suaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAGjUDBOMB0GA1UdDgQWBBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAfBgNVHSMEGDAWgBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDH5POu4FmmAsHXe49gL6Y6Kdcti2FTBYse7ru05V4URGsU5Dab25mATqp7z7WCiv9pTdlC0KoJieML7rpLiLskBBLpToU8bUigX96q5dmMtDbLSmGeYfhHj9tHeYuGv0U2eRcN2Jo6xlHrl6X3RazO/h/9mCW6sLAGgaJ9MyQAiqRfYaO+ToBqdbHmBEwmueaOO7wFy9UbU7F/CdeEzblKdWRMKQgf5yxA6pXYghjPWWNAqElxnnXskBmjMhYaDfGCQuRK5Ma362ax0i8UGqYfMnflBgy1qX8+f7VjyWokK4tcjep72TTYkIVBGbwBMqk2U2v5qslBRmM5+pmAESJq-----END CERTIFICATE-----"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateCertificateAction.Result res = action.call()删除证书(DeleteCertificate)
API请求
URLs
DELETE zstack/v1/certificates/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/certificates/378bccfaa21d3b7fbb7b9bb014d1541c参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.3.2 | |
| deleteMode (可选) | String | body | 2.3.2 | ||
| systemTags (可选) | List | body | 2.3.2 | ||
| userTags (可选) | List | body | 2.3.2 |
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
DeleteCertificateAction action = new DeleteCertificateAction();
action.uuid = "378bccfaa21d3b7fbb7b9bb014d1541c";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteCertificateAction.Result res = action.call();Python
SDK
DeleteCertificateAction action = DeleteCertificateAction()
action.uuid = "378bccfaa21d3b7fbb7b9bb014d1541c"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteCertificateAction.Result res = action.call()查询证书(QueryCertificate)
API请求
URLs
GET zstack/v1/certificates
GET zstack/v1/certificates/{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/certificatescurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/certificates/658b7eeb6e2e3ea28c4243ae24e20e07可查询字段
运行CLI命令行工具,输入QueryCertificate并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"name": "www.domain.com",
"certificate": "-----BEGIN PRIVATE KEY-----MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAECggEAd0Ixye3O8ifNgLAE1K0MBcyouMNWCMFJzHX34nO9vkILdKk3imWBWUgxrUn713CezOjZJn6PjuEyujs7UmpUA22Cyp27PqbHkAvNM02SUxx1bB19UIapSGaM7gvmTvkoAxT4+DVD9NL4wktgp22HYnNImEgs+AaxLB9sokEvC6mxP23pv7LfnK4EDH2b+1pbE++VheVIBZxK+mTdxPRgwQBJv2VtK0LRDndnRU8gmB5O0KBnep3sCsAKmWtAJf37L9lWgc9QC7LysnuMsZ10KuoeQndVetsAazBARHhUdLd1fWQqbLklC6NtcLodoS+umuvHArKx6LungK4cmNyGZQKBgQD8abrSQXOJuNNx7N+EJjn3hjc3FOrSAgGY7LCiQ/qEP8EkWslxotRHKqKqz78oq4RApT/fBV17HqPe67IJ5xhwYlIUASzs8WvigRV6ITSZv92G8iOSdW7ALZzF4q+tc2RgPvW/pZPaHoxfNU6TC/QW35qAslPWab7Tel9cGb030wKBgQDLf+OLfUfhJUq8mZ3L8U1p1QLpSJNx282hGVg+OXwpuQQZ5qrxkhzF/xBYCjmMQMEfxLtRJxYTPgkHcTp9ozl4ICXdmHpL8V+E5PBQjbCBNCbE8kjXngCc0wiKsLJIUWmKoVRoq7dAaUz3INzkp0tujf8aa7DzC+1C4+j5nvFlkwKBgCTAKClQyke1F2Qw/uI4xpvZeNSWQRJOpHjljVoy15jFx5NJfKcE9C9gb8q68LQ1NM5MwR3xpAi3D1j3rDZw5UgHqLes7CObiv+xl7TufMAeBV0OiEtcucFVYswVE0sH0AeLYzCCJSLO69U457XVObbS26X9UOOZBeW4nYXFYZ1tAoGBAJgnShIcnObZRDUZwqMfC5uqud+E9UF3cBsY4SK9RnnHrSpUjtHKRps/5498LaURMZS4OroluFqw0n1vCqWvqiOIHee+vwoTMjEiIBCKsEMapDYzVYVpzNl07HkOPm7V+Ey/7WXJpl2RngtU1fRcpYjGwMuXY5mF/GM8FxC055bjAoGATYqGLqNhbZ0SVhgSs/2vHMlJYaHwJLlYPS+9OWk5JycvYSbfa9/rc2jblieuE5MseHQFqU0BRVeHqY4dqpQpeO45fC5h9vqC4Lp2LaXbwtxv5Z0cb/o8ecXuSXeF/G2PQvhK44IQFb9RSLuQBUMp/gX6UNVS0dP+7dDpim5n2zY\u003d-----END PRIVATE KEY----------BEGIN CERTIFICATE-----MIID4zCCAsugAwIBAgIJAJWhNGBNfAtTMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYDVQQGEwJDTjELMAkGA1UECAwCU0gxCzAJBgNVBAcMAlNIMQ8wDQYDVQQKDAZaU1RBQ0sxDDAKBgNVBAsMA0RldjEZMBcGA1UEAwwQc2hpeGluLnpzdGFjay5pbzEkMCIGCSqGSIb3DQEJARYVc2hpeGluLnJ1YW5AenN0YWNrLmlvMB4XDTE4MDMyMDA0NDYwM1oXDTE5MDMyMDA0NDYwM1owgYcxCzAJBgNVBAYTAkNOMQswCQYDVQQIDAJTSDELMAkGA1UEBwwCU0gxDzANBgNVBAoMBlpTVEFDSzEMMAoGA1UECwwDRGV2MRkwFwYDVQQDDBBzaGl4aW4uenN0YWNrLmlvMSQwIgYJKoZIhvcNAQkBFhVzaGl4aW4ucnVhbkB6c3RhY2suaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIpe/zscx2QwunyYPHusMCt/5n4LWSi4pzfsUfvzo4txTe7WwWZ4H3iEA7RwSkg49xx3Rn6jh9S0RMncqUjTxPUjlZKoN0w+nU2AsxXhbV8AiS3UoWJcZUtlfLAjeUKajy1F5hyxHsKJlmOozAcXObunzuaWkKvjchqMSX54+E02h7JNtzv9lagr0MsB4hkraanlpQWr4mv3N7D8kBz9wplMeJXeo4awls3kygiN63TnIQ5hzF7jNxR3uSFYQtUfLnzKcj4aIma62tDf6pkpQ3S+SprGs/OkGvEldNus6FXTO7ixFyORM27ka3Rmv6SYQQquV+950xfb42n9s2UE0pAgMBAAGjUDBOMB0GA1UdDgQWBBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAfBgNVHSMEGDAWgBTg8PjTZJmWSDA9GPTJ7K5wWTPVsjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDH5POu4FmmAsHXe49gL6Y6Kdcti2FTBYse7ru05V4URGsU5Dab25mATqp7z7WCiv9pTdlC0KoJieML7rpLiLskBBLpToU8bUigX96q5dmMtDbLSmGeYfhHj9tHeYuGv0U2eRcN2Jo6xlHrl6X3RazO/h/9mCW6sLAGgaJ9MyQAiqRfYaO+ToBqdbHmBEwmueaOO7wFy9UbU7F/CdeEzblKdWRMKQgf5yxA6pXYghjPWWNAqElxnnXskBmjMhYaDfGCQuRK5Ma362ax0i8UGqYfMnflBgy1qX8+f7VjyWokK4tcjep72TTYkIVBGbwBMqk2U2v5qslBRmM5+pmAESJq-----END CERTIFICATE-----"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 0.6 |
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| certificate | String | 证书内容 | 2.3.2 |
| description | String | 资源的详细描述 | 0.6 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| listeners | List | 详情参考listeners | 0.6 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3.2 | |
| listenerUuid | String | 0.6 | |
| certificateUuid | String | 2.3.2 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
QueryCertificateAction action = new QueryCertificateAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryCertificateAction.Result res = action.call();Python
SDK
QueryCertificateAction action = QueryCertificateAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryCertificateAction.Result res = action.call()添加证书到负载均衡(AddCertificateToLoadBalancerListener)
API请求
URLs
POST zstack/v1/load-balancers/listeners/{listenerUuid}/certificateHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"certificateUuid": "707589c97d89315691794dbdadb1252f"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"certificateUuid":"707589c97d89315691794dbdadb1252f"}}' \
http://localhost:8080/zstack/v1/load-balancers/listeners/706687a8f42538e99a8519b9cbd61440/certificate参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| certificateUuid | String | body(包含在params结构中) | 2.3.2 | ||
| listenerUuid | String | url | 2.3.2 | ||
| systemTags (可选) | List | body | 0.6 | ||
| userTags (可选) | List | body | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-Lb-Listener",
"loadBalancerUuid": "5f6148b3eafc37e59a6cfcb30f3bd8b8",
"vmNicRefs": [
{
"listenerUuid": "5f6148b3eafc37e59a6cfcb30f3bd8b8",
"vmNicUuid": "202ca851ff3e30d0b43a6176008a7bed"
}
],
"certificateRefs": [
{
"listenerUuid": "5f6148b3eafc37e59a6cfcb30f3bd8b8",
"certificateUuid": "fb20f7baabb93cc9a2e0e713c5dfd870"
}
]
}
}#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 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
| certificateRefs | List | 详情参考certificateRefs | 2.3.2 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3.2 | |
| listenerUuid | String | 2.3.2 | |
| certificateUuid | String | 2.3.2 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
AddCertificateToLoadBalancerListenerAction action = new AddCertificateToLoadBalancerListenerAction();
action.certificateUuid = "707589c97d89315691794dbdadb1252f";
action.listenerUuid = "706687a8f42538e99a8519b9cbd61440";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddCertificateToLoadBalancerListenerAction.Result res = action.call();Python
SDK
AddCertificateToLoadBalancerListenerAction action = AddCertificateToLoadBalancerListenerAction()
action.certificateUuid = "707589c97d89315691794dbdadb1252f"
action.listenerUuid = "706687a8f42538e99a8519b9cbd61440"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddCertificateToLoadBalancerListenerAction.Result res = action.call()从负载均衡移除证书(RemoveCertificateFromLoadBalancerListener)
API请求
URLs
DELETE zstack/v1/load-balancers/listeners/{listenerUuid}/certificateHeaders
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/load-balancers/listeners/7b49bf59591335e8a9e3aa35c0949c0a/certificate参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| certificateUuid | String | body | 2.3.2 | ||
| listenerUuid | String | url | 2.3.2 | ||
| systemTags (可选) | List | body | 2.3.2 | ||
| userTags (可选) | List | body | 2.3.2 |
API返回
返回示例
{
"inventory": {
"name": "Test-Lb-Listener",
"loadBalancerUuid": "12c0b22525323a3d98d77a0fc722dfe6",
"vmNicRefs": [
{
"listenerUuid": "12c0b22525323a3d98d77a0fc722dfe6",
"vmNicUuid": "e1fffed46c7c329ea08eef0cf3162319"
}
]
}
}#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 |
| loadBalancerUuid | String | 负载均衡器UUID | 0.6 |
| instancePort | Integer | 0.6 | |
| loadBalancerPort | Integer | 0.6 | |
| protocol | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| vmNicRefs | List | 详情参考vmNicRefs | 0.6 |
| certificateRefs | List | 详情参考certificateRefs | 0.6 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 0.6 | |
| listenerUuid | String | 0.6 | |
| vmNicUuid | String | 云主机网卡UUID | 0.6 |
| status | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3.2 | |
| listenerUuid | String | 2.3.2 | |
| certificateUuid | String | 2.3.2 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
RemoveCertificateFromLoadBalancerListenerAction action = new RemoveCertificateFromLoadBalancerListenerAction();
action.certificateUuid = "ae54af269496365d99c558a7f4137a6c";
action.listenerUuid = "7b49bf59591335e8a9e3aa35c0949c0a";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveCertificateFromLoadBalancerListenerAction.Result res = action.call();Python
SDK
RemoveCertificateFromLoadBalancerListenerAction action = RemoveCertificateFromLoadBalancerListenerAction()
action.certificateUuid = "ae54af269496365d99c558a7f4137a6c"
action.listenerUuid = "7b49bf59591335e8a9e3aa35c0949c0a"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveCertificateFromLoadBalancerListenerAction.Result res = action.call()更新证书信息(UpdateCertificate)
API请求
URLs
PUT zstack/v1/certificates/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateCertificate": {
"name": "Test-Cer",
"description": "info"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateCertificate":{"name":"Test-Cer","description":"info"}}' \
http://localhost:8080/zstack/v1/certificates/e7fbc0a186d838f7b6fb0ae5133300ec/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| name (可选) | String | body(包含在updateCertificate结构中) | 资源名称 | 0.6 | |
| description (可选) | String | body(包含在updateCertificate结构中) | 资源的详细描述 | 0.6 | |
| resourceUuid (可选) | String | body(包含在updateCertificate结构中) | 0.6 | ||
| systemTags (可选) | List | body | 0.6 | ||
| userTags (可选) | List | body | 0.6 |
API返回
返回示例
{
"inventory": {
"name": "Test-Cer",
"certificate": "123456789",
"description": "Certificate for lb"
}
}#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
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 0.6 |
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| certificate | String | 证书内容 | 0.6 |
| description | String | 资源的详细描述 | 0.6 |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
| listeners | List | 详情参考listeners | 2.3 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 2.3.2 | |
| listenerUuid | String | 2.3 | |
| certificateUuid | String | 2.3.2 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
UpdateCertificateAction action = new UpdateCertificateAction();
action.uuid = "e7fbc0a186d838f7b6fb0ae5133300ec";
action.name = "Test-Cer";
action.description = "info";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateCertificateAction.Result res = action.call();Python
SDK
UpdateCertificateAction action = UpdateCertificateAction()
action.uuid = "e7fbc0a186d838f7b6fb0ae5133300ec"
action.name = "Test-Cer"
action.description = "info"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateCertificateAction.Result res = action.call()添加转发规则到访问控制策略组(AddAccessControlListRedirectRule)
API请求
URLs
POST zstack/v1/access-control-lists/{aclUuid}/redirectRulesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "redirect-rule",
"domain": "zstack.io",
"url": "/cloud"
},
"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":"redirect-rule","domain":"zstack.io","url":"/cloud"}}' http://localhost:8080/zstack/v1/access-control-lists/f1ca42b8901833fbac7cbd06e3b4d7cb/redirectRules参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name (可选) | String | body(包含在params结构中) | 资源名称 | 4.1.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.1.0 | |
| domain (可选) | String | body(包含在params结构中) | 域名 | 4.1.0 | |
| url (可选) | String | body(包含在params结构中) | url | 4.1.0 | |
| aclUuid | String | url | 访问控制策略组的唯一标识 | 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": {
"aclUuid": "3e05577ffa823e759d67e112aa7e5f80",
"ipEntries": "192.168.48.0/24"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.1.0 |
| inventory | AccessControlListEntryInventory | 详情参考inventory | 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 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| aclUuid | String | 4.1.0 | |
| type | String | 4.1.0 | |
| name | String | 资源名称 | 4.1.0 |
| domain | String | 4.1.0 | |
| url | String | 4.1.0 | |
| ipEntries | String | 4.1.0 | |
| description | String | 资源的详细描述 | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
SDK示例
Java
SDK
AddAccessControlListRedirectRuleAction action = new AddAccessControlListRedirectRuleAction();
action.name = "redirect-rule";
action.domain = "zstack.io";
action.url = "/cloud";
action.aclUuid = "f1ca42b8901833fbac7cbd06e3b4d7cb";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddAccessControlListRedirectRuleAction.Result res = action.call();Python
SDK
AddAccessControlListRedirectRuleAction action = AddAccessControlListRedirectRuleAction()
action.name = "redirect-rule"
action.domain = "zstack.io"
action.url = "/cloud"
action.aclUuid = "f1ca42b8901833fbac7cbd06e3b4d7cb"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddAccessControlListRedirectRuleAction.Result res = action.call()修改控制策略组转发规则名称(ChangeAccessControlListRedirectRule)
API请求
URLs
POST zstack/v1/access-control-lists/redirectRules/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeAccessControlListRedirectRule": {
"name": "acl-group"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeAccessControlListRedirectRule":{"name":"acl-group"}}' http://localhost:8080/zstack/v1/access-control-lists/redirectRules/e58d9a2195c432fda747f33a884028ed/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.1.0 | |
| name (可选) | String | body(包含在changeAccessControlListRedirectRule结构中) | 转发规则名称 | 4.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.1.0 | |
| userTags (可选) | List | body | 用户标签 | 4.1.0 |
API返回
返回示例
{
"inventory": {
"aclUuid": "bc9854edd56938f59a7ad06d2ffddb77",
"type": "RedirectRule",
"name": "acl-group",
"domain": "zstack.io",
"url": "/test"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.1.0 |
| inventory | AccessControlListEntryInventory | 详情参考inventory | 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 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.1.0 |
| aclUuid | String | 4.1.0 | |
| type | String | 4.1.0 | |
| name | String | 资源名称 | 4.1.0 |
| domain | String | 4.1.0 | |
| url | String | 4.1.0 | |
| ipEntries | String | 4.1.0 | |
| description | String | 资源的详细描述 | 4.1.0 |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
SDK示例
Java
SDK
ChangeAccessControlListRedirectRuleAction action = new ChangeAccessControlListRedirectRuleAction();
action.uuid = "e58d9a2195c432fda747f33a884028ed";
action.name = "acl-group";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeAccessControlListRedirectRuleAction.Result res = action.call();Python
SDK
ChangeAccessControlListRedirectRuleAction action = ChangeAccessControlListRedirectRuleAction()
action.uuid = "e58d9a2195c432fda747f33a884028ed"
action.name = "acl-group"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeAccessControlListRedirectRuleAction.Result res = action.call()修改访问控制组绑定的后端服务器组(ChangeAccessControlListServerGroup)
API请求
URLs
POST zstack/v1/load-balancers/listener/acl/{aclUuid}/servergroup/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeAccessControlListServerGroup": {
"serverGroupUuids": [
"89bdb613cad93f5f881b9127986d4d1b"
],
"listenerUuid": "e58cd2cd6a633f999909c7e5ce448e07"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeAccessControlListServerGroup":{"serverGroupUuids":["89bdb613cad93f5f881b9127986d4d1b"],"listenerUuid":"e58cd2cd6a633f999909c7e5ce448e07"}}' http://localhost:8080/zstack/v1/load-balancers/listener/acl/07f904e5fbc8312992dd85a99c8edc9b/servergroup/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| serverGroupUuids | List | body(包含在changeAccessControlListServerGroup结构中) | 负载均衡器服务器组uuid | 4.1.0 | |
| listenerUuid | String | body(包含在changeAccessControlListServerGroup结构中) | 监听器唯一标识 | 4.1.0 | |
| aclUuid | String | url | 访问控制策略组的唯一标识 | 4.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.1.0 | |
| userTags (可选) | List | body | 用户标签 | 4.1.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
ChangeAccessControlListServerGroupAction action = new ChangeAccessControlListServerGroupAction();
action.serverGroupUuids = asList("89bdb613cad93f5f881b9127986d4d1b");
action.listenerUuid = "e58cd2cd6a633f999909c7e5ce448e07";
action.aclUuid = "07f904e5fbc8312992dd85a99c8edc9b";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeAccessControlListServerGroupAction.Result res = action.call();Python
SDK
ChangeAccessControlListServerGroupAction action = ChangeAccessControlListServerGroupAction()
action.serverGroupUuids = [89bdb613cad93f5f881b9127986d4d1b]
action.listenerUuid = "e58cd2cd6a633f999909c7e5ce448e07"
action.aclUuid = "07f904e5fbc8312992dd85a99c8edc9b"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeAccessControlListServerGroupAction.Result res = action.call()获取负载均衡监听器访问控制策略条目(GetLoadBalancerListenerACLEntries)
API请求
URLs
POST zstack/v1/load-balancers/listeners/access-control-lists/entriesHeaders
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/load-balancers/listeners/access-control-lists/entries参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| listenerUuids (可选) | List | query | 4.1.0 | ||
| type (可选) | String | query | 4.1.0 | ||
| systemTags (可选) | List | query | 系统标签 | 4.1.0 | |
| userTags (可选) | List | query | 用户标签 | 4.1.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
GetLoadBalancerListenerACLEntriesAction action = new GetLoadBalancerListenerACLEntriesAction();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetLoadBalancerListenerACLEntriesAction.Result res = action.call();Python
SDK
GetLoadBalancerListenerACLEntriesAction action = GetLoadBalancerListenerACLEntriesAction()
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetLoadBalancerListenerACLEntriesAction.Result res = action.call()创建访问控制策略组(CreateAccessControlList)
API请求
URLs
POST zstack/v1/access-control-listsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "acl-group",
"ipVersion": 4.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":{"name":"acl-group","ipVersion":4.0}}' http://localhost:8080/zstack/v1/access-control-lists参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 3.9.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 3.9.0 | |
| ipVersion (可选) | Integer | body(包含在params结构中) | IP协议版本 |
|
3.9.0 |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 3.9.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 3.9.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.9.0 | |
| userTags (可选) | List | body | 用户标签 | 3.9.0 |
API返回
返回示例
{
"inventory": {
"name": "acl-group",
"ipVersion": 4.0
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.9.0 |
| inventory | AccessControlListInventory | 详情参考inventory | 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 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.9.0 |
| name | String | 资源名称 | 3.9.0 |
| ipVersion | Integer | IP地址版本 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
| entries | List | 详情参考entries | 3.9.0 |
#entries
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.9.0 |
| aclUuid | String | 访问控制策略组的唯一标识 | 3.9.0 |
| ipEntries | String | IP组 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
SDK示例
Java
SDK
CreateAccessControlListAction action = new CreateAccessControlListAction();
action.name = "acl-group";
action.ipVersion = 4.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateAccessControlListAction.Result res = action.call();Python
SDK
CreateAccessControlListAction action = CreateAccessControlListAction()
action.name = "acl-group"
action.ipVersion = 4.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateAccessControlListAction.Result res = action.call()删除访问控制策略组(DeleteAccessControlList)
API请求
URLs
DELETE zstack/v1/access-control-lists/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/access-control-lists/f2a128d702d83f4389ad82d425b0e74e参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.9.0 | |
| deleteMode (可选) | String | body | 删除模式(Permissive / Enforcing,Permissive) | 3.9.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.9.0 | |
| userTags (可选) | List | body | 用户标签 | 3.9.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
DeleteAccessControlListAction action = new DeleteAccessControlListAction();
action.uuid = "f2a128d702d83f4389ad82d425b0e74e";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteAccessControlListAction.Result res = action.call();Python
SDK
DeleteAccessControlListAction action = DeleteAccessControlListAction()
action.uuid = "f2a128d702d83f4389ad82d425b0e74e"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteAccessControlListAction.Result res = action.call()查询访问控制策略组(QueryAccessControlList)
API请求
URLs
GET zstack/v1/access-control-listsGET zstack/v1/access-control-lists/{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/access-control-listscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/access-control-lists/83146a1d0dd93c6abc53788a6434bd57可查询字段
运行CLI命令行工具,输入QueryAccessControlList并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "0abdbd20b8173ccf89f881309b5e40d0",
"name": "acl-group"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| name | String | 资源名称 | 3.9.0 |
| ipVersion | Integer | IP地址版本 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
| entries | List | 详情参考entries | 3.9.0 |
#entries
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.9.0 |
| aclUuid | String | 访问控制策略组的唯一标识 | 3.9.0 |
| ipEntries | String | IP组 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
SDK示例
Java
SDK
QueryAccessControlListAction action = new QueryAccessControlListAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryAccessControlListAction.Result res = action.call();Python
SDK
QueryAccessControlListAction action = QueryAccessControlListAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryAccessControlListAction.Result res = action.call()向访问控制策略组添加IP组(AddAccessControlListEntry)
API请求
URLs
POST zstack/v1/access-control-lists/{aclUuid}/ipentriesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"entries": "192.168.12.1,192.168.48.0/24"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"entries":"192.168.12.1,192.168.48.0/24"}}' http://localhost:8080/zstack/v1/access-control-lists/101a39fcb6c538a4914d0ae7fa8468a4/ipentries参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| aclUuid | String | url | 访问控制策略组的唯一标识 | 3.9.0 | |
| entries | String | body(包含在params结构中) | IP组 | 3.9.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 3.9.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 3.9.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 3.9.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.9.0 | |
| userTags (可选) | List | body | 用户标签 | 3.9.0 |
API返回
返回示例
{
"inventory": {
"aclUuid": "3e05577ffa823e759d67e112aa7e5f80",
"ipEntries": "192.168.48.0/24"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.9.0 |
| inventory | AccessControlListEntryInventory | 详情参考inventory | 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 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.9.0 |
| aclUuid | String | 访问控制策略组的唯一标识 | 3.9.0 |
| ipEntries | String | IP组 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
SDK示例
Java
SDK
AddAccessControlListEntryAction action = new AddAccessControlListEntryAction();
action.aclUuid = "101a39fcb6c538a4914d0ae7fa8468a4";
action.entries = "192.168.12.1,192.168.48.0/24";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddAccessControlListEntryAction.Result res = action.call();Python
SDK
AddAccessControlListEntryAction action = AddAccessControlListEntryAction()
action.aclUuid = "101a39fcb6c538a4914d0ae7fa8468a4"
action.entries = "192.168.12.1,192.168.48.0/24"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddAccessControlListEntryAction.Result res = action.call()删除访问控制策略的IP组(RemoveAccessControlListEntry)
API请求
URLs
DELETE zstack/v1/access-control-lists/{aclUuid}/ipentries/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/access-control-lists/c151f0f90e143c26b6667e70ebbe5b7b/ipentries/22c9d1f964b63f6abc52fed8437042a3参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| aclUuid | String | url | 访问控制策略组的唯一标识 | 3.9.0 | |
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.9.0 | |
| deleteMode (可选) | String | body | 删除模式(Permissive / Enforcing,Permissive) | 3.9.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.9.0 | |
| userTags (可选) | List | body | 用户标签 | 3.9.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
RemoveAccessControlListEntryAction action = new RemoveAccessControlListEntryAction();
action.aclUuid = "c151f0f90e143c26b6667e70ebbe5b7b";
action.uuid = "22c9d1f964b63f6abc52fed8437042a3";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveAccessControlListEntryAction.Result res = action.call();Python
SDK
RemoveAccessControlListEntryAction action = RemoveAccessControlListEntryAction()
action.aclUuid = "c151f0f90e143c26b6667e70ebbe5b7b"
action.uuid = "22c9d1f964b63f6abc52fed8437042a3"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveAccessControlListEntryAction.Result res = action.call()添加监听器的访问控制策略(AddAccessControlListToLoadBalancer)
API请求
URLs
POST zstack/v1/load-balancers/listeners/{listenerUuid}/access-control-listsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"aclUuids": [
"25e10ecdb6d63b598899c1103d2cdf46"
],
"aclType": "black"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"aclUuids":["25e10ecdb6d63b598899c1103d2cdf46"],"aclType":"black"}}' http://localhost:8080/zstack/v1/load-balancers/listeners/19c1a4dcaea637da86e3ecbb6a3a5f6e/access-control-lists参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| aclUuids | List | body(包含在params结构中) | 访问控制策略组的唯一标识 | 3.9.0 | |
| aclType | String | body(包含在params结构中) | 访问控制策略类型 |
|
4.1.0 |
| listenerUuid | String | url | 监听器唯一标识 | 3.9.0 | |
| serverGroupUuids (可选) | List | body | 负载均衡器服务器组uuid | 4.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.9.0 | |
| userTags (可选) | List | body | 用户标签 | 3.9.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
AddAccessControlListToLoadBalancerAction action = new AddAccessControlListToLoadBalancerAction();
action.aclUuids = asList("25e10ecdb6d63b598899c1103d2cdf46");
action.aclType = "black";
action.listenerUuid = "19c1a4dcaea637da86e3ecbb6a3a5f6e";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddAccessControlListToLoadBalancerAction.Result res = action.call();Python
SDK
AddAccessControlListToLoadBalancerAction action = AddAccessControlListToLoadBalancerAction()
action.aclUuids = [25e10ecdb6d63b598899c1103d2cdf46]
action.aclType = "black"
action.listenerUuid = "19c1a4dcaea637da86e3ecbb6a3a5f6e"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddAccessControlListToLoadBalancerAction.Result res = action.call()删除监听器访问控制策略(RemoveAccessControlListFromLoadBalancer)
API请求
URLs
DELETE zstack/v1/load-balancers/listeners/{listenerUuid}/access-control-listsHeaders
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/load-balancers/listeners/0299b3e26af5350c8db91930723d2065/access-control-lists参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| aclUuids | List | body | 访问控制策略组唯一标识 | 3.9.0 | |
| listenerUuid | String | url | 监听器唯一标识 | 3.9.0 | |
| serverGroupUuids (可选) | List | body | 4.1.0 | ||
| systemTags (可选) | List | body | 系统标签 | 3.9.0 | |
| userTags (可选) | List | body | 用户标签 | 3.9.0 |
API返回
返回示例
{
"inventory": {
"uuid": "fb39937eaf5b3564af4b23d48802d438",
"name": "test-lb-listener"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.9.0 |
| inventory | LoadBalancerListenerInventory | 详情参考inventory | 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 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.9.0 |
| name | String | 资源名称 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| loadBalancerUuid | String | 负载均衡器UUID | 3.9.0 |
| instancePort | Integer | 3.9.0 | |
| loadBalancerPort | Integer | 3.9.0 | |
| protocol | String | 3.9.0 | |
| serverGroupUuid | String | 4.1.3 | |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
| vmNicRefs | List | 详情参考vmNicRefs | 3.9.0 |
| aclRefs | List | 详情参考aclRefs | 3.9.0 |
| certificateRefs | List | 详情参考certificateRefs | 3.9.0 |
| serverGroupRefs | List | 详情参考serverGroupRefs | 4.1.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 3.9.0 | |
| listenerUuid | String | 3.9.0 | |
| vmNicUuid | String | 云主机网卡UUID | 3.9.0 |
| status | String | 3.9.0 | |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 3.9.0 |
| listenerUuid | String | 监听器唯一标识 | 3.9.0 |
| aclUuid | String | 访问策略组唯一标识 | 3.9.0 |
| type | String | 访问策略类型 | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 3.9.0 | |
| listenerUuid | String | 3.9.0 | |
| certificateUuid | String | 3.9.0 | |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
#serverGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.1.0 | |
| listenerUuid | String | 4.1.0 | |
| serverGroupUuid | String | 4.1.0 | |
| createDate | Timestamp | 创建时间 | 4.1.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.1.0 |
SDK示例
Java
SDK
RemoveAccessControlListFromLoadBalancerAction action = new RemoveAccessControlListFromLoadBalancerAction();
action.aclUuids = asList("027bfcc0fddf39e3be51badf4777c0cd");
action.listenerUuid = "0299b3e26af5350c8db91930723d2065";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveAccessControlListFromLoadBalancerAction.Result res = action.call();Python
SDK
RemoveAccessControlListFromLoadBalancerAction action = RemoveAccessControlListFromLoadBalancerAction()
action.aclUuids = [027bfcc0fddf39e3be51badf4777c0cd]
action.listenerUuid = "0299b3e26af5350c8db91930723d2065"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveAccessControlListFromLoadBalancerAction.Result res = action.call()获取监听器可加载L3网络(GetCandidateL3NetworksForLoadBalancer)
API请求
URLs
GET zstack/v1/load-balancers/listeners/{listenerUuid}/networks/candidatesHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/load-balancers/listeners/6ecc19bdec0139499e3abf6c51bca683/networks/candidates?limit=1000.0&start=0.0参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| listenerUuid | String | url | 3.9.0 | ||
| limit (可选) | Integer | query | 3.9.0 | ||
| start (可选) | Integer | query | 3.9.0 | ||
| systemTags (可选) | List | query | 系统标签 | 3.9.0 | |
| userTags (可选) | List | query | 用户标签 | 3.9.0 |
API返回
返回示例
{
"inventories": [
{
"name": "Test-L3Network",
"l2NetworkUuid": "7631f86a65af335fb1496afe8e7ac9ee"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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 |
| name | String | 资源名称 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| type | String | 3.9.0 | |
| zoneUuid | String | 区域UUID | 3.9.0 |
| l2NetworkUuid | String | 二层网络UUID | 3.9.0 |
| state | String | 3.9.0 | |
| dnsDomain | String | 3.9.0 | |
| system | Boolean | 3.9.0 | |
| category | String | 3.9.0 | |
| ipVersion | Integer | 3.9.0 | |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
| dns | List | 3.9.0 | |
| ipRanges | List | 详情参考ipRanges | 3.9.0 |
| networkServices | List | 详情参考networkServices | 3.9.0 |
| hostRoute | List | 详情参考hostRoute | 3.9.0 |
#ipRanges
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.9.0 |
| l3NetworkUuid | String | 三层网络UUID | 3.9.0 |
| name | String | 资源名称 | 3.9.0 |
| description | String | 资源的详细描述 | 3.9.0 |
| startIp | String | 3.9.0 | |
| endIp | String | 3.9.0 | |
| netmask | String | 3.9.0 | |
| gateway | String | 3.9.0 | |
| networkCidr | String | 3.9.0 | |
| ipVersion | Integer | 3.9.0 | |
| addressMode | String | 3.9.0 | |
| prefixLen | Integer | 3.9.0 | |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
#networkServices
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| l3NetworkUuid | String | 三层网络UUID | 3.9.0 |
| networkServiceProviderUuid | String | 网络服务提供模块UUID | 3.9.0 |
| networkServiceType | String | 3.9.0 |
#hostRoute
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 3.9.0 | |
| l3NetworkUuid | String | 三层网络UUID | 3.9.0 |
| prefix | String | 3.9.0 | |
| nexthop | String | 3.9.0 | |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
SDK示例
Java
SDK
GetCandidateL3NetworksForLoadBalancerAction action = new GetCandidateL3NetworksForLoadBalancerAction();
action.listenerUuid = "6ecc19bdec0139499e3abf6c51bca683";
action.limit = 1000.0;
action.start = 0.0;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateL3NetworksForLoadBalancerAction.Result res = action.call();Python
SDK
GetCandidateL3NetworksForLoadBalancerAction action = GetCandidateL3NetworksForLoadBalancerAction()
action.listenerUuid = "6ecc19bdec0139499e3abf6c51bca683"
action.limit = 1000.0
action.start = 0.0
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetCandidateL3NetworksForLoadBalancerAction.Result res = action.call()创建负载均衡器服务器组(CreateLoadBalancerServerGroup)
API请求
URLs
POST zstack/v1/load-balancers/{loadBalancerUuid}/servergroupsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "create-Lb"
},
"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":"create-Lb"}}' http://localhost:8080/zstack/v1/load-balancers/7cac70b63aad32dda436e95bba3c34cb/servergroups参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 4.0.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.0.0 | |
| loadBalancerUuid | String | url | 负载均衡器UUID | 4.0.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.0.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.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
CreateLoadBalancerServerGroupAction action = new CreateLoadBalancerServerGroupAction();
action.name = "create-Lb";
action.loadBalancerUuid = "7cac70b63aad32dda436e95bba3c34cb";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateLoadBalancerServerGroupAction.Result res = action.call();Python
SDK
CreateLoadBalancerServerGroupAction action = CreateLoadBalancerServerGroupAction()
action.name = "create-Lb"
action.loadBalancerUuid = "7cac70b63aad32dda436e95bba3c34cb"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateLoadBalancerServerGroupAction.Result res = action.call()删除负载均衡器服务器组(DeleteLoadBalancerServerGroup)
API请求
URLs
DELETE zstack/v1/load-balancers/servergroups/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/load-balancers/servergroups/1e1fef3a79563c1080210f094ea62898?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 服务器组uuid | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.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
DeleteLoadBalancerServerGroupAction action = new DeleteLoadBalancerServerGroupAction();
action.uuid = "1e1fef3a79563c1080210f094ea62898";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteLoadBalancerServerGroupAction.Result res = action.call();Python
SDK
DeleteLoadBalancerServerGroupAction action = DeleteLoadBalancerServerGroupAction()
action.uuid = "1e1fef3a79563c1080210f094ea62898"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteLoadBalancerServerGroupAction.Result res = action.call()更新负载均衡器服务器组(UpdateLoadBalancerServerGroup)
API请求
URLs
PUT zstack/v1/load-balancers/servergroups/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateLoadBalancerServerGroup": {
"name": "updateServerGroup",
"description": "updateServerGroup"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateLoadBalancerServerGroup":{"name":"updateServerGroup","description":"updateServerGroup"}}' http://localhost:8080/zstack/v1/load-balancers/servergroups/e29a3b43310933718221e4c314c8af6f/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.0.0 | |
| name(可选) | String | body(包含在updateLoadBalancerServerGroup结构中) | 资源名称 | 4.0.0 | |
| description (可选) | String | body(包含在updateLoadBalancerServerGroup结构中) | 资源的详细描述 | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.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
UpdateLoadBalancerServerGroupAction action = new UpdateLoadBalancerServerGroupAction();
action.uuid = "e29a3b43310933718221e4c314c8af6f";
action.name = "updateServerGroup";
action.description = "updateServerGroup";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateLoadBalancerServerGroupAction.Result res = action.call();Python
SDK
UpdateLoadBalancerServerGroupAction action = UpdateLoadBalancerServerGroupAction()
action.uuid = "e29a3b43310933718221e4c314c8af6f"
action.name = "updateServerGroup"
action.description = "updateServerGroup"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateLoadBalancerServerGroupAction.Result res = action.call()查询负载均衡器服务器组(QueryLoadBalancerServerGroup)
API请求
URLs
GET zstack/v1/load-balancers/servergroupsGET zstack/v1/load-balancers/servergroups/{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/load-balancers/servergroupscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/load-balancers/servergroups/3d12c68915bd391ca7cea7a95249b47b可查询字段
运行CLI命令行工具,输入QueryLoadBalancerServerGroup并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "f523d90c41b136279b523052149c9690",
"name": "Test-LbServerGroup"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventories | List | 详情参考inventories | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| loadBalancerUuid | String | 负载均衡器UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| listenerServerGroupRefs | List | 详情参考listenerServerGroupRefs | 4.0.0 |
| serverIps | List | 详情参考serverIps | 4.0.0 |
| vmNicRefs | List | 详情参考vmNicRefs | 4.0.0 |
#listenerServerGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#serverIps
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 4.0.0 | |
| description | String | 资源的详细描述 | 4.0.0 |
| serverGroupUuid | String | 4.0.0 | |
| ipAddress | String | 4.0.0 | |
| weight | Long | 4.0.0 | |
| status | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| weight | Long | 4.0.0 | |
| status | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
QueryLoadBalancerServerGroupAction action = new QueryLoadBalancerServerGroupAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryLoadBalancerServerGroupAction.Result res = action.call();Python
SDK
QueryLoadBalancerServerGroupAction action = QueryLoadBalancerServerGroupAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryLoadBalancerServerGroupAction.Result res = action.call()添加后端服务器到服务器组(AddBackendServerToServerGroup)
API请求
URLs
POST zstack/v1/load-balancers/servergroups/{serverGroupUuid}/backendserversHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"vmNics": [
{
"70856dd6ee693c30b28e6233850fc494": "10"
}
],
"servers": [
{
"192.168.1.1": "20"
}
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"vmNics":[{"70856dd6ee693c30b28e6233850fc494":"10"}],"servers":[{"192.168.1.1":"20"}]}}' http://localhost:8080/zstack/v1/load-balancers/servergroups/9e9c1f7a74ce3cb6b51d4f938537f765/backendservers参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| serverGroupUuid | String | url | 负载均衡器服务器组uuid | 4.0.0 | |
| vmNics (可选) | List | body(包含在params结构中) | 后端服务器网卡 | 4.0.0 | |
| servers (可选) | List | body(包含在params结构中) | 后端服务器IP | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.0 |
API返回
返回示例
{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
AddBackendServerToServerGroupAction action = new AddBackendServerToServerGroupAction();
action.serverGroupUuid = "9e9c1f7a74ce3cb6b51d4f938537f765";
action.vmNics = asList([70856dd6ee693c30b28e6233850fc494:10]);
action.servers = asList([192.168.1.1:20]);
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddBackendServerToServerGroupAction.Result res = action.call();Python
SDK
AddBackendServerToServerGroupAction action = AddBackendServerToServerGroupAction()
action.serverGroupUuid = "9e9c1f7a74ce3cb6b51d4f938537f765"
action.vmNics = [[70856dd6ee693c30b28e6233850fc494:10]]
action.servers = [[192.168.1.1:20]]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddBackendServerToServerGroupAction.Result res = action.call()从服务器组移除后端服务器(RemoveBackendServerFromServerGroup)
API请求
URLs
PUT zstack/v1/load-balancers/servergroups/{serverGroupUuid}/backendservers/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"removeBackendServerFromServerGroup": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"removeBackendServerFromServerGroup":{}}' http://localhost:8080/zstack/v1/load-balancers/servergroups/af07cb06004d35b6af53aa12c8438f22/backendservers/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| serverGroupUuid | String | url | 4.0.0 | ||
| vmNicUuids (可选) | List | body(包含在removeBackendServerFromServerGroup结构中) | 4.0.0 | ||
| serverIps (可选) | List | body(包含在removeBackendServerFromServerGroup结构中) | 4.0.0 | ||
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.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
RemoveBackendServerFromServerGroupAction action = new RemoveBackendServerFromServerGroupAction();
action.serverGroupUuid = "af07cb06004d35b6af53aa12c8438f22";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveBackendServerFromServerGroupAction.Result res = action.call();Python
SDK
RemoveBackendServerFromServerGroupAction action = RemoveBackendServerFromServerGroupAction()
action.serverGroupUuid = "af07cb06004d35b6af53aa12c8438f22"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveBackendServerFromServerGroupAction.Result res = action.call()添加服务器组到负载均衡监听器(AddServerGroupToLoadBalancerListener)
API请求
URLs
POST zstack/v1/load-balancers/listeners/{listenerUuid}/servergroupsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"serverGroupUuid": "05a078a03cad32a6a4c5c05f418eb27a"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"serverGroupUuid":"05a078a03cad32a6a4c5c05f418eb27a"}}' http://localhost:8080/zstack/v1/load-balancers/listeners/cb64a1d37cae35449ca3f9813150f073/servergroups参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| serverGroupUuid | String | body(包含在params结构中) | 负载均衡器服务器组uuid | 4.0.0 | |
| listenerUuid | String | url | 负载均衡器监听器uuid | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "2bdca7f6bea932cd8373468d971ef61f",
"name": "Test-Listener",
"loadBalancerUuid": "32a8cf1442b43724bef1aa2f94aa97e4",
"instancePort": 80.0,
"loadBalancerPort": 80.0,
"protocol": "http"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventory | LoadBalancerListenerInventory | 详情参考inventory | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| loadBalancerUuid | String | 负载均衡器UUID | 4.0.0 |
| instancePort | Integer | 4.0.0 | |
| loadBalancerPort | Integer | 4.0.0 | |
| protocol | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| vmNicRefs | List | 详情参考vmNicRefs | 4.0.0 |
| aclRefs | List | 详情参考alcRefs | 4.0.0 |
| certificateRefs | List | 详情参考certificateRefs | 4.0.0 |
| serverGroupRefs | List | 详情参考serverGroupRefs | 4.0.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| status | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#alcRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 4.0.0 |
| listenerUuid | String | 监听器唯一标识 | 4.0.0 |
| aclUuid | String | 访问策略组唯一标识 | 4.0.0 |
| type | String | 访问策略类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| certificateUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#serverGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
AddServerGroupToLoadBalancerListenerAction action = new AddServerGroupToLoadBalancerListenerAction();
action.serverGroupUuid = "05a078a03cad32a6a4c5c05f418eb27a";
action.listenerUuid = "cb64a1d37cae35449ca3f9813150f073";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddServerGroupToLoadBalancerListenerAction.Result res = action.call();Python
SDK
AddServerGroupToLoadBalancerListenerAction action = AddServerGroupToLoadBalancerListenerAction()
action.serverGroupUuid = "05a078a03cad32a6a4c5c05f418eb27a"
action.listenerUuid = "cb64a1d37cae35449ca3f9813150f073"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddServerGroupToLoadBalancerListenerAction.Result res = action.call()从负载均衡监听器移除服务器组(RemoveServerGroupFromLoadBalancerListener)
API请求
URLs
DELETE zstack/v1/load-balancers/listeners/{listenerUuid}/servergroupsHeaders
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/load-balancers/listeners/f75607a7bf203e07bab135d9363bd17d/servergroups参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| serverGroupUuid | String | body | 服务器组uuid | 4.0.0 | |
| listenerUuid | String | url | 监听器uuid | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "0938faf74f7d34cd97d35427b1b562e5",
"name": "Test-Listener",
"loadBalancerUuid": "e64028f4b3f33896a49d4da1d4e51a8f",
"instancePort": 80.0,
"loadBalancerPort": 80.0,
"protocol": "http"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventory | LoadBalancerListenerInventory | 详情参考inventory | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| loadBalancerUuid | String | 负载均衡器UUID | 4.0.0 |
| instancePort | Integer | 4.0.0 | |
| loadBalancerPort | Integer | 4.0.0 | |
| protocol | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| vmNicRefs | List | 详情参考vmNicRefs | 4.0.0 |
| aclRefs | List | 详情参考aclRefs | 4.0.0 |
| certificateRefs | List | 详情参考certificateRefs | 4.0.0 |
| serverGroupRefs | List | 详情参考serverGroupRefs | 4.0.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| status | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 4.0.0 |
| listenerUuid | String | 监听器唯一标识 | 4.0.0 |
| aclUuid | String | 访问策略组唯一标识 | 4.0.0 |
| type | String | 访问策略类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| certificateUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#serverGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
RemoveServerGroupFromLoadBalancerListenerAction action = new RemoveServerGroupFromLoadBalancerListenerAction();
action.serverGroupUuid = "f08184f0cda83505bc2a703b5e589160";
action.listenerUuid = "f75607a7bf203e07bab135d9363bd17d";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveServerGroupFromLoadBalancerListenerAction.Result res = action.call();Python
SDK
RemoveServerGroupFromLoadBalancerListenerAction action = RemoveServerGroupFromLoadBalancerListenerAction()
action.serverGroupUuid = "f08184f0cda83505bc2a703b5e589160"
action.listenerUuid = "f75607a7bf203e07bab135d9363bd17d"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveServerGroupFromLoadBalancerListenerAction.Result res = action.call()更新负载均衡后端服务器参数(ChangeLoadBalancerBackendServer)
API请求
URLs
PUT zstack/v1/load-balancers/servergroups/{serverGroupUuid}/backendserver/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeLoadBalancerBackendServer": {
"vmNics": [
{
"c1409d7fc54333d5ad3163d406620c01": "10"
}
],
"servers": [
{
"192.168.1.1": "20"
}
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeLoadBalancerBackendServer":{"vmNics":[{"c1409d7fc54333d5ad3163d406620c01":"10"}],"servers":[{"192.168.1.1":"20"}]}}' http://localhost:8080/zstack/v1/load-balancers/servergroups/892bcf49ff433372952a09db93f851e6/backendserver/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| serverGroupUuid | String | url | 负载均衡器服务器组uuid | 4.0.0 | |
| vmNics (可选) | List | body(包含在changeLoadBalancerBackendServer结构中) | 后端服务器组网卡 | 4.0.0 | |
| servers (可选) | List | body(包含在changeLoadBalancerBackendServer结构中) | 后端服务器组网ip | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.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
ChangeLoadBalancerBackendServerAction action = new ChangeLoadBalancerBackendServerAction();
action.serverGroupUuid = "892bcf49ff433372952a09db93f851e6";
action.vmNics = asList([c1409d7fc54333d5ad3163d406620c01:10]);
action.servers = asList([192.168.1.1:20]);
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeLoadBalancerBackendServerAction.Result res = action.call();Python
SDK
ChangeLoadBalancerBackendServerAction action = ChangeLoadBalancerBackendServerAction()
action.serverGroupUuid = "892bcf49ff433372952a09db93f851e6"
action.vmNics = [[c1409d7fc54333d5ad3163d406620c01:10]]
action.servers = [[192.168.1.1:20]]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeLoadBalancerBackendServerAction.Result res = action.call()获取可供负载均衡器服务器组添加的云主机网卡(GetCandidateVmNicsForLoadBalancerServerGroup)
API请求
URLs
GET zstack/v1/load-balancers/servergroups/candidate-nicsHeaders
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/load-balancers/servergroups/candidate-nics?servergroupUuid=8e19c3c1227635b39799ff85cd2e01b4&loadBalancerUuid=786271b7eea63f0785ed67e3a36bfe35参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| servergroupUuid (可选) | String | query | 4.0.0 | ||
| loadBalancerUuid (可选) | String | query | 负载均衡器UUID | 4.0.0 | |
| systemTags (可选) | List | query | 系统标签 | 4.0.0 | |
| userTags (可选) | List | query | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventories": [
{
"uuid": "798c7b209b34303aa9a48593594bccee",
"vmInstanceUuid": "c158c92bdda63bbb97c8dea6d284350a",
"usedIpUuid": "702b0b20aebe3d4a880abe851940462d",
"l3NetworkUuid": "a1cebc14f5b236578049889964686822",
"ip": "192.168.1.10",
"mac": "00:0c:29:bd:99:fc",
"hypervisorType": "KVM",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"deviceId": 0.0,
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventories | List | 详情参考inventories | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| mac | String | MAC地址 | 4.0.0 |
| hypervisorType | String | 虚拟化类型 | 4.0.0 |
| netmask | String | 子网掩码 | 4.0.0 |
| gateway | String | 网关 | 4.0.0 |
| metaData | String | 4.0.0 | |
| ipVersion | Integer | IP地址版本 | 4.0.0 |
| deviceId | Integer | 设备ID | 4.0.0 |
| type | String | 网卡类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| usedIps | List | 详情参考usedIps | 4.0.0 |
#usedIps
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| ipRangeUuid | String | IP段UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ipVersion | Integer | IP协议号 | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| netmask | String | 网络掩码 | 4.0.0 |
| gateway | String | 网关地址 | 4.0.0 |
| usedFor | String | 4.0.0 | |
| ipInLong | long | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
GetCandidateVmNicsForLoadBalancerServerGroupAction action = new GetCandidateVmNicsForLoadBalancerServerGroupAction();
action.servergroupUuid = "8e19c3c1227635b39799ff85cd2e01b4";
action.loadBalancerUuid = "786271b7eea63f0785ed67e3a36bfe35";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetCandidateVmNicsForLoadBalancerServerGroupAction.Result res = action.call();Python
SDK
GetCandidateVmNicsForLoadBalancerServerGroupAction action = GetCandidateVmNicsForLoadBalancerServerGroupAction()
action.servergroupUuid = "8e19c3c1227635b39799ff85cd2e01b4"
action.loadBalancerUuid = "786271b7eea63f0785ed67e3a36bfe35"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetCandidateVmNicsForLoadBalancerServerGroupAction.Result res = action.call()创建性能独享型负载均衡器组(CreateSlbGroup)
API请求
URLs
POST zstack/v1/load-balancers/slb/groupsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "slbGroup",
"slbOfferingUuid": "f66b4cd06a2d3ae985e40514502c3ea3",
"frontEndL3NetworkUuid": "307ab51e198a35bab0bcc517f849aa46",
"backendType": "VYOS",
"deployType": "Direct",
"description": "this is a slb spec for test"
},
"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":"slbGroup","slbOfferingUuid":"f66b4cd06a2d3ae985e40514502c3ea3","frontEndL3NetworkUuid":"307ab51e198a35bab0bcc517f849aa46","backendType":"VYOS","deployType":"Direct","description":"this is a slb spec for test"}}' http://localhost:8080/zstack/v1/load-balancers/slb/groups参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 4.0.0 | |
| slbOfferingUuid | String | body(包含在params结构中) | 高性能实例规格uuid | 4.0.0 | |
| frontEndL3NetworkUuid | String | body(包含在params结构中) | 前端网络uuid | 4.0.0 | |
| backendL3NetworkUuids (可选) | List | body(包含在params结构中) | 后端所属网络uuid | 4.0.0 | |
| backendType (可选) | String | body(包含在params结构中) | 后端类型 |
|
4.0.0 |
| deployType (可选) | String | body(包含在params结构中) | 部署类型 |
|
4.0.0 |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.0.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.0.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventory": {}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventory | SlbGroupInventory | 详情参考inventory | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| backendType | String | 4.0.0 | |
| deployType | String | 4.0.0 | |
| slbOfferingUuid | String | 4.0.0 | |
| description | String | 资源的详细描述 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| slbVms | List | 详情参考slbVms | 4.0.0 |
| lbs | List | 详情参考lbs | 4.0.0 |
| networks | List | 详情参考networks | 4.0.0 |
#slbVms
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| publicNetworkUuid | String | 4.0.0 | |
| virtualRouterVips | List | 4.0.0 | |
| applianceVmType | String | 4.0.0 | |
| managementNetworkUuid | String | 4.0.0 | |
| defaultRouteL3NetworkUuid | String | 4.0.0 | |
| status | String | 4.0.0 | |
| agentPort | Integer | 4.0.0 | |
| haStatus | String | 4.0.0 | |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| zoneUuid | String | 区域UUID | 4.0.0 |
| clusterUuid | String | 集群UUID | 4.0.0 |
| imageUuid | String | 镜像UUID | 4.0.0 |
| hostUuid | String | 物理机UUID | 4.0.0 |
| lastHostUuid | String | 4.0.0 | |
| instanceOfferingUuid | String | 计算规格UUID | 4.0.0 |
| rootVolumeUuid | String | 根云盘UUID | 4.0.0 |
| platform | String | 4.0.0 | |
| defaultL3NetworkUuid | String | 4.0.0 | |
| type | String | 4.0.0 | |
| hypervisorType | String | 4.0.0 | |
| memorySize | Long | 4.0.0 | |
| cpuNum | Integer | 4.0.0 | |
| cpuSpeed | Long | 4.0.0 | |
| allocatorStrategy | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| state | String | 4.0.0 | |
| vmNics | List | 详情参考vmNics | 4.0.0 |
| allVolumes | List | 详情参考allVolumes | 4.0.0 |
| vmCdRoms | List | 详情参考vmCdRoms | 4.0.0 |
#vmNics
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| mac | String | MAC地址 | 4.0.0 |
| hypervisorType | String | 虚拟化类型 | 4.0.0 |
| netmask | String | 子网掩码 | 4.0.0 |
| gateway | String | 网关 | 4.0.0 |
| metaData | String | 4.0.0 | |
| ipVersion | Integer | IP地址版本 | 4.0.0 |
| deviceId | Integer | 设备ID | 4.0.0 |
| type | String | 网卡类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| usedIps | List | 详情参考usedIps | 4.0.0 |
#usedIps
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| ipRangeUuid | String | IP段UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ipVersion | Integer | IP协议号 | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| netmask | String | 网络掩码 | 4.0.0 |
| gateway | String | 网关地址 | 4.0.0 |
| usedFor | String | 4.0.0 | |
| ipInLong | long | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#allVolumes
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| primaryStorageUuid | String | 主存储UUID | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| diskOfferingUuid | String | 云盘规格UUID | 4.0.0 |
| rootImageUuid | String | 云盘根镜像UUID | 4.0.0 |
| installPath | String | 云盘在主存储上的路径 | 4.0.0 |
| type | String | 云盘类型,数据云盘/根云盘 | 4.0.0 |
| format | String | 云盘格式 | 4.0.0 |
| size | Long | 云盘大小 | 4.0.0 |
| actualSize | Long | 云盘真实大小 | 4.0.0 |
| deviceId | Integer | 4.0.0 | |
| state | String | 云盘是否开启 | 4.0.0 |
| status | String | 云盘状态 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| isShareable | Boolean | 是否共享云盘 | 4.0.0 |
| volumeQos | String | 云盘Qos,格式如total=1048576 | 4.0.0 |
#vmCdRoms
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| deviceId | Integer | 光驱顺序号 | 4.0.0 |
| isoUuid | String | ISO镜像UUID | 4.0.0 |
| isoInstallPath | String | ISO镜像挂载路径 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#lbs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| name | String | 资源名称 | 4.0.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| state | String | 4.0.0 | |
| type | String | 4.0.0 | |
| vipUuid | String | VIP UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| listeners | List | 详情参考listeners | 4.0.0 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| loadBalancerUuid | String | 负载均衡器UUID | 4.0.0 |
| instancePort | Integer | 4.0.0 | |
| loadBalancerPort | Integer | 4.0.0 | |
| protocol | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| vmNicRefs | List | 详情参考vmNicRefs | 4.0.0 |
| aclRefs | List | 详情参考aclRefs | 4.0.0 |
| certificateRefs | List | 详情参考certificateRefs | 4.0.0 |
| serverGroupRefs | List | 详情参考serverGroupRefs | 4.0.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| status | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 4.0.0 |
| listenerUuid | String | 监听器唯一标识 | 4.0.0 |
| aclUuid | String | 访问策略组唯一标识 | 4.0.0 |
| type | String | 访问策略类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| certificateUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#serverGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#networks
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| l3NetworkCategory | String | 4.0.0 | |
| l3NetworkType | String | 4.0.0 | |
| type | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
CreateSlbGroupAction action = new CreateSlbGroupAction();
action.name = "slbGroup";
action.slbOfferingUuid = "f66b4cd06a2d3ae985e40514502c3ea3";
action.frontEndL3NetworkUuid = "307ab51e198a35bab0bcc517f849aa46";
action.backendType = "VYOS";
action.deployType = "Direct";
action.description = "this is a slb spec for test";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateSlbGroupAction.Result res = action.call();Python
SDK
CreateSlbGroupAction action = CreateSlbGroupAction()
action.name = "slbGroup"
action.slbOfferingUuid = "f66b4cd06a2d3ae985e40514502c3ea3"
action.frontEndL3NetworkUuid = "307ab51e198a35bab0bcc517f849aa46"
action.backendType = "VYOS"
action.deployType = "Direct"
action.description = "this is a slb spec for test"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateSlbGroupAction.Result res = action.call()删除性能独享型负载均衡器组(DeleteSlbGroup)
API请求
URLs
DELETE zstack/v1/load-balancers/slb/group/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/load-balancers/slb/group/d0b541dcd7d230378a0d97e6c1e07d48参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.0.0 | |
| deleteMode (可选) | String | body | 删除模式 |
|
4.0.0 |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.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
DeleteSlbGroupAction action = new DeleteSlbGroupAction();
action.uuid = "d0b541dcd7d230378a0d97e6c1e07d48";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteSlbGroupAction.Result res = action.call();Python
SDK
DeleteSlbGroupAction action = DeleteSlbGroupAction()
action.uuid = "d0b541dcd7d230378a0d97e6c1e07d48"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteSlbGroupAction.Result res = action.call()更新性能独享型负载均衡器组(UpdateSlbGroup)
API请求
URLs
PUT zstack/v1/load-balancers/slb/group/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateSlbGroup": {
"name": "slb",
"description": "slb test",
"slbOfferingUuid": "3996416dcab833258087ac86be993858"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateSlbGroup":{"name":"slb","description":"slb test","slbOfferingUuid":"3996416dcab833258087ac86be993858"}}' http://localhost:8080/zstack/v1/load-balancers/slb/group/fa13412281f333469e8009c531ef9755/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.0.0 | |
| name (可选) | String | body(包含在updateSlbGroup结构中) | 资源名称 | 4.0.0 | |
| description (可选) | String | body(包含在updateSlbGroup结构中) | 资源的详细描述 | 4.0.0 | |
| slbOfferingUuid (可选) | String | body(包含在updateSlbGroup结构中) | 性能独享型负载均衡器规格 | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventory": {
"name": "slb",
"backendType": "vyos",
"deployType": "direct",
"description": "slb test"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventory | SlbGroupInventory | 详情参考inventory | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| backendType | String | 4.0.0 | |
| deployType | String | 4.0.0 | |
| slbOfferingUuid | String | 4.0.0 | |
| description | String | 资源的详细描述 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| slbVms | List | 详情参考slbVms | 4.0.0 |
| lbs | List | 详情参考lbs | 4.0.0 |
| networks | List | 详情参考networks | 4.0.0 |
#slbVms
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| publicNetworkUuid | String | 4.0.0 | |
| virtualRouterVips | List | 4.0.0 | |
| applianceVmType | String | 4.0.0 | |
| managementNetworkUuid | String | 4.0.0 | |
| defaultRouteL3NetworkUuid | String | 4.0.0 | |
| status | String | 4.0.0 | |
| agentPort | Integer | 4.0.0 | |
| haStatus | String | 4.0.0 | |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| zoneUuid | String | 区域UUID | 4.0.0 |
| clusterUuid | String | 集群UUID | 4.0.0 |
| imageUuid | String | 镜像UUID | 4.0.0 |
| hostUuid | String | 物理机UUID | 4.0.0 |
| lastHostUuid | String | 4.0.0 | |
| instanceOfferingUuid | String | 计算规格UUID | 4.0.0 |
| rootVolumeUuid | String | 根云盘UUID | 4.0.0 |
| platform | String | 4.0.0 | |
| defaultL3NetworkUuid | String | 4.0.0 | |
| type | String | 4.0.0 | |
| hypervisorType | String | 4.0.0 | |
| memorySize | Long | 4.0.0 | |
| cpuNum | Integer | 4.0.0 | |
| cpuSpeed | Long | 4.0.0 | |
| allocatorStrategy | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| state | String | 4.0.0 | |
| vmNics | List | 详情参考vmNics | 4.0.0 |
| allVolumes | List | 详情参考allVolumes | 4.0.0 |
| vmCdRoms | List | 详情参考vmCdRoms | 4.0.0 |
#vmNics
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| mac | String | MAC地址 | 4.0.0 |
| hypervisorType | String | 虚拟化类型 | 4.0.0 |
| netmask | String | 子网掩码 | 4.0.0 |
| gateway | String | 网关 | 4.0.0 |
| metaData | String | 4.0.0 | |
| ipVersion | Integer | IP地址版本 | 4.0.0 |
| deviceId | Integer | 设备ID | 4.0.0 |
| type | String | 网卡类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| usedIps | List | 详情参考usedIps | 4.0.0 |
#usedIps
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| ipRangeUuid | String | IP段UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ipVersion | Integer | IP协议号 | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| netmask | String | 网络掩码 | 4.0.0 |
| gateway | String | 网关地址 | 4.0.0 |
| usedFor | String | 4.0.0 | |
| ipInLong | long | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#allVolumes
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| primaryStorageUuid | String | 主存储UUID | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| diskOfferingUuid | String | 云盘规格UUID | 4.0.0 |
| rootImageUuid | String | 云盘根镜像UUID | 4.0.0 |
| installPath | String | 云盘在主存储上的路径 | 4.0.0 |
| type | String | 云盘类型,数据云盘/根云盘 | 4.0.0 |
| format | String | 云盘格式 | 4.0.0 |
| size | Long | 云盘大小 | 4.0.0 |
| actualSize | Long | 云盘真实大小 | 4.0.0 |
| deviceId | Integer | 4.0.0 | |
| state | String | 云盘是否开启 | 4.0.0 |
| status | String | 云盘状态 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| isShareable | Boolean | 是否共享云盘 | 4.0.0 |
| volumeQos | String | 云盘Qos,格式如total=1048576 | 4.0.0 |
#vmCdRoms
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| deviceId | Integer | 光驱顺序号 | 4.0.0 |
| isoUuid | String | ISO镜像UUID | 4.0.0 |
| isoInstallPath | String | ISO镜像挂载路径 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#lbs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| name | String | 资源名称 | 4.0.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| state | String | 4.0.0 | |
| type | String | 4.0.0 | |
| vipUuid | String | VIP UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| listeners | List | 详情参考listeners | 4.0.0 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| loadBalancerUuid | String | 负载均衡器UUID | 4.0.0 |
| instancePort | Integer | 4.0.0 | |
| loadBalancerPort | Integer | 4.0.0 | |
| protocol | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| vmNicRefs | List | 详情参考vmNicRefs | 4.0.0 |
| aclRefs | List | 详情参考aclRefs | 4.0.0 |
| certificateRefs | List | 详情参考certificateRefs | 4.0.0 |
| serverGroupRefs | List | 详情参考serverGroupRefs | 4.0.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| status | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 4.0.0 |
| listenerUuid | String | 监听器唯一标识 | 4.0.0 |
| aclUuid | String | 访问策略组唯一标识 | 4.0.0 |
| type | String | 访问策略类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| certificateUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#serverGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#networks
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| l3NetworkCategory | String | 4.0.0 | |
| l3NetworkType | String | 4.0.0 | |
| type | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
UpdateSlbGroupAction action = new UpdateSlbGroupAction();
action.uuid = "fa13412281f333469e8009c531ef9755";
action.name = "slb";
action.description = "slb test";
action.slbOfferingUuid = "3996416dcab833258087ac86be993858";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateSlbGroupAction.Result res = action.call();Python
SDK
UpdateSlbGroupAction action = UpdateSlbGroupAction()
action.uuid = "fa13412281f333469e8009c531ef9755"
action.name = "slb"
action.description = "slb test"
action.slbOfferingUuid = "3996416dcab833258087ac86be993858"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateSlbGroupAction.Result res = action.call()查询性能独享型负载均衡器组(QuerySlbGroup)
API请求
URLs
GET zstack/v1/load-balancers/slb/groupsGET zstack/v1/load-balancers/slb/groups/{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/load-balancers/slb/groupscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/load-balancers/slb/groups/3cdd853e3e8d364b83f6e1e4965df7b0可查询字段
运行CLI命令行工具,输入QuerySlbGroup并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"name": "slb",
"backendType": "vyos",
"deployType": "direct",
"description": "slb test"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventories | List | 详情参考inventories | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| backendType | String | 4.0.0 | |
| deployType | String | 4.0.0 | |
| slbOfferingUuid | String | 4.0.0 | |
| description | String | 资源的详细描述 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| slbVms | List | 详情参考slbVms | 4.0.0 |
| lbs | List | 详情参考lbs | 4.0.0 |
| networks | List | 详情参考networks | 4.0.0 |
#slbVms
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| publicNetworkUuid | String | 4.0.0 | |
| virtualRouterVips | List | 4.0.0 | |
| applianceVmType | String | 4.0.0 | |
| managementNetworkUuid | String | 4.0.0 | |
| defaultRouteL3NetworkUuid | String | 4.0.0 | |
| status | String | 4.0.0 | |
| agentPort | Integer | 4.0.0 | |
| haStatus | String | 4.0.0 | |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| zoneUuid | String | 区域UUID | 4.0.0 |
| clusterUuid | String | 集群UUID | 4.0.0 |
| imageUuid | String | 镜像UUID | 4.0.0 |
| hostUuid | String | 物理机UUID | 4.0.0 |
| lastHostUuid | String | 4.0.0 | |
| instanceOfferingUuid | String | 计算规格UUID | 4.0.0 |
| rootVolumeUuid | String | 根云盘UUID | 4.0.0 |
| platform | String | 4.0.0 | |
| defaultL3NetworkUuid | String | 4.0.0 | |
| type | String | 4.0.0 | |
| hypervisorType | String | 4.0.0 | |
| memorySize | Long | 4.0.0 | |
| cpuNum | Integer | 4.0.0 | |
| cpuSpeed | Long | 4.0.0 | |
| allocatorStrategy | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| state | String | 4.0.0 | |
| vmNics | List | 详情参考vmNics | 4.0.0 |
| allVolumes | List | 详情参考allVolumes | 4.0.0 |
| vmCdRoms | List | 详情参考vmCdRoms | 4.0.0 |
#vmNics
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| mac | String | MAC地址 | 4.0.0 |
| hypervisorType | String | 虚拟化类型 | 4.0.0 |
| netmask | String | 子网掩码 | 4.0.0 |
| gateway | String | 网关 | 4.0.0 |
| metaData | String | 4.0.0 | |
| ipVersion | Integer | IP地址版本 | 4.0.0 |
| deviceId | Integer | 设备ID | 4.0.0 |
| type | String | 网卡类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| usedIps | List | 详情参考usedIps | 4.0.0 |
#usedIps
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| ipRangeUuid | String | IP段UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ipVersion | Integer | IP协议号 | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| netmask | String | 网络掩码 | 4.0.0 |
| gateway | String | 网关地址 | 4.0.0 |
| usedFor | String | 4.0.0 | |
| ipInLong | long | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#allVolumes
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| primaryStorageUuid | String | 主存储UUID | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| diskOfferingUuid | String | 云盘规格UUID | 4.0.0 |
| rootImageUuid | String | 云盘根镜像UUID | 4.0.0 |
| installPath | String | 云盘在主存储上的路径 | 4.0.0 |
| type | String | 云盘类型,数据云盘/根云盘 | 4.0.0 |
| format | String | 云盘格式 | 4.0.0 |
| size | Long | 云盘大小 | 4.0.0 |
| actualSize | Long | 云盘真实大小 | 4.0.0 |
| deviceId | Integer | 4.0.0 | |
| state | String | 云盘是否开启 | 4.0.0 |
| status | String | 云盘状态 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| isShareable | Boolean | 是否共享云盘 | 4.0.0 |
| volumeQos | String | 云盘Qos,格式如total=1048576 | 4.0.0 |
#vmCdRoms
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| deviceId | Integer | 光驱顺序号 | 4.0.0 |
| isoUuid | String | ISO镜像UUID | 4.0.0 |
| isoInstallPath | String | ISO镜像挂载路径 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#lbs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| name | String | 资源名称 | 4.0.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| state | String | 4.0.0 | |
| type | String | 4.0.0 | |
| vipUuid | String | VIP UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| listeners | List | 详情参考listeners | 4.0.0 |
#listeners
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| loadBalancerUuid | String | 负载均衡器UUID | 4.0.0 |
| instancePort | Integer | 4.0.0 | |
| loadBalancerPort | Integer | 4.0.0 | |
| protocol | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| vmNicRefs | List | 详情参考vmNicRefs | 4.0.0 |
| aclRefs | List | 详情参考aclRefs | 4.0.0 |
| certificateRefs | List | 详情参考certificateRefs | 4.0.0 |
| serverGroupRefs | List | 详情参考serverGroupRefs | 4.0.0 |
#vmNicRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| status | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#aclRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 资源唯一标识 | 4.0.0 |
| listenerUuid | String | 监听器唯一标识 | 4.0.0 |
| aclUuid | String | 访问策略组唯一标识 | 4.0.0 |
| type | String | 访问策略类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#certificateRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | Long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| certificateUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#serverGroupRefs
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| id | long | 4.0.0 | |
| listenerUuid | String | 4.0.0 | |
| serverGroupUuid | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#networks
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| l3NetworkCategory | String | 4.0.0 | |
| l3NetworkType | String | 4.0.0 | |
| type | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
QuerySlbGroupAction action = new QuerySlbGroupAction();
action.conditions = asList("uuid=8751fa7f60f4394ea89b9197961113f2");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QuerySlbGroupAction.Result res = action.call();Python
SDK
QuerySlbGroupAction action = QuerySlbGroupAction()
action.conditions = ["uuid=067ab1149fd733359870c11f10398cfd"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QuerySlbGroupAction.Result res = action.call()创建高性能实例性负载均衡器规格(CreateSlbOffering)
API请求
URLs
POST zstack/v1/instance-offerings/slbHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"zoneUuid": "bdbae55ce73b3e2ab8a4ae3a6df0b287",
"managementNetworkUuid": "7661f1f6d5a63d6eb3b9c3890ab3f9bb",
"imageUuid": "2bae0841f4c63f128efcf66d095d73b0",
"name": "SLB-Offering",
"cpuNum": 2.0,
"memorySize": 1024.0,
"sortKey": 0.0,
"type": "SLB"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"zoneUuid":"bdbae55ce73b3e2ab8a4ae3a6df0b287","managementNetworkUuid":"7661f1f6d5a63d6eb3b9c3890ab3f9bb","imageUuid":"2bae0841f4c63f128efcf66d095d73b0","name":"SLB-Offering","cpuNum":2.0,"memorySize":1024.0,"sortKey":0.0,"type":"SLB"}}' http://localhost:8080/zstack/v1/instance-offerings/slb参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| zoneUuid | String | body(包含在params结构中) | 区域UUID | 4.0.0 | |
| managementNetworkUuid | String | body(包含在params结构中) | 管理网络uuid | 4.0.0 | |
| imageUuid | String | body(包含在params结构中) | 镜像UUID | 4.0.0 | |
| name | String | body(包含在params结构中) | 资源名称 | 4.0.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 4.0.0 | |
| cpuNum | int | body(包含在params结构中) | 4.0.0 | ||
| memorySize | long | body(包含在params结构中) | 4.0.0 | ||
| allocatorStrategy (可选) | String | body(包含在params结构中) | 4.0.0 | ||
| sortKey (可选) | int | body(包含在params结构中) | 4.0.0 | ||
| type (可选) | String | body(包含在params结构中) | 4.0.0 | ||
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.0.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "3b0af4671cc93f619ef326a3c99d825c",
"name": "instanceOffering1",
"cpuNum": 2.0,
"cpuSpeed": 1.0,
"type": "UserVm",
"allocatorStrategy": "Mevoco",
"createDate": "Nov 14, 2017 10:20:57 PM",
"lastOpDate": "Nov 14, 2017 10:20:57 PM",
"state": "Enabled"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventory | InstanceOfferingInventory | 详情参考inventory | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| cpuNum | Integer | CPU数量 | 4.0.0 |
| cpuSpeed | Integer | CPU速度 | 4.0.0 |
| memorySize | Long | 内存大小 | 4.0.0 |
| type | String | 类型 | 4.0.0 |
| allocatorStrategy | String | 分配策略 | 4.0.0 |
| sortKey | Integer | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| state | String | 状态(启用,禁用) | 4.0.0 |
SDK示例
Java
SDK
CreateSlbOfferingAction action = new CreateSlbOfferingAction();
action.zoneUuid = "bdbae55ce73b3e2ab8a4ae3a6df0b287";
action.managementNetworkUuid = "7661f1f6d5a63d6eb3b9c3890ab3f9bb";
action.imageUuid = "2bae0841f4c63f128efcf66d095d73b0";
action.name = "SLB-Offering";
action.cpuNum = 2.0;
action.memorySize = 1024.0;
action.sortKey = 0.0;
action.type = "SLB";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateSlbOfferingAction.Result res = action.call();Python
SDK
CreateSlbOfferingAction action = CreateSlbOfferingAction()
action.zoneUuid = "bdbae55ce73b3e2ab8a4ae3a6df0b287"
action.managementNetworkUuid = "7661f1f6d5a63d6eb3b9c3890ab3f9bb"
action.imageUuid = "2bae0841f4c63f128efcf66d095d73b0"
action.name = "SLB-Offering"
action.cpuNum = 2.0
action.memorySize = 1024.0
action.sortKey = 0.0
action.type = "SLB"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateSlbOfferingAction.Result res = action.call()查询性能独享型负载均衡器规格(QuerySlbOffering)
API请求
URLs
GET zstack/v1/instance-offerings/slbGET zstack/v1/instance-offerings/slb/{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/instance-offerings/slbcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/instance-offerings/slb/cab5a4776ee936938d2cdd08860ee50a可查询字段
运行CLI命令行工具,输入QuerySlbOffering并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"managementNetworkUuid": "fdd51745e9ee3a4cb5bca03cf021c22f",
"zoneUuid": "305d0c8b5c5a3edd81a641911126c332",
"imageUuid": "b2f980076c3e3e6f8e9f3d4fd22bb7fb",
"name": "SLB-Offering",
"cpuNum": 2.0,
"cpuSpeed": 1.0,
"memorySize": 1024.0,
"type": "SLB"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventories | List | 详情参考inventories | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| managementNetworkUuid | String | 4.0.0 | |
| zoneUuid | String | 区域UUID | 4.0.0 |
| imageUuid | String | 镜像UUID | 4.0.0 |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| cpuNum | Integer | 4.0.0 | |
| cpuSpeed | Integer | 4.0.0 | |
| memorySize | Long | 4.0.0 | |
| type | String | 4.0.0 | |
| allocatorStrategy | String | 4.0.0 | |
| sortKey | Integer | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| state | String | 4.0.0 |
SDK示例
Java
SDK
QuerySlbOfferingAction action = new QuerySlbOfferingAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QuerySlbOfferingAction.Result res = action.call();Python
SDK
QuerySlbOfferingAction action = QuerySlbOfferingAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QuerySlbOfferingAction.Result res = action.call()创建高性能负载均衡器实例(CreateSlbInstance)
API请求
URLs
POST zstack/v1/load-balancers/slb/instancesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "SlbInstance",
"slbGroupUuid": "9f4fcda488f9346ca9c8ea9243d6d8e3",
"description": "this is a slb for test"
},
"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":"SlbInstance","slbGroupUuid":"9f4fcda488f9346ca9c8ea9243d6d8e3","description":"this is a slb for test"}}' http://localhost:8080/zstack/v1/load-balancers/slb/instances参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 4.0.0 | |
| slbGroupUuid | String | body(包含在params结构中) | 性能独享型负载均衡器组uuid | 4.0.0 | |
| description (可选) | List | body(包含在params结构中) | 资源的详细描述 | 4.0.0 | |
| zoneUuid (可选) | String | body(包含在params结构中) | 区域UUID |
|
4.0.0 |
| clusterUuid (可选) | String | body(包含在params结构中) | 集群UUID |
|
4.0.0 |
| hostUuid (可选) | String | body(包含在params结构中) | 物理机UUID | 4.0.0 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 4.0.0 | |
| tagUuids (可选) | List | body(包含在params结构中) | 标签UUID列表 | 4.0.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.0.0 | |
| userTags (可选) | List | body | 用户标签 | 4.0.0 |
API返回
返回示例
{
"inventory": {}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.0.0 |
| inventory | SlbVmInstanceInventory | 详情参考inventory | 4.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.0.0 |
| description | String | 错误的概要描述 | 4.0.0 |
| details | String | 错误的详细信息 | 4.0.0 |
| elaboration | String | 保留字段,默认为null | 4.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| slbGroupUuid | String | 4.0.0 | |
| publicNetworkUuid | String | 4.0.0 | |
| virtualRouterVips | List | 4.0.0 | |
| applianceVmType | String | 4.0.0 | |
| managementNetworkUuid | String | 4.0.0 | |
| defaultRouteL3NetworkUuid | String | 4.0.0 | |
| status | String | 4.0.0 | |
| agentPort | Integer | 4.0.0 | |
| haStatus | String | 4.0.0 | |
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| zoneUuid | String | 区域UUID | 4.0.0 |
| clusterUuid | String | 集群UUID | 4.0.0 |
| imageUuid | String | 镜像UUID | 4.0.0 |
| hostUuid | String | 物理机UUID | 4.0.0 |
| lastHostUuid | String | 4.0.0 | |
| instanceOfferingUuid | String | 计算规格UUID | 4.0.0 |
| rootVolumeUuid | String | 根云盘UUID | 4.0.0 |
| platform | String | 4.0.0 | |
| defaultL3NetworkUuid | String | 4.0.0 | |
| type | String | 4.0.0 | |
| hypervisorType | String | 4.0.0 | |
| memorySize | Long | 4.0.0 | |
| cpuNum | Integer | 4.0.0 | |
| cpuSpeed | Long | 4.0.0 | |
| allocatorStrategy | String | 4.0.0 | |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| state | String | 4.0.0 | |
| vmNics | List | 详情参考vmNics | 4.0.0 |
| allVolumes | List | 详情参考allVolumes | 4.0.0 |
| vmCdRoms | List | 详情参考vmCdRoms | 4.0.0 |
#vmNics
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| mac | String | MAC地址 | 4.0.0 |
| hypervisorType | String | 虚拟化类型 | 4.0.0 |
| netmask | String | 子网掩码 | 4.0.0 |
| gateway | String | 网关 | 4.0.0 |
| metaData | String | 4.0.0 | |
| ipVersion | Integer | IP地址版本 | 4.0.0 |
| deviceId | Integer | 设备ID | 4.0.0 |
| type | String | 网卡类型 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| usedIps | List | 详情参考usedIps | 4.0.0 |
#usedIps
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| ipRangeUuid | String | IP段UUID | 4.0.0 |
| l3NetworkUuid | String | 三层网络UUID | 4.0.0 |
| ipVersion | Integer | IP协议号 | 4.0.0 |
| ip | String | IP地址 | 4.0.0 |
| netmask | String | 网络掩码 | 4.0.0 |
| gateway | String | 网关地址 | 4.0.0 |
| usedFor | String | 4.0.0 | |
| ipInLong | long | 4.0.0 | |
| vmNicUuid | String | 云主机网卡UUID | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
#allVolumes
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| primaryStorageUuid | String | 主存储UUID | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| diskOfferingUuid | String | 云盘规格UUID | 4.0.0 |
| rootImageUuid | String | 云盘根镜像UUID | 4.0.0 |
| installPath | String | 云盘在主存储上的路径 | 4.0.0 |
| type | String | 云盘类型,数据云盘/根云盘 | 4.0.0 |
| format | String | 云盘格式 | 4.0.0 |
| size | Long | 云盘大小 | 4.0.0 |
| actualSize | Long | 云盘真实大小 | 4.0.0 |
| deviceId | Integer | 4.0.0 | |
| state | String | 云盘是否开启 | 4.0.0 |
| status | String | 云盘状态 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
| isShareable | Boolean | 是否共享云盘 | 4.0.0 |
| volumeQos | String | 云盘Qos,格式如total=1048576 | 4.0.0 |
#vmCdRoms
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 4.0.0 |
| vmInstanceUuid | String | 云主机UUID | 4.0.0 |
| deviceId | Integer | 光驱顺序号 | 4.0.0 |
| isoUuid | String | ISO镜像UUID | 4.0.0 |
| isoInstallPath | String | ISO镜像挂载路径 | 4.0.0 |
| name | String | 资源名称 | 4.0.0 |
| description | String | 资源的详细描述 | 4.0.0 |
| createDate | Timestamp | 创建时间 | 4.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 4.0.0 |
SDK示例
Java
SDK
CreateSlbInstanceAction action = new CreateSlbInstanceAction();
action.name = "SlbInstance";
action.slbGroupUuid = "9f4fcda488f9346ca9c8ea9243d6d8e3";
action.description = "this is a slb for test";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateSlbInstanceAction.Result res = action.call();Python
SDK
CreateSlbInstanceAction action = CreateSlbInstanceAction()
action.name = "SlbInstance"
action.slbGroupUuid = "9f4fcda488f9346ca9c8ea9243d6d8e3"
action.description = "this is a slb for test"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateSlbInstanceAction.Result res = action.call()