系统全局相关
进度条相关接口
获取任务进度(GetTaskProgress)
API请求
URLs
GET zstack/v1/task-progresses/{apiId}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 8679db834cfc4b3b93fcbf8521581eff" \
-X GET http://localhost:8080/zstack/v1/task-progresses/7b016e3d2b4647e9abe3183728f77e57?all=false参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| apiId (可选) | String | url | 任务对应的API ID | 1.11 | |
| all (可选) | boolean | query | 指定获取所有进度信息 | 1.11 | |
| systemTags (可选) | List | query | 系统标签 | 1.11 | |
| userTags (可选) | List | query | 用户标签 | 1.11 |
API返回
返回示例
{
"inventories": [
{
"taskUuid": "931102503f64436ea649939ff3957406",
"taskName": "org.zstack.header.vm.APICreateVmInstanceMsg",
"type": "Task",
"content": "Choose backup storage for downloading the image",
"time": 1.510669257141E12
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| 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
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| taskUuid | String | 0.6 | |
| taskName | String | 0.6 | |
| parentUuid | String | 0.6 | |
| type | String | 0.6 | |
| content | String | 0.6 | |
| opaque | LinkedHashMap | 0.6 | |
| time | Long | 0.6 | |
| totalSteps | Integer | 0.6 | |
| currentStep | Integer | 0.6 | |
| subTasks | List | 详情参考subTasks | 0.6 |
SDK示例
Java
SDK
GetTaskProgressAction action = new GetTaskProgressAction();
action.apiId = "00c035b586634edeb3bfb21f17e02b40";
action.all = false;
action.sessionId = "dea874a205c04a838e46ff6f48294add";
GetTaskProgressAction.Result res = action.call();Python
SDK
GetTaskProgressAction action = GetTaskProgressAction()
action.apiId = "82f5efb211394297b1d6a4f8d5e5618e"
action.all = false
action.sessionId = "2100b95ab4064c81acc5db473b2a1ef6"
GetTaskProgressAction.Result res = action.call()查询可用资源相关接口
获取CPU和内存容量(GetCpuMemoryCapacity)
API请求
URLs
GET zstack/v1/hosts/capacities/cpu-memoryHeaders
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/hosts/capacities/cpu-memory?zoneUuids=6510dcd4e77939d695b035ecbcfb217c&zoneUuids=33a39cd9391538a4a4d45666e8505dda&clusterUuids=b7c233dd9c573f63b5bb97f50028fa7f&clusterUuids=08d332af6fdb351da456aea3b6b5d029&hostUuids=ba1bfc20682136c4b2f76920af8f010e&hostUuids=b09cd47a6fa93302ae55918ef8da2af4&hypervisorType=KVM&all=true参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| zoneUuids (可选) | List | query | 数据中心的UUID | 0.6 | |
| clusterUuids (可选) | List | query | 集群的UUID。用于挂载网络、存储等 | 0.6 | |
| hostUuids (可选) | List | query | 主机的UUID。用于添加、删除host等 | 0.6 | |
| all (可选) | boolean | query |
|
0.6 | |
| hypervisorType (可选) | String | query |
|
0.6 | |
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 0.6 |
API返回
返回示例
{
"totalCpu": 4.0,
"availableCpu": 2.0,
"totalMemory": 8.0,
"availableMemory": 4.0,
"managedCpuNum": 4.0,
"capacityData": [
{
"resourceUuid": "db558260b0b53e36aa8ebf7e40c7c9c6",
"totalCpu": 4.0,
"availableCpu": 2.0,
"totalMemory": 8.0,
"availableMemory": 4.0,
"managedCpuNum": 4.0
}
],
"resourceType": "HostVO"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| totalCpu | long | cpu总数 | 0.6 |
| availableCpu | long | 可用cpu数量 | 0.6 |
| totalMemory | long | 内存总量 | 0.6 |
| availableMemory | long | 可用内存 | 0.6 |
| managedCpuNum | long | 受管理的物理CPU数量 | 2.5.0 |
| resourceType | String | 所查资源的类型(主机、集群、数据中心) | 3.9.0 |
| success | boolean | 成功 | 0.6 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| capacityData | List | 详情参考capacityData | 3.9.0 |
| error | ErrorCode | 详情参考error | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#capacityData
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| resourceUuid | String | 资源UUID | 3.9.0 |
| totalCpu | long | CPU总数 | 3.9.0 |
| availableCpu | long | 可用CPU数量 | 3.9.0 |
| totalMemory | long | 内存总量 | 3.9.0 |
| availableMemory | long | 可用内存 | 3.9.0 |
| managedCpuNum | long | 受管理的物理CPU数量 | 3.9.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetCpuMemoryCapacityAction action = new GetCpuMemoryCapacityAction();
action.zoneUuids = asList("79383afd88f54a0b994515d84dbfa447","907c8ca71ee440e3bb0327f19d60754a");
action.clusterUuids = asList("9f5431123b834d95ae642c3cb923ba32","09cdcc7e28f340ccace7c427a32e2c05");
action.hostUuids = asList("2926839176934652ac3c6a77e4ce1484","c1b46284d0dd4d2a8a7637f0d4792d31");
action.hypervisorType = "KVM";
action.all = true;
action.sessionId = "f3aedb623b3c47a7bb215ea3f4be90d7";
GetCpuMemoryCapacityAction.Result res = action.call();Python
SDK
GetCpuMemoryCapacityAction action = GetCpuMemoryCapacityAction()
action.zoneUuids = [28cd4ea55a72429d815205b0738b87b3, 2571613b0ba642b7a1c99ddc17aee8e3]
action.clusterUuids = [3e9e56c96fa545fea0b759cb601aad1c, 98ec43d31af446a9bf290b117af95e52]
action.hostUuids = [b5cf96f88a1943f89417d6bea0715b6c, b358d13ac15049a581e47c76183c1358]
action.hypervisorType = "KVM"
action.all = true
action.sessionId = "b0b7e398d33d4d7893255547d0859731"
GetCpuMemoryCapacityAction.Result res = action.call()获取External Services(GetExternalServices)
API请求
URLs
GET zstack/v1/external/servicesHeaders
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/external/services参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 系统标签 | 4.7.0 | |
| userTags (可选) | List | query | 用户标签 | 4.7.0 |
API返回
返回示例
{
"inventories": [
{
"name": "prometheus",
"status": "RUNNING",
"capabilities": {
"reloadConfig": true
}
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 4.7.0 | |
| inventories | List | 详情参考inventories | 4.7.0 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.7.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 4.7.0 |
| status | String | 服务状态 | 4.7.0 |
| capabilities | ExternalServiceCapabilities | 详情参考capabilities | 4.7.0 |
#capabilities
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| reloadConfig | boolean | 支持重新加载配置 | 4.7.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java
SDK
GetExternalServicesAction action = new GetExternalServicesAction();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetExternalServicesAction.Result res = action.call();Python
SDK
GetExternalServicesAction action = GetExternalServicesAction()
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetExternalServicesAction.Result res = action.call()重新加载External Service(ReloadExternalService)
API请求
URLs
PUT zstack/v1/external/servicesHeaders
Authorization: OAuth the-session-uuidBody
{
"reloadExternalService": {
"name": "prometheus"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"reloadExternalService":{"name":"prometheus"}}' \
http://localhost:8080/zstack/v1/external/services参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在reloadExternalService结构中) |
资源名称 | 4.7.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.7.0 | |
| userTags (可选) | List | body | 用户标签 | 4.7.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
ReloadExternalServiceAction action = new ReloadExternalServiceAction();
action.name = "prometheus";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ReloadExternalServiceAction.Result res = action.call();Python
SDK
ReloadExternalServiceAction action = ReloadExternalServiceAction()
action.name = "prometheus"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ReloadExternalServiceAction.Result res = action.call()垃圾回收相关接口
触发垃圾回收任务(TriggerGCJob)
API请求
URLs
PUT zstack/v1/gc-jobs/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"triggerGCJob": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"triggerGCJob":{}}' \
http://localhost:8080/zstack/v1/gc-jobs/1450275537b53cfeba9e6ac79ebadb16/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| 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
TriggerGCJobAction action = new TriggerGCJobAction();
action.uuid = "ff4eb99f62364bcab4cbcebe4dea7de7";
action.sessionId = "7a51dbf52d5d41b0a877491143b6937a";
TriggerGCJobAction.Result res = action.call();Python
SDK
TriggerGCJobAction action = TriggerGCJobAction()
action.uuid = "a1d1ab14128e4f7398924591915ac65c"
action.sessionId = "6dcc50cb3dc5401b8ce03540a225f623"
TriggerGCJobAction.Result res = action.call()删除垃圾回收任务(DeleteGCJob)
API请求
URLs
DELETE zstack/v1/gc-jobs/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth ea06449412a24699955ea802430000f3" \
-X DELETE http://localhost:8080/zstack/v1/gc-jobs/3a5d968dd8d743c280888a4973ea71d5参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| 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
DeleteGCJobAction action = new DeleteGCJobAction();
action.uuid = "6bac0ebceac44a198609b0019c40a8eb";
action.sessionId = "78e46c7bfe0249fe9613223642222085";
DeleteGCJobAction.Result res = action.call();Python
SDK
DeleteGCJobAction action = DeleteGCJobAction()
action.uuid = "42db77385ebf4768bf105011ec8e6aaf"
action.sessionId = "331167c4de264088862128e5043c5a93"
DeleteGCJobAction.Result res = action.call()查询垃圾回收任务(QueryGCJob)
API请求
URLs
GET zstack/v1/gc-jobs
GET zstack/v1/gc-jobs/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 8a590138fd064e5b8747e9fa75dd6c63" \
-X GET http://localhost:8080/zstack/v1/gc-jobs?q=name=gc&q=state=Enabledcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 68ab95870cb4460fb9c82360f9ed64b2" \
-X GET http://localhost:8080/zstack/v1/gc-jobs/b41ea820e0bd47d5a028ddb3eb10bb98可查询字段
运行CLI命令行工具,输入QueryGCJob并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "c7606f2ed20b4212aa3d1ce4e00acc1c",
"name": "TestGC",
"type": "TimeBased",
"createDate": "Jun 7, 2017 9:21:16 PM",
"lastOpDate": "Jun 7, 2017 9:21:16 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 |
| name | String | 资源名称 | 0.6 |
| runnerClass | String | 0.6 | |
| context | String | 0.6 | |
| status | String | 0.6 | |
| managementNodeUuid | String | 0.6 | |
| type | String | 0.6 | |
| createDate | Timestamp | 创建时间 | 0.6 |
| lastOpDate | Timestamp | 最后一次修改时间 | 0.6 |
SDK示例
Java
SDK
QueryGCJobAction action = new QueryGCJobAction();
action.conditions = asList("name=gc","state=Enabled");
action.sessionId = "3b403b588a96471cbee74a19d4a846aa";
QueryGCJobAction.Result res = action.call();Python
SDK
QueryGCJobAction action = QueryGCJobAction()
action.conditions = ["name=gc","state=Enabled"]
action.sessionId = "76af9b84c87f4dcf9aa8f9042a982a6b"
QueryGCJobAction.Result res = action.call()许可证相关接口
获取许可证信息(GetLicenseInfo)
获取许可证信息
API请求
URLs
GET zstack/v1/licensesCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" -X GET http://localhost:8080/zstack/v1/licenses?localOnly=false&licenseServerOnly=false参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| additionSession (可选) | String | query | 额外的信息,是一个json字符串 | 3.11.0 | |
| localOnly (可选) | boolean | query | 仅查询本地授权 | 5.1.0 | |
| licenseServerOnly (可选) | boolean | query | 仅查询从授权服务器而来的授权 | 5.1.0 | |
| systemTags (可选) | List | query | 系统标签 | 3.11.0 | |
| userTags (可选) | List | query | 用户标签 | 3.11.0 |
API返回
返回示例
{
"inventory": {
"user": "example",
"hostNum": 10,
"licenseType": "Free",
"issuedDate": "2017-01-19T14:31:06.291+08:00",
"managementNodeUuid": "00898b3538e53e70bb7521e54ff80276",
"expired": true,
"platformId": "a95d3ee34r",
"licenseRequest": "example request",
"usage": {
"quotaType": "None",
"quota": 0,
"used": 0,
"available": 0,
"usageDetails": []
}
},
"additions": []
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventory | LicenseInventory | 详情参考inventory | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| licenseType | String | 0.6 | |
| licenseRequest | String | 0.6 | |
| expiredDate | String | 0.6 | |
| issuedDate | String | 0.6 | |
| user | String | 0.6 | |
| prodInfo | String | 许可证产品名称 | 4.1 |
| hostNum | Integer | 0.6 | |
| cpuNum | Integer | 0.6 | |
| availableHostNum | Integer | 0.6 | |
| availableCpuNum | Integer | 0.6 | |
| expired | boolean | 0.6 |
SDK示例
Java SDK
GetLicenseInfoAction action = new GetLicenseInfoAction();
action.localOnly = false;
action.licenseServerOnly = false;
GetLicenseInfoAction.Result res = action.call();Python SDK
action = GetLicenseInfoAction()
action.localOnly = false
action.licenseServerOnly = false
res = action.call()获取许可证附加功能(GetLicenseAddOns)
获取附加功能License信息
API请求
URLs
GET zstack/v1/licenses/addonsCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" -X GET http://localhost:8080/zstack/v1/licenses/addons?localOnly=false&licenseServerOnly=false参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| localOnly (可选) | boolean | query | 仅查询本地授权 | 5.1.0 | |
| licenseServerOnly (可选) | boolean | query | 仅查询从授权服务器而来的授权 | 5.1.0 | |
| systemTags (可选) | List | query | 3.11.0 | ||
| userTags (可选) | List | query | 3.11.0 |
API返回
返回示例
{
"addons": []
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| addons | List | 详情参考addons | 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 |
#addons
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 0.6 |
| name | String | 资源名称 | 0.6 |
| licenseType | String | 0.6 | |
| expiredDate | String | 0.6 | |
| issuedDate | String | 0.6 | |
| modules | List | 0.6 | |
| expired | boolean | 0.6 |
SDK示例
Java SDK
GetLicenseAddOnsAction action = new GetLicenseAddOnsAction();
action.localOnly = false;
action.licenseServerOnly = false;
GetLicenseAddOnsAction.Result res = action.call();Python SDK
action = GetLicenseAddOnsAction()
action.localOnly = false
action.licenseServerOnly = false
res = action.call()获取许可证用量(GetLicenseUsages)
按模块名批量查询各 quota 维度的 license 用量(used;登记维度含 quota/available)
API请求
URLs
GET zstack/v1/licenses/usagesHeaders
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/licenses/usages?licenseTypes=platform参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| licenseTypes (可选) | List | query | license 类型列表:platform 表示主 license;其它为 addon 模块名,如 disaster-recovery。省略或空列表时默认为 [platform] | 5.1.0 | |
| systemTags (可选) | List | query | 系统标签 | 5.1.0 | |
| userTags (可选) | List | query | 用户标签 | 5.1.0 |
API返回
SDK示例
Java SDK
GetLicenseUsagesAction action = new GetLicenseUsagesAction();
action.licenseTypes = asList("platform");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetLicenseUsagesAction.Result res = action.call();Python SDK
action = GetLicenseUsagesAction()
action.licenseTypes = [platform]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()获取当前许可证客户端应用ID(GetMyLicenseClientAppId)
获取当前许可证客户端的 APP ID
API请求
URLs
GET zstack/v1/license-client/my-app-idHeaders
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/license-client/my-app-id?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 系统标签 | 5.1.0 | |
| userTags (可选) | List | query | 用户标签 | 5.1.0 |
API返回
返回示例
{
"appId": "ff003f16a1de37f69d377dfdc39cc300"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| appId | String | 当前许可证客户端的 APP ID | 5.1.0 |
| success | boolean | 获取是否成功 | 5.1.0 |
| error | ErrorCode | 详情参考error | 5.1.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java SDK
GetMyLicenseClientAppIdAction action = new GetMyLicenseClientAppIdAction();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetMyLicenseClientAppIdAction.Result res = action.call();Python SDK
action = GetMyLicenseClientAppIdAction()
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()获取许可证历史授权信息(GetLicenseRecords)
获取许可证历史授权信息
API请求
URLs
GET zstack/v1/licenses/recordsCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" -X GET http://localhost:8080/zstack/v1/licenses/records?limit=20&start=0&replyWithCount=true&count=false&sortBy=uploadDate&sortDirection=desc参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| limit (可选) | Integer | query | 最多返回的记录数,类似MySQL的limit,默认值20 | 3.11 | |
| start (可选) | Integer | query | 起始查询记录位置,类似MySQL的offset。跟limit配合使用可以实现分页 |
3.11 | |
| replyWithCount (可选) | boolean | query | 计数查询,查询是否附加返回数据记录数。当设置成true时,API在返回数据记录的同时返回满足查询条件的记录数 |
3.11 | |
| count (可选) | boolean | query | 计数查询,相当于MySQL中的count()函数。当设置成true时,API只返回的是满足查询条件的记录数 |
3.11 | |
| sortBy (可选) | String | query | 以字段排序,等同于MySQL中的sort by关键字,例如sortBy=ip。必须跟sortDirection配合使用 |
|
3.11 |
| sortDirection (可选) | String | query | 字段排序方向,必须跟sortBy配合使用 |
|
3.11 |
| systemTags (可选) | List | query | 系统标签 | 3.11 | |
| userTags (可选) | List | query | 用户标签 | 3.11 |
API返回
返回示例
{
"inventories": [
{
"id": 0,
"uuid": "ff0791ffeb0533f092d176d05617db00",
"quota": 32,
"quotaType": "CPUSocket",
"expiredDate": "1970-01-18T13:47:25.257Z",
"issuedDate": "1970-01-18T10:54:37.257Z",
"uploadDate": "1970-01-18T11:09:01.257Z",
"licenseType": "Paid",
"prodInfo": "Basic.ZSV",
"userName": "cloud",
"hash": "ff03d47b50873a4db2e41e730c6b0300",
"source": "UploadFile",
"cause": "UpdateLicense",
"managementNodeUuid": "ff000842a4673ab39dad7a3990df5300",
"mergedTo": 1,
"createDate": "Nov 14, 2017 2:20:57 PM",
"expired": false
}
],
"total": 1
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| total | Long | 许可证历史授权数据总量。如果设置count或replyWithCount为true则返回该值 | 4.1 |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventories | List | 详情参考inventories | 4.1 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| licenseType | String | 0.6 | |
| licenseRequest | String | 0.6 | |
| expiredDate | String | 0.6 | |
| issuedDate | String | 0.6 | |
| user | String | 0.6 | |
| prodInfo | String | 许可证产品名称 | 4.1 |
| hostNum | Integer | 0.6 | |
| cpuNum | Integer | 0.6 | |
| availableHostNum | Integer | 0.6 | |
| availableCpuNum | Integer | 0.6 | |
| expired | boolean | 0.6 |
SDK示例
Java SDK
GetLicenseRecordsAction action = new GetLicenseRecordsAction();
action.limit = 20;
action.start = 0;
action.replyWithCount = true;
action.count = false;
action.sortBy = "uploadDate";
action.sortDirection = "desc";
GetLicenseRecordsAction.Result res = action.call();Python SDK
action = GetLicenseRecordsAction()
action.limit = 20
action.start = 0
action.replyWithCount = true
action.count = false
action.sortBy = "uploadDate"
action.sortDirection = "desc"
res = action.call()获取许可证容量(GetLicenseCapabilities)
API请求
URLs
GET zstack/v1/licenses/capabilitiesHeaders
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/licenses/capabilities参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 系统标签 | 0.6 | |
| userTags (可选) | List | query | 用户标签 | 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
GetLicenseCapabilitiesAction action = new GetLicenseCapabilitiesAction();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetLicenseCapabilitiesAction.Result res = action.call();Python
SDK
GetLicenseCapabilitiesAction action = GetLicenseCapabilitiesAction()
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetLicenseCapabilitiesAction.Result res = action.call()删除许可证文件(DeleteLicense)
API请求
URLs
DELETE /v1/licenses/mn/{managementNodeUuid}/actions?uuid={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/licenses/mn/4a1821df62404868ada349c672e79a5b/actions?uuid=jh34g5uy4g5434i5h45ui93457348参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid (可选) | String | url | 资源的UUID,唯一标示该资源 | 0.6 | |
| managementNodeUuid | 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
DeleteLicenseAction action = new DeleteLicenseAction();
action.managementNodeUuid = "a762967a15a14d69833002d91119c493";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteLicenseAction.Result res = action.call();Python
SDK
DeleteLicenseAction action = DeleteLicenseAction()
action.managementNodeUuid = "32875f270bfc4bdb842ede0b42ed39a3"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteLicenseAction.Result res = action.call()重新加载许可证(ReloadLicense)
重新加载许可证
API请求
URLs
PUT zstack/v1/licenses/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"reloadLicense": {
"managementNodeUuids": [
"839034e1da8e37a08b67e3a8279a1650",
"7869acf9b8bd34079f14a93751e60810"
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X PUT -d '{"reloadLicense":{"managementNodeUuids":["839034e1da8e37a08b67e3a8279a1650","7869acf9b8bd34079f14a93751e60810"]}}' http://localhost:8080/zstack/v1/licenses/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| managementNodeUuids (可选) | List | body(包含在reloadLicense结构中) |
管理节点UUID | 0.6 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"inventory": {
"user": " example@mevoco.com",
"hostNum": 10,
"expiredDate": "2017-02-05 19:44:21",
"issuedDate": " 2017-01-06 19:44:21",
"managementNodeUuid": "00f6cb270fb439d2a8a6dac5b4abf80c",
"expired": true,
"platformId": "a95d3ee34r",
"licenseRequest": "eyJwcml2YXRlS2V5IjoiLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLVxuTUlJRWhnSUJBQUtCL0RjMGtxWGl2UmRPTGRWeC8xK1MzMUtaejNQd1dkek9ob3NvY29rU2wwdnBxYzc2cHF1V1xubDNwQ0FWZ01UaG1OUlo1Z05xaVM2MWdvcmY4WkY3eHBGUWd1cms0WjZxVEl3aDc3emo2NEhPMHBmYnpndzFmL1xuMm9Ga3l1N25GQU5wamxMUEpxalYva0xwL3RVeGpqY0w0ZG9TcDY1TGM3a2lrOXY1aTBpeXlYZEs5dWJsTnFNNVxuV2VNNWdFLzdzeG5IZS9TbFY1Nk1UeWtDeUdpbGVMMmwvUFlmQ2JuYUN4ZG9oOERzKzJ2RnpJaFZ3RWwyYkppZ1xuQkptMlU3VzNKZzltWGZEb2dDTHMyMTE4TXdDUGFQVWVMRTArWlBBNUduL2ZxZUZad2hDMElMcnM3ZTZyZThxK1xuVWpBN2RXeVoxVm50Y0xiWGUxbW94Vm1DSWx4VWd3SURBUUFCQW9IOE1JMXRXTFkxQmhVOUhGZVplVTRzV1hKclxuVVJXWGd5cWtqQ2t6cXJpT0ZqYllvUEF6dS8vREU4U1BlQWZDZkppU0hUdVRkdWxZVVAzZUlkakkxbTA1RVN3MVxuSXYyS01BbGRLWERmTUt3dXpLck1LbDBua1BLMkUwMDVhYW9VSVBncU0weDdQTXlRUmZ1VW81NWs3S2JucVNyMVxuRE1iUmJZY3FzYklrdlBoNGhOK3V0bHNvb3dFM0FZQ1FxNjkrL3NkVzhRd0V6dTRiOG9oYzFCWlJXUC9MdHhrUVxuemdxSVo4Qkw1R1BoLy9RN2xEeGZEa1d4Nkpia0o5blEyWVJKbnBSZGhYTk1mZndValpRRG9wcmhKbi9IektSdFxueWZDc1d5UUttSjBvMlJYVzBEczdycS9SeXJVelc5UElseHlqSnBBSEhMeUI0UndRUUhqbGVZczVBbjV6a0xSU1xuNGlhZFRGZFVZdi9UV0xvcVRtQ25ZNURmUWlnUTBqajNNRE0xRERmWUtKa2szazBHSkh6cjQ2WlZiaWRqMEdhU1xuaXNqc3l3RERtN2wxM1BSL1ZFRVo0bDk5L2F2OFY0bGs5ZkZVYmp5MG5sWEZZcjAzZ2NLZDBCYnlPbk84dU5MM1xuOUpWeG9GVUNqaG1HSm1WQk1tTXFXMjN1L013Y1l5b2pnbjhDZm5wS2RTWHd2ZCtrSzUycEwyWC9kQlBYcnhFU1xuT2hyYXpVN1lPamdKM2VuWVpVRG5oOEhFOGtzRTVVSk9RZDZ4enU4N2xmU1FkTEZnT29DdzFlSVVZNTl3TFdxTVxuRE9qaXdXdDlQdjBGSnFtOVBKaHpkTmZ3dVJhSU9QbDI3WTZ5ejVRQkRrcnIvOTdtODB6d21KYWxhNjkwV2VPbFxuSU9jcE85ekVqUk1qL1FKK09DUGF4Y3poRDFjUHNZbnFWMlJxQTdWUmxOOTBlRkN1SUFYUDhKMDBzeGQ5WlgvTFxuYmJLa1hsQ0pjeHFES2tzNXpXNW05ZGQvNWpCejdaS1AxT2NDeTN4RnArcGxrMUlSSTZQdXRlSVlXM2kxK3RSVVxuUEhCTUZWUHZGRFVMZ0o3T3JLWm9ybFhkNTNZSTloWEw1blJ1aWU2TlovMUVlVzNMUmhzU1ZHL0hBbjVrV2NOR1xuRGdhUmhiTnczZ3VTSkkwSlYxMUdvZkZpWmhoQjBmZjhVa1J6QjJzWFZxYzFYN3IveXBXaTBuc0ZGbDNjUE1ZeFxuK1hSNHRhRnNSekJNSkRVWCtjS2JBeS80ejFLdk5RakNNajdtM08zam9DTEtyTFFGaEdWVWVMNDU4Z3VheFQ4SVxuUmg4aXQ5d0JVQkcyMVNuSHdhK2R1YnlGVkhYV0ZNZzdZN1VDZm1TQWlyd0V0UFVkVUJId1dwY2Q4aFlqdHU1QlxuZWkzajQ5R1lmV1JYand0N3lLNnJheVpldE9KekJLNGZ5Ynp1a0ZjbkF4TzRtTmxGZnI5cWprc0tmTXBWMGVyU1xuTHYwVjhnSDRRYVZpQ0hqcDYxR1ZaeHcyaUp1OUxsZmNsK2x0Wjh0dURaNzA5MjRFWkpUY1FNN0RjQVcwY3ZKZlxudXFCNFRGYWNzbFNBTFFcdTAwM2RcdTAwM2Rcbi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tXG4iLCJsaWNlbnNlUmVxdWVzdCI6ImV5SjBhSFZ0WW5CeWFXNTBJam9pWlhsS2FtTklWblJpTWxKc1lrTkpOa2xyYkhWa1IxWnpTMFpKY0VsRlRuWmpiVlZ2VmtVd2NFbEhhek5NVkZFelQxUkJaMUV4UWxaSlJVRm5UWGswTWsxRlpFbGxhVWx6U1cxT2QyUllUV2xQYVVsNVNXbDNhVnB0UlRaWmFrazJXbTFKTmxsNlZUWk9la0UyVFVSQmFVOXBTbXhrUjJoc1kybEpjMGx0YUhaak0xSjFXVmN4YkVscWIybE5WRUYwVFVNd2VFNTZWWFJOYWxFMVNXbDNhV0pYVm5SaFZ6VnlXV2xKTmtscVRUUlBSRVUxVFhwWmFVeERTbnBsV0U0eFpGZHNhMGxxYjJsTlZWbDZUV3BHUjFKVVRYUk5ha0Y0VVhrd01GRjZRa05NVlVWNVVrVlZkRkZxWjNsTmFsRjVUa1ZaTVZKRVkzcEphWGRwWkcxV2VXTXliSFppYVVrMlNXcEJkVTFUU2praUxDSndkV0pyWlhraU9pSXRMUzB0TFVKRlIwbE9JRkJWUWt4SlF5QkxSVmt0TFMwdExWeHVUVWxKUWtoRVFVNUNaMnR4YUd0cFJ6bDNNRUpCVVVWR1FVRlBRMEZSYTBGTlNVbENRa0ZMUWk5RVl6QnJjVmhwZGxKa1QweGtWbmd2TVN0VE16RkxXbHh1ZWpOUWQxZGtlazlvYjNOdlkyOXJVMnd3ZG5CeFl6YzJjSEYxVjJ3emNFTkJWbWROVkdodFRsSmFOV2RPY1dsVE5qRm5iM0ptT0ZwR04zaHdSbEZuZFZ4dWNtczBXalp4VkVsM2FEYzNlbW8yTkVoUE1IQm1ZbnBuZHpGbUx6SnZSbXQ1ZFRkdVJrRk9jR3BzVEZCS2NXcFdMMnRNY0M5MFZYaHFhbU5NTkdSdlUxeHVjRFkxVEdNM2EybHJPWFkxYVRCcGVYbFlaRXM1ZFdKc1RuRk5OVmRsVFRWblJTODNjM2h1U0dVdlUyeFdOVFpOVkhsclEzbEhhV3hsVERKc0wxQlpabHh1UTJKdVlVTjRaRzlvT0VSekt6SjJSbnBKYUZaM1JXd3lZa3BwWjBKS2JUSlZOMWN6U21jNWJWaG1SRzluUTB4ek1qRXhPRTEzUTFCaFVGVmxURVV3SzF4dVdsQkJOVWR1TDJXA12SAWlRoeEsxVnFRVGRrVjNsYU1WWnVkR05NWWxobE1XMXZlRlp0UTBsc2VGVm5kMGxFUVZGQlFseHVMUzB0TFMxRlRrUWdVRlZDVEVsRElFdEZXUzB0TFMwdFhHNGlmUVx1MDAzZFx1MDAzZCJ9",
"usage": {
"quotaType": "None",
"quota": 0,
"used": 0,
"available": 0,
"usageDetails": []
}
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
| inventory | LicenseInventory | 详情参考inventory | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| licenseType | String | 0.6 | |
| licenseRequest | String | 0.6 | |
| expiredDate | String | 0.6 | |
| issuedDate | String | 0.6 | |
| user | String | 0.6 | |
| prodInfo | String | 许可证产品名称 | 4.1 |
| hostNum | Integer | 0.6 | |
| cpuNum | Integer | 0.6 | |
| availableHostNum | Integer | 0.6 | |
| availableCpuNum | Integer | 0.6 | |
| expired | boolean | 0.6 |
SDK示例
Java SDK
ReloadLicenseAction action = new ReloadLicenseAction();
action.managementNodeUuids = asList("839034e1da8e37a08b67e3a8279a1650","7869acf9b8bd34079f14a93751e60810");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ReloadLicenseAction.Result res = action.call();Python SDK
action = ReloadLicenseAction()
action.managementNodeUuids = [839034e1da8e37a08b67e3a8279a1650, 7869acf9b8bd34079f14a93751e60810]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()更新许可证信息(UpdateLicense)
API请求
URLs
PUT zstack/v1/licenses/mn/{managementNodeUuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateLicense": {
"license": "this is license string"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateLicense":{"license":"this is license string"}}' \
http://localhost:8080/zstack/v1/licenses/mn/f03b0d69643038f9812edbf4b259cac1/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| managementNodeUuid | String | url | 管理节点uuid | 0.6 | |
| license | String | body(包含在updateLicense结构中) | 进行过base64 encode的license内容 | 0.6 | |
| additionSession (可选) | String | body(包含在updateLicense结构中) | 额外的信息,是一个json字符串 | 4.1.0 | |
| systemTags (可选) | List | body | 0.6 | ||
| userTags (可选) | List | body | 0.6 |
API返回
返回示例
{
"inventory": {
"licenseRequest": "eyJwcml2YXRlS2V5IjoiLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLVxuTUlJRWhnSUJBQUtCL0RjMGtxWGl2UmRPTGRWeC8xK1MzMUtaejNQd1dkek9ob3NvY29rU2wwdnBxYzc2cHF1V1xubDNwQ0FWZ01UaG1OUlo1Z05xaVM2MWdvcmY4WkY3eHBGUWd1cms0WjZxVEl3aDc3emo2NEhPMHBmYnpndzFmL1xuMm9Ga3l1N25GQU5wamxMUEpxalYva0xwL3RVeGpqY0w0ZG9TcDY1TGM3a2lrOXY1aTBpeXlYZEs5dWJsTnFNNVxuV2VNNWdFLzdzeG5IZS9TbFY1Nk1UeWtDeUdpbGVMMmwvUFlmQ2JuYUN4ZG9oOERzKzJ2RnpJaFZ3RWwyYkppZ1xuQkptMlU3VzNKZzltWGZEb2dDTHMyMTE4TXdDUGFQVWVMRTArWlBBNUduL2ZxZUZad2hDMElMcnM3ZTZyZThxK1xuVWpBN2RXeVoxVm50Y0xiWGUxbW94Vm1DSWx4VWd3SURBUUFCQW9IOE1JMXRXTFkxQmhVOUhGZVplVTRzV1hKclxuVVJXWGd5cWtqQ2t6cXJpT0ZqYllvUEF6dS8vREU4U1BlQWZDZkppU0hUdVRkdWxZVVAzZUlkakkxbTA1RVN3MVxuSXYyS01BbGRLWERmTUt3dXpLck1LbDBua1BLMkUwMDVhYW9VSVBncU0weDdQTXlRUmZ1VW81NWs3S2JucVNyMVxuRE1iUmJZY3FzYklrdlBoNGhOK3V0bHNvb3dFM0FZQ1FxNjkrL3NkVzhRd0V6dTRiOG9oYzFCWlJXUC9MdHhrUVxuemdxSVo4Qkw1R1BoLy9RN2xEeGZEa1d4Nkpia0o5blEyWVJKbnBSZGhYTk1mZndValpRRG9wcmhKbi9IektSdFxueWZDc1d5UUttSjBvMlJYVzBEczdycS9SeXJVelc5UElseHlqSnBBSEhMeUI0UndRUUhqbGVZczVBbjV6a0xSU1xuNGlhZFRGZFVZdi9UV0xvcVRtQ25ZNURmUWlnUTBqajNNRE0xRERmWUtKa2szazBHSkh6cjQ2WlZiaWRqMEdhU1xuaXNqc3l3RERtN2wxM1BSL1ZFRVo0bDk5L2F2OFY0bGs5ZkZVYmp5MG5sWEZZcjAzZ2NLZDBCYnlPbk84dU5MM1xuOUpWeG9GVUNqaG1HSm1WQk1tTXFXMjN1L013Y1l5b2pnbjhDZm5wS2RTWHd2ZCtrSzUycEwyWC9kQlBYcnhFU1xuT2hyYXpVN1lPamdKM2VuWVpVRG5oOEhFOGtzRTVVSk9RZDZ4enU4N2xmU1FkTEZnT29DdzFlSVVZNTl3TFdxTVxuRE9qaXdXdDlQdjBGSnFtOVBKaHpkTmZ3dVJhSU9QbDI3WTZ5ejVRQkRrcnIvOTdtODB6d21KYWxhNjkwV2VPbFxuSU9jcE85ekVqUk1qL1FKK09DUGF4Y3poRDFjUHNZbnFWMlJxQTdWUmxOOTBlRkN1SUFYUDhKMDBzeGQ5WlgvTFxuYmJLa1hsQ0pjeHFES2tzNXpXNW05ZGQvNWpCejdaS1AxT2NDeTN4RnArcGxrMUlSSTZQdXRlSVlXM2kxK3RSVVxuUEhCTUZWUHZGRFVMZ0o3T3JLWm9ybFhkNTNZSTloWEw1blJ1aWU2TlovMUVlVzNMUmhzU1ZHL0hBbjVrV2NOR1xuRGdhUmhiTnczZ3VTSkkwSlYxMUdvZkZpWmhoQjBmZjhVa1J6QjJzWFZxYzFYN3IveXBXaTBuc0ZGbDNjUE1ZeFxuK1hSNHRhRnNSekJNSkRVWCtjS2JBeS80ejFLdk5RakNNajdtM08zam9DTEtyTFFGaEdWVWVMNDU4Z3VheFQ4SVxuUmg4aXQ5d0JVQkcyMVNuSHdhK2R1YnlGVkhYV0ZNZzdZN1VDZm1TQWlyd0V0UFVkVUJId1dwY2Q4aFlqdHU1QlxuZWkzajQ5R1lmV1JYand0N3lLNnJheVpldE9KekJLNGZ5Ynp1a0ZjbkF4TzRtTmxGZnI5cWprc0tmTXBWMGVyU1xuTHYwVjhnSDRRYVZpQ0hqcDYxR1ZaeHcyaUp1OUxsZmNsK2x0Wjh0dURaNzA5MjRFWkpUY1FNN0RjQVcwY3ZKZlxudXFCNFRGYWNzbFNBTFFcdTAwM2RcdTAwM2Rcbi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tXG4iLCJsaWNlbnNlUmVxdWVzdCI6ImV5SjBhSFZ0WW5CeWFXNTBJam9pWlhsS2FtTklWblJpTWxKc1lrTkpOa2xyYkhWa1IxWnpTMFpKY0VsRlRuWmpiVlZ2VmtVd2NFbEhhek5NVkZFelQxUkJaMUV4UWxaSlJVRm5UWGswTWsxRlpFbGxhVWx6U1cxT2QyUllUV2xQYVVsNVNXbDNhVnB0UlRaWmFrazJXbTFKTmxsNlZUWk9la0UyVFVSQmFVOXBTbXhrUjJoc1kybEpjMGx0YUhaak0xSjFXVmN4YkVscWIybE5WRUYwVFVNd2VFNTZWWFJOYWxFMVNXbDNhV0pYVm5SaFZ6VnlXV2xKTmtscVRUUlBSRVUxVFhwWmFVeERTbnBsV0U0eFpGZHNhMGxxYjJsTlZWbDZUV3BHUjFKVVRYUk5ha0Y0VVhrd01GRjZRa05NVlVWNVVrVlZkRkZxWjNsTmFsRjVUa1ZaTVZKRVkzcEphWGRwWkcxV2VXTXliSFppYVVrMlNXcEJkVTFUU2praUxDSndkV0pyWlhraU9pSXRMUzB0TFVKRlIwbE9JRkJWUWt4SlF5QkxSVmt0TFMwdExWeHVUVWxKUWtoRVFVNUNaMnR4YUd0cFJ6bDNNRUpCVVVWR1FVRlBRMEZSYTBGTlNVbENRa0ZMUWk5RVl6QnJjVmhwZGxKa1QweGtWbmd2TVN0VE16RkxXbHh1ZWpOUWQxZGtlazlvYjNOdlkyOXJVMnd3ZG5CeFl6YzJjSEYxVjJ3emNFTkJWbWROVkdodFRsSmFOV2RPY1dsVE5qRm5iM0ptT0ZwR04zaHdSbEZuZFZ4dWNtczBXalp4VkVsM2FEYzNlbW8yTkVoUE1IQm1ZbnBuZHpGbUx6SnZSbXQ1ZFRkdVJrRk9jR3BzVEZCS2NXcFdMMnRNY0M5MFZYaHFhbU5NTkdSdlUxeHVjRFkxVEdNM2EybHJPWFkxYVRCcGVYbFlaRXM1ZFdKc1RuRk5OVmRsVFRWblJTODNjM2h1U0dVdlUyeFdOVFpOVkhsclEzbEhhV3hsVERKc0wxQlpabHh1UTJKdVlVTjRaRzlvT0VSekt6SjJSbnBKYUZaM1JXd3lZa3BwWjBKS2JUSlZOMWN6U21jNWJWaG1SRzluUTB4ek1qRXhPRTEzUTFCaFVGVmxURVV3SzF4dVdsQkJOVWR1TDJXA12SAWlRoeEsxVnFRVGRrVjNsYU1WWnVkR05NWWxobE1XMXZlRlp0UTBsc2VGVm5kMGxFUVZGQlFseHVMUzB0TFMxRlRrUWdVRlZDVEVsRElFdEZXUzB0TFMwdFhHNGlmUVx1MDAzZFx1MDAzZCJ9",
"expiredDate": "2017-02-05 19:44:21",
"issuedDate": " 2017-01-06 19:44:21",
"user": " example@mevoco.com",
"hostNum": 10.0,
"expired": true
}
}#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
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| licenseType | String | 0.6 | |
| licenseRequest | String | 0.6 | |
| expiredDate | String | 0.6 | |
| issuedDate | String | 0.6 | |
| user | String | 0.6 | |
| hostNum | Integer | 0.6 | |
| cpuNum | Integer | 0.6 | |
| availableHostNum | Integer | 0.6 | |
| availableCpuNum | Integer | 0.6 | |
| expired | boolean | 0.6 |
SDK示例
Java
SDK
UpdateLicenseAction action = new UpdateLicenseAction();
action.managementNodeUuid = "f03b0d69643038f9812edbf4b259cac1";
action.license = "this is license string";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateLicenseAction.Result res = action.call();Python
SDK
UpdateLicenseAction action = UpdateLicenseAction()
action.managementNodeUuid = "f03b0d69643038f9812edbf4b259cac1"
action.license = "this is license string"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateLicenseAction.Result res = action.call()注册许可请求应用(RegisterLicenseRequestedApplication)
在这里填写API描述
API请求
URLs
POST zstack/v1/licenses/applicationsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"licenseRequestCode": "example request code"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X POST -d '{"params":{"licenseRequestCode":"example request code"}}' http://localhost:8080/zstack/v1/licenses/applications参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| licenseRequestCode | String | body(包含在params结构中) |
0.6 | ||
| clientPubKey (可选) | String | body(包含在params结构中) |
0.6 | ||
| currentTimeMillis (可选) | Long | body(包含在params结构中) |
客户端时间戳, 用于检查两边时间同步情况 | 5.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 0.6 | |
| userTags (可选) | List | body | 用户标签 | 0.6 |
API返回
返回示例
{
"appId": "6568cda2a0863a4188a26fbdb740681e"
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| appId | String | 0.6 | |
| servicePubKey | String | 0.6 | |
| success | boolean | 0.6 | |
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 0.6 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
SDK示例
Java SDK
RegisterLicenseRequestedApplicationAction action = new RegisterLicenseRequestedApplicationAction();
action.licenseRequestCode = "example request code";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RegisterLicenseRequestedApplicationAction.Result res = action.call();Python SDK
action = RegisterLicenseRequestedApplicationAction()
action.licenseRequestCode = "example request code"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()注册许可证服务器(RegisterLicenseServer)
将该管理节点注册到授权服务器
API请求
URLs
POST zstack/v1/license-server/clientHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"ip": "172.20.20.20",
"loginParams": {
"password": "sos-admin-password",
"username": "sos-admin"
},
"protocol": "Normal"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X POST -d '{"params":{"ip":"172.20.20.20","loginParams":{"password":"sos-admin-password","username":"sos-admin"},"protocol":"Normal"}}' http://localhost:8080/zstack/v1/license-server/client参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| ip | String | body(包含在params结构中) |
授权服务器的IP地址 | 5.1.0 | |
| port (可选) | Integer | body(包含在params结构中) |
授权服务器的端口号 | 5.1.0 | |
| loginParams (可选) | Map | body(包含在params结构中) |
登录授权服务器所需的参数信息 | 5.1.0 | |
| protocol (可选) | String | body(包含在params结构中) |
登录授权服务器使用的协议 |
|
5.1.0 |
| systemTags (可选) | List | body | 系统标签 | 5.1.0 | |
| userTags (可选) | List | body | 用户标签 | 5.1.0 |
API返回
SDK示例
Java SDK
Java SDK未能自动生成
Python SDK
Python SDK未能自动生成
验证许可证服务器(VerifyLicenseServer)
被授权 MN 向授权服务器验证授权服务信息
API请求
URLs
POST zstack/v1/license-server/register-verifyHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"appId": "ca667f9fcd013d57b79ffd9b8d897bd8",
"clientAccessKeyId": "1234567890abcdedfghij",
"clientAccessKeySecret": "******"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X POST -d '{"params":{"appId":"ca667f9fcd013d57b79ffd9b8d897bd8","clientAccessKeyId":"1234567890abcdedfghij","clientAccessKeySecret":"******"}}' http://localhost:8080/zstack/v1/license-server/register-verify参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| appId | String | body(包含在params结构中) |
自己 MN 在授权服务器注册时的 APP ID | 5.1.0 | |
| clientAccessKeyId | String | body(包含在params结构中) |
授权服务器登录自己使用的免密登录的 ID | 5.1.0 | |
| clientAccessKeySecret | String | body(包含在params结构中) |
授权服务器登录自己使用的免密登录的口令 | 5.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 5.1.0 | |
| userTags (可选) | List | body | 用户标签 | 5.1.0 |
API返回
SDK示例
Java SDK
VerifyLicenseServerAction action = new VerifyLicenseServerAction();
action.appId = "ca667f9fcd013d57b79ffd9b8d897bd8";
action.clientAccessKeyId = "1234567890abcdedfghij";
action.clientAccessKeySecret = "******";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
VerifyLicenseServerAction.Result res = action.call();Python SDK
action = VerifyLicenseServerAction()
action.appId = "ca667f9fcd013d57b79ffd9b8d897bd8"
action.clientAccessKeyId = "1234567890abcdedfghij"
action.clientAccessKeySecret = "******"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()申请许可证容量(RequestLicenseCapacity)
提交许可证配额申请
API请求
URLs
POST zstack/v1/license-server/capacity-applicationHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"resourceUuid": "ff01ec80fd11327cba7519b66119d900",
"quotaType": "CPUSocket",
"quota": 24,
"clientAuthorizedNodeUuid": "ff003f16a1de37f69d377dfdc39cc300",
"licenseType": "platform",
"resourceInfo": "ff00edf850633a37b727ce0ccfb03500"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X POST -d '{"params":{"resourceUuid":"ff01ec80fd11327cba7519b66119d900","quotaType":"CPUSocket","quota":24,"clientAuthorizedNodeUuid":"ff003f16a1de37f69d377dfdc39cc300","licenseType":"platform","resourceInfo":"ff00edf850633a37b727ce0ccfb03500"}}' http://localhost:8080/zstack/v1/license-server/capacity-application参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| resourceUuid | String | body(包含在params结构中) |
许可证配额绑定的资源 UUID | 5.1.0 | |
| quotaType | String | body(包含在params结构中) |
申请的配额类型 |
|
5.1.0 |
| quota | Long | body(包含在params结构中) |
申请的配额数量 | 5.1.0 | |
| clientAuthorizedNodeUuid | String | body(包含在params结构中) |
被授权节点的 UUID | 5.1.0 | |
| licenseType | String | body(包含在params结构中) |
申请的许可证类型, 是平台许可证 'platform' 还是 Add-On 许可证 | 5.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 5.1.0 | |
| userTags (可选) | List | body | 用户标签 | 5.1.0 | |
| resourceInfo (可选) | String | body(包含在params结构中) |
资源详细信息 | 5.1.0 |
API返回
SDK示例
Java SDK
RequestLicenseCapacityAction action = new RequestLicenseCapacityAction();
action.resourceUuid = "ff01ec80fd11327cba7519b66119d900";
action.quotaType = "CPUSocket";
action.quota = 24;
action.clientAuthorizedNodeUuid = "ff003f16a1de37f69d377dfdc39cc300";
action.licenseType = "platform";
action.resourceInfo = "ff00edf850633a37b727ce0ccfb03500";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RequestLicenseCapacityAction.Result res = action.call();Python SDK
action = RequestLicenseCapacityAction()
action.resourceUuid = "ff01ec80fd11327cba7519b66119d900"
action.quotaType = "CPUSocket"
action.quota = 24
action.clientAuthorizedNodeUuid = "ff003f16a1de37f69d377dfdc39cc300"
action.licenseType = "platform"
action.resourceInfo = "ff00edf850633a37b727ce0ccfb03500"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()撤回许可证容量申请(WithdrawLicenseCapacityApplication)
撤销许可证配额申请
API请求
URLs
DELETE zstack/v1/license-server/capacity-applicationHeaders
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/license-server/capacity-application?resourceUuidList=ff01ec80fd11327cba7519b66119d900&clientAuthorizedNodeUuid=ff003f16a1de37f69d377dfdc39cc300&licenseType=platform参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| resourceUuidList | List | query | 许可证配额绑定的资源 UUID 列表 | 5.1.0 | |
| clientAuthorizedNodeUuid | String | query | 被授权节点的 UUID | 5.1.0 | |
| licenseType | String | query | 申请的许可证类型, 是平台许可证 'platform' 还是 Add-On 许可证 | 5.1.0 | |
| systemTags (可选) | List | query | 系统标签 | 5.1.0 | |
| userTags (可选) | List | query | 用户标签 | 5.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
WithdrawLicenseCapacityApplicationAction action = new WithdrawLicenseCapacityApplicationAction();
action.resourceUuidList = asList("ff01ec80fd11327cba7519b66119d900");
action.clientAuthorizedNodeUuid = "ff003f16a1de37f69d377dfdc39cc300";
action.licenseType = "platform";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
WithdrawLicenseCapacityApplicationAction.Result res = action.call();Python SDK
action = WithdrawLicenseCapacityApplicationAction()
action.resourceUuidList = [ff01ec80fd11327cba7519b66119d900]
action.clientAuthorizedNodeUuid = "ff003f16a1de37f69d377dfdc39cc300"
action.licenseType = "platform"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()同步许可证容量(SyncLicenseCapacity)
同步许可证容量
API请求
URLs
PUT zstack/v1/license-server/authorized-capacity/syncHeaders
Authorization: OAuth the-session-uuidBody
{
"syncLicenseCapacity": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X PUT -d '{"syncLicenseCapacity":{}}' http://localhost:8080/zstack/v1/license-server/authorized-capacity/sync参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | body | 系统标签 | 5.1.0 | |
| userTags (可选) | List | body | 用户标签 | 5.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
SyncLicenseCapacityAction action = new SyncLicenseCapacityAction();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
SyncLicenseCapacityAction.Result res = action.call();Python SDK
action = SyncLicenseCapacityAction()
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()注销许可证申请应用(UnregisterLicenseRequestedApplication)
注销许可证请求应用
API请求
URLs
PUT zstack/v1/license/unregister-applicationsHeaders
Authorization: OAuth the-session-uuidBody
{
"unregisterLicenseRequestedApplication": {
"appId": "ff05b5413a1e33168c9714619a126200"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X PUT -d '{"unregisterLicenseRequestedApplication":{"appId":"ff05b5413a1e33168c9714619a126200"}}' http://localhost:8080/zstack/v1/license/unregister-applications参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| appId | String | body(包含在unregisterLicenseRequestedApplication结构中) |
应用的 ID | 5.1.0 | |
| systemTags (可选) | List | body | 系统标签 | 5.1.0 | |
| userTags (可选) | List | body | 用户标签 | 5.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
UnregisterLicenseRequestedApplicationAction action = new UnregisterLicenseRequestedApplicationAction();
action.appId = "ff05b5413a1e33168c9714619a126200";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UnregisterLicenseRequestedApplicationAction.Result res = action.call();Python SDK
action = UnregisterLicenseRequestedApplicationAction()
action.appId = "ff05b5413a1e33168c9714619a126200"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()注销许可证服务器(UnregisterLicenseServer)
从授权服务器中注销当前管理节点
API请求
URLs
DELETE zstack/v1/license-server/clientHeaders
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/license-server/client?force=false参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| clientAuthorizedNodeUuid (可选) | String | query | 被授权 MN 的节点 UUID, 在授权服务器注销被授权 MN 时用到 | 5.1.0 | |
| systemTags (可选) | List | query | 系统标签 | 5.1.0 | |
| userTags (可选) | List | query | 用户标签 | 5.1.0 | |
| force (可选) | boolean | query | 是否强制注销 | 5.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
UnregisterLicenseServerAction action = new UnregisterLicenseServerAction();
action.force = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UnregisterLicenseServerAction.Result res = action.call();Python SDK
action = UnregisterLicenseServerAction()
action.force = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()长时任务相关接口
提交长时任务(SubmitLongJob)
API请求
URLs
POST zstack/v1/longjobsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "migrate-volume",
"description": "migrate volume to another Ceph primary storage",
"jobName": "APIPrimaryStorageMigrateVolumeMsg",
"jobData": "{\"volumeUuid\":\"45a53d3d93384433add8ead7616586cf\", \"dstPrimaryStorageUuid\":\"70a0618804864b3dabe8be9824c8028c\"}",
"targetResourceUuid": "45a53d3d93384433add8ead7616586cf"
},
"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":"migrate-volume","description":"migrate volume to another Ceph primary storage","jobName":"APIPrimaryStorageMigrateVolumeMsg","jobData":"{\"volumeUuid\":\"45a53d3d93384433add8ead7616586cf\", \"dstPrimaryStorageUuid\":\"70a0618804864b3dabe8be9824c8028c\"}","targetResourceUuid":"45a53d3d93384433add8ead7616586cf"}}' \
http://localhost:8080/zstack/v1/longjobs参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name (可选) | String | body(包含在params结构中) | 资源名称 | 2.3 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 2.3 | |
| jobName | String | body(包含在params结构中) | 任务名称 | 2.3 | |
| jobData | String | body(包含在params结构中) | 任务数据 | 2.3 | |
| resourceUuid (可选) | String | body(包含在params结构中) | 资源UUID | 2.3 | |
| systemTags (可选) | List | body | 系统标签 | 2.3 | |
| userTags (可选) | List | body | 用户标签 | 2.3 | |
| targetResourceUuid (可选) | String | body(包含在params结构中) | 2.3 |
Note:
- ZStack ZSphere使用标识去标记该longjob上传特定镜像,IMAGE_ID由用户指定,一般为
md5,SystemTags增加uploadImage选项。
- 选项格式为:
uploadImage::{IMAGE_ID} - 例如:
uploadImage::68b329da9893e34099c7d8ad5cb9c940
- 选项格式为:
API返回
返回示例
{
"inventory": {
"uuid": "23598186b9ef35aa89fbebf8f04d497a"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.3 |
| inventory | LongJobInventory | 详情参考inventory | 2.3 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.3 |
| description | String | 错误的概要描述 | 2.3 |
| details | String | 错误的详细信息 | 2.3 |
| elaboration | String | 保留字段,默认为null | 2.3 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.3 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.3 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.3 |
| name | String | 资源名称 | 2.3 |
| description | String | 资源的详细描述 | 2.3 |
| apiId | String | 用于关联TaskProgress的APIID | 2.3 |
| jobName | String | 任务名称 | 2.3 |
| jobData | String | 任务数据 | 2.3 |
| jobResult | String | 任务结果 | 2.3 |
| targetResourceUuid | String | 目标资源UUID | 2.3 |
| managementNodeUuid | String | 管理节点UUID | 2.3 |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
| state | LongJobState | 详情参考state | 2.3 |
#state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 2.3 |
| ordinal | int | 2.3 |
SDK示例
Java
SDK
SubmitLongJobAction action = new SubmitLongJobAction();
action.name = "migrate-volume";
action.description = "migrate volume to another Ceph primary storage";
action.jobName = "APIPrimaryStorageMigrateVolumeMsg";
action.jobData = "{"volumeUuid":"45a53d3d93384433add8ead7616586cf", "dstPrimaryStorageUuid":"70a0618804864b3dabe8be9824c8028c"}";
action.targetResourceUuid = "45a53d3d93384433add8ead7616586cf";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
SubmitLongJobAction.Result res = action.call();Python
SDK
SubmitLongJobAction action = SubmitLongJobAction()
action.name = "migrate-volume"
action.description = "migrate volume to another Ceph primary storage"
action.jobName = "APIPrimaryStorageMigrateVolumeMsg"
action.jobData = "{"volumeUuid":"45a53d3d93384433add8ead7616586cf", "dstPrimaryStorageUuid":"70a0618804864b3dabe8be9824c8028c"}"
action.targetResourceUuid = "45a53d3d93384433add8ead7616586cf"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
SubmitLongJobAction.Result res = action.call()删除长时任务(DeleteLongJob)
API请求
URLs
DELETE zstack/v1/longjobs/{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/longjobs/a87ae356c6583cc7b312412337f96609?参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 2.3 | |
| systemTags (可选) | List | body | 系统标签 | 2.3 | |
| userTags (可选) | List | body | 用户标签 | 2.3 |
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
DeleteLongJobAction action = new DeleteLongJobAction();
action.uuid = "a87ae356c6583cc7b312412337f96609";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteLongJobAction.Result res = action.call();Python
SDK
DeleteLongJobAction action = DeleteLongJobAction()
action.uuid = "a87ae356c6583cc7b312412337f96609"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteLongJobAction.Result res = action.call()更新长时任务(UpdateLongJob)
API请求
URLs
PUT zstack/v1/longjobs/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateLongJob": {
"name": "new-name",
"description": "new-description"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateLongJob":{"name":"new-name","description":"new-description"}}' http://localhost:8080/zstack/v1/longjobs/dee3e1e3706f3e52a2cb9a47850508e7/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.9.0 | |
| name (可选) | String | body(包含在updateLongJob结构中) | 资源名称 | 3.9.0 | |
| description (可选) | String | body(包含在updateLongJob结构中) | 资源的详细描述 | 3.9.0 | |
| systemTags (可选) | List | body | 系统标签 | 3.9.0 | |
| userTags (可选) | List | body | 用户标签 | 3.9.0 |
API返回
返回示例
{
"inventory": {
"uuid": "464cdf695427358696dae171544b67ef",
"name": "new-name",
"description": "new-description"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.9.0 |
| inventory | LongJobInventory | 详情参考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 |
| apiId | String | 用于关联TaskProgress的APIID | 3.9.0 |
| jobName | String | 任务名称 | 3.9.0 |
| jobData | String | 任务数据 | 3.9.0 |
| jobResult | String | 任务结果 | 3.9.0 |
| targetResourceUuid | String | 目标资源UUID | 3.9.0 |
| managementNodeUuid | String | 管理节点UUID | 3.9.0 |
| createDate | Timestamp | 创建时间 | 3.9.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.9.0 |
| state | LongJobState | 详情参考state | 3.9.0 |
#state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| Waiting | LongJobState | 3.9.0 | |
| Suspended | LongJobState | 3.9.0 | |
| Running | LongJobState | 3.9.0 | |
| Succeeded | LongJobState | 3.9.0 | |
| Canceling | LongJobState | 3.9.0 | |
| Canceled | LongJobState | 3.9.0 | |
| Failed | LongJobState | 3.9.0 |
SDK示例
Java
SDK
UpdateLongJobAction action = new UpdateLongJobAction();
action.uuid = "dee3e1e3706f3e52a2cb9a47850508e7";
action.name = "new-name";
action.description = "new-description";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateLongJobAction.Result res = action.call();Python
SDK
UpdateLongJobAction action = UpdateLongJobAction()
action.uuid = "dee3e1e3706f3e52a2cb9a47850508e7"
action.name = "new-name"
action.description = "new-description"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateLongJobAction.Result res = action.call()查询长时任务(QueryLongJob)
API请求
URLs
GET zstack/v1/longjobs
GET zstack/v1/longjobs/{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/longjobscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/longjobs/f031e4ea64673a5f96e022f4eb81fc59
可查询字段
运行CLI命令行工具,输入QueryLongJob并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "e8a3fcaa8c393684b78a6dc1b20db49f"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 2.3 |
| inventories | List | 详情参考inventories | 2.3 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 2.3 |
| description | String | 错误的概要描述 | 2.3 |
| details | String | 错误的详细信息 | 2.3 |
| elaboration | String | 保留字段,默认为null | 2.3 |
| opaque | LinkedHashMap | 保留字段,默认为null | 2.3 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 2.3 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 2.3 |
| name | String | 资源名称 | 2.3 |
| description | String | 资源的详细描述 | 2.3 |
| apiId | String | 用于关联TaskProgress的APIID | 2.3 |
| jobName | String | 任务名称 | 2.3 |
| jobData | String | 任务数据 | 2.3 |
| jobResult | String | 任务结果 | 2.3 |
| targetResourceUuid | String | 目标资源UUID | 2.3 |
| managementNodeUuid | String | 管理节点UUID | 2.3 |
| createDate | Timestamp | 创建时间 | 2.3 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.3 |
| state | LongJobState | 详情参考state | 2.3 |
#state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 2.3 |
| ordinal | int | 2.3 |
SDK示例
Java
SDK
QueryLongJobAction action = new QueryLongJobAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryLongJobAction.Result res = action.call();Python
SDK
QueryLongJobAction action = QueryLongJobAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryLongJobAction.Result res = action.call()清理长任务(CleanLongJob)
API请求
URLs
PUT zstack/v1/longjobs/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"cleanLongJob": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"cleanLongJob":{}}' \
http://localhost:8080/zstack/v1/longjobs/5733dce937ca3ecdb47adcb08c25a552/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 4.3.0 | |
| systemTags (可选) | List | body | 系统标签 | 4.3.0 | |
| userTags (可选) | List | body | 用户标签 | 4.3.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
CleanLongJobAction action = new CleanLongJobAction();
action.uuid = "5733dce937ca3ecdb47adcb08c25a552";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CleanLongJobAction.Result res = action.call();Python
SDK
CleanLongJobAction action = CleanLongJobAction()
action.uuid = "5733dce937ca3ecdb47adcb08c25a552"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CleanLongJobAction.Result res = action.call()重新提交长任务(RerunLongJob)
API请求
URLs
PUT zstack/v1/longjobs/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"cleanLongJob": {},
"systemTags": [],
"userTags": []
}Note: 上述示例中
systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"rerunLongJob":{}}' \
http://localhost:8080/zstack/v1/longjobs/6b0baa24019d331fad1548dbd3ec3eb1/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.0.1 | |
| systemTags (可选) | List | body | 系统标签 | 3.0.1 | |
| userTags (可选) | List | body | 用户标签 | 3.0.1 |
API返回
返回示例
{
"inventory": {
"uuid": "bdff1ecf1cab3029ace943626708678a"
}
}#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,唯一标示该资源 | 2.2.4 |
| name | String | 资源名称 | 2.2.4 |
| description | String | 资源的详细描述 | 2.2.4 |
| apiId | String | 用于关联TaskProgress的APIID | 2.2.4 |
| jobName | String | 任务名称 | 2.2.4 |
| jobData | String | 任务数据 | 2.2.4 |
| jobResult | String | 任务结果 | 2.2.4 |
| targetResourceUuid | String | 目标资源UUID | 2.2.4 |
| managementNodeUuid | String | 管理节点UUID | 2.2.4 |
| createDate | Timestamp | 创建时间 | 2.2.4 |
| lastOpDate | Timestamp | 最后一次修改时间 | 2.2.4 |
| state | LongJobState | 详情参考state | 2.2.4 |
#state
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 2.2.4 |
| ordinal | int | 2.2.4 |
SDK示例
Java
SDK
RerunLongJobAction action = new RerunLongJobAction();
action.uuid = "6b0baa24019d331fad1548dbd3ec3eb1";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RerunLongJobAction.Result res = action.call();Python
SDK
RerunLongJobAction action = RerunLongJobAction()
action.uuid = "6b0baa24019d331fad1548dbd3ec3eb1"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RerunLongJobAction.Result res = action.call()错误码相关接口
查看系统错误码(GetElaborations)
API请求
URLs
GET zstack/v1/errorcode/elaborationsHeaders
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/errorcode/elaborations?category=BS®ex=certificate has expired or is not yet valid参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| category (可选) | String | query | 错误码的类别,指向资源或服务的类别,例如HOST | 3.3.0 | |
| regex (可选) | String | query | 错误码关键字 | 3.3.0 | |
| code (可选) | String | query | 错误代码,与category一起使用 | 3.6.0 | |
| systemTags (可选) | List | query | 系统标签 | 3.3.0 | |
| userTags (可选) | List | query | 用户标签 | 3.3.0 |
API返回
返回示例
{
"contents": [
{
"category": "HOST",
"code": "1003",
"regex": "host[uuid:%s, name:%s] is in status[%s], cannot perform required operation",
"message_cn": "主机正处于[停止]状态,不能进行该操作",
"message_en": "Host is in status[Stopped], cannot perform required operation",
"source": "zstack",
"method": "regex",
"distance": 0.0
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.3.0 |
| contents | List | 详情参考contents | 3.3.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 0.6 |
| description | String | 错误的概要描述 | 0.6 |
| details | String | 错误的详细信息 | 0.6 |
| elaboration | String | 保留字段,默认为null | 0.6 |
| opaque | LinkedHashMap | 保留字段,默认为null | 0.6 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 0.6 |
#contents
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| category | String | 错误码所属目录 | 3.3.0 |
| code | String | 错误码代号 | 3.3.0 |
| regex | String | 错误码匹配关键字 | 3.3.0 |
| message_cn | String | 错误码内容中文 | 3.3.0 |
| message_en | String | 错误码内容英文 | 3.3.0 |
| source | String | 错误来源 | 3.3.0 |
| method | String | 匹配方法,distance(字符串比较)或regex(正则) | 3.6.0 |
| distance | Double | 若使用distance匹配,此处为精确度(1为最精确) | 3.6.0 |
SDK示例
Java
SDK
GetElaborationsAction action = new GetElaborationsAction();
action.category = "BS";
action.regex = "certificate has expired or is not yet valid";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetElaborationsAction.Result res = action.call();Python
SDK
GetElaborationsAction action = GetElaborationsAction()
action.category = "BS"
action.regex = "certificate has expired or is not yet valid"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetElaborationsAction.Result res = action.call()查看错误码目录列表(GetElaborationCategories)
API请求
URLs
GET zstack/v1/errorcode/elaborations/categoriesHeaders
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/errorcode/elaborations/categories参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 系统标签 | 4.5.0 | |
| userTags (可选) | List | query | 用户标签 | 4.5.0 |
API返回
返回示例
{
"categories": [
{
"category": "ACCOUNT",
"num": 5.0
},
{
"category": "BS",
"num": 3.0
},
{
"category": "VM",
"num": 20.0
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 4.5.0 |
| categories | List | 详情参考categories | 4.5.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 4.5.0 |
| description | String | 错误的概要描述 | 4.5.0 |
| details | String | 错误的详细信息 | 4.5.0 |
| elaboration | String | 保留字段,默认为null | 4.5.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 4.5.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 4.5.0 |
#categories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| category | String | 目录名称 | 4.5.0 |
| num | Integer | 目录下的错误码数目 | 4.5.0 |
SDK示例
Java
SDK
GetElaborationCategoriesAction action = new GetElaborationCategoriesAction();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetElaborationCategoriesAction.Result res = action.call();Python
SDK
GetElaborationCategoriesAction action = GetElaborationCategoriesAction()
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
GetElaborationCategoriesAction.Result res = action.call()搜索相关接口
重新生成索引(RefreshSearchIndexes)
API请求
URLs
GET zstack/v1/search/indexes/refreshHeaders
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/search/indexes/refresh参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| systemTags (可选) | List | query | 系统标签 | 4.0.0 | |
| userTags (可选) | List | query | 用户标签 | 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
RefreshSearchIndexesAction action = new RefreshSearchIndexesAction();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RefreshSearchIndexesAction.Result res = action.call();Python
SDK
RefreshSearchIndexesAction action = RefreshSearchIndexesAction()
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RefreshSearchIndexesAction.Result res = action.call()