系统全局相关

进度条相关接口

获取任务进度(GetTaskProgress)

API请求

URLs
GET zstack/v1/task-progresses/{apiId}
Headers
Authorization: OAuth the-session-uuid
Curl示例
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-memory
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/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
  • all默认为false,此时数据中心UUID,集群UUID,主机UUID必须有一个不为空,或者全部都填写
  • all设置为true时,数据中心UUID、集群UUID、主机UUID均可不填
0.6
hypervisorType (可选) String query
  • KVM
  • ESC
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/services
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/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/services
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-uuid
Curl示例
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-uuid
Curl示例
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=Enabled
curl -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/licenses
Curl示例
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/addons
Curl示例
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/usages
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X GET http://localhost:8080/zstack/v1/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-id
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X GET http://localhost:8080/zstack/v1/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()

查询许可证授权节点(QueryLicenseAuthorizedNode)

查询许可证授权节点信息

API请求

URLs
GET zstack/v1/license-server/authorized-nodes
GET zstack/v1/license-server/authorized-nodes/{uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X GET http://localhost:8080/zstack/v1/license-server/authorized-nodes?q=type=Source&q=status=Connected
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X GET http://localhost:8080/zstack/v1/license-server/authorized-nodes/b5dd80449e1d3977b0a0b95f8f03df73

可查询字段

运行CLI命令行工具,输入QueryLicenseAuthorizedNode并按Tab键查看所有可查询字段以及可跨表查询的资源名。

API返回

返回示例
{
  "inventories": [
    {
      "uuid": "ff003f16a1de37f69d377dfdc39cc300",
      "appId": "1bdbba7f53ad76edb9744ff13980c5fe",
      "ip": "172.99.99.99",
      "port": 8201,
      "lastSyncDate": "May 22, 2025 7:11:06 AM",
      "status": "Connected",
      "type": "Self",
      "protocol": "Normal",
      "createDate": "May 22, 2025 7:11:06 AM",
      "lastOpDate": "May 22, 2025 7:11:06 AM"
    }
  ]
}
名字 类型 描述 起始版本
success boolean 查询是否成功 5.1.0
inventories List 详情参考inventories 5.1.0
error ErrorCode 详情参考error 5.1.0
#inventories
名字 类型 描述 起始版本
uuid String 资源的UUID,唯一标示该资源 5.1.0
ip String 授权节点 IP, 可以是双管理节点系统的 VIP 5.1.0
port Integer 授权节点端口号 5.1.0
lastSyncDate Timestamp 上一次同步时间 5.1.0
status String 授权节点的连接情况 5.1.0
type String 授权节点对于当前节点的类型, 可能是自己 (Self)、Target (被授权节点)、Source (授权中心) 5.1.0
protocol String 授权节点使用的协议 5.1.0
createDate Timestamp 创建时间 5.1.0
lastOpDate Timestamp 最后一次修改时间 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
QueryLicenseAuthorizedNodeAction action = new QueryLicenseAuthorizedNodeAction();
action.conditions = asList("type=Source","status=Connected");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryLicenseAuthorizedNodeAction.Result res = action.call();
Python SDK
action = QueryLicenseAuthorizedNodeAction()
action.conditions = ["type=Source","status=Connected"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()

获取许可证历史授权信息(GetLicenseRecords)

获取许可证历史授权信息

API请求

URLs
GET zstack/v1/licenses/records
Curl示例
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配合使用
  • issuedDate
  • expiredDate
  • uploadDate
3.11
sortDirection (可选) String query 字段排序方向,必须跟sortBy配合使用
  • asc
  • desc
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/capabilities
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/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()

获取许可证授权容量(GetLicenseAuthorizedCapacity)

获取许可证已用量、共用量等信息

API请求

URLs
GET zstack/v1/license-server/authorized-capacity
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X GET http://localhost:8080/zstack/v1/license-server/authorized-capacity?clientAuthorizedNodeUuid=ff003f16a1de37f69d377dfdc39cc300&showServerCapacity=false
参数列表
名字 类型 位置 描述 可选值 起始版本
clientAuthorizedNodeUuid (可选) String query 授权节点 UUID. 如果指定, 返回结果将附带该授权节点占用的配额信息 5.1.0
showServerCapacity (可选) boolean query 是否显示服务器自己占用的用量信息 5.1.0
systemTags (可选) List query 系统标签 5.1.0
userTags (可选) List query 用户标签 5.1.0

API返回

返回示例
{
  "total": {
    "serverAppId": "ff003f16a1de37f69d377dfdc39cc300",
    "serverAuthorizedNodeUuid": "ff003f16a1de37f69d377dfdc39cc300",
    "serverInventory": {
      "uuid": "ff003f16a1de37f69d377dfdc39cc300",
      "appId": "1bdbba7f53ad76edb9744ff13980c5fe",
      "ip": "172.99.99.99",
      "port": 8201,
      "lastSyncDate": "May 22, 2025 7:11:06 AM",
      "status": "Connected",
      "type": "Self",
      "protocol": "Normal",
      "createDate": "May 22, 2025 7:11:06 AM",
      "lastOpDate": "May 22, 2025 7:11:06 AM"
    },
    "platformLicense": {
      "user": "ZSphere",
      "prodInfo": "Advanced.ZSV",
      "licenseType": "Paid",
      "expiredDate": "2017-11-14 14:20:57.141",
      "issuedDate": "2017-11-14 14:20:57.141",
      "expired": false,
      "usage": {
        "quotaType": "CPUSocket",
        "quota": 1000,
        "used": 500,
        "available": 500,
        "usageDetails": []
      }
    },
    "addOns": [],
    "extensions": {}
  },
  "clients": [
    {
      "clientAppId": "ff003f16a1de37f69d377dfdc39cc300",
      "clientAuthorizedNodeUuid": "ff003f16a1de37f69d377dfdc39cc300",
      "clientInventory": {
        "uuid": "ff003f16a1de37f69d377dfdc39cc300",
        "appId": "1bdbba7f53ad76edb9744ff13980c5fe",
        "ip": "172.99.99.99",
        "port": 8201,
        "lastSyncDate": "May 22, 2025 7:11:06 AM",
        "status": "Connected",
        "type": "Self",
        "protocol": "Normal",
        "createDate": "May 22, 2025 7:11:06 AM",
        "lastOpDate": "May 22, 2025 7:11:06 AM"
      },
      "platformUsed": 250,
      "platformUsageDetails": [
        {
          "resourceUuid": "ff0b56fb38313f4d8aec1d4ca0eb9900",
          "used": 1000,
          "createDate": "Nov 14, 2017 2:20:57 PM",
          "lastOpDate": "Nov 14, 2017 2:20:57 PM"
        }
      ],
      "addOns": []
    }
  ]
}
名字 类型 描述 起始版本
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
GetLicenseAuthorizedCapacityAction action = new GetLicenseAuthorizedCapacityAction();
action.clientAuthorizedNodeUuid = "ff003f16a1de37f69d377dfdc39cc300";
action.showServerCapacity = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
GetLicenseAuthorizedCapacityAction.Result res = action.call();
Python SDK
action = GetLicenseAuthorizedCapacityAction()
action.clientAuthorizedNodeUuid = "ff003f16a1de37f69d377dfdc39cc300"
action.showServerCapacity = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
res = action.call()

删除许可证文件(DeleteLicense)

API请求

URLs
DELETE /v1/licenses/mn/{managementNodeUuid}/actions?uuid={uuid}
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/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/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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 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
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/applications
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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/client
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 登录授权服务器使用的协议
  • Normal
  • ChaosForever
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-verify
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-application
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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结构中) 申请的配额类型
  • CPUSocket
  • CPUCore
  • VM
  • Host
  • Capacity
  • None
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-application
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X DELETE http://localhost:8080/zstack/v1/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/sync
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-applications
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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/client
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" -X DELETE http://localhost:8080/zstack/v1/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/longjobs
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-uuid
Curl示例
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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/longjobs
curl -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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
  "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"
  }
}
名字 类型 描述 起始版本
success boolean 0.6
error ErrorCode 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error 3.0.1
inventory LongJobInventory 详情参考inventory 3.0.1
#error
名字 类型 描述 起始版本
code String 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 0.6
description String 错误的概要描述 0.6
details String 错误的详细信息 0.6
elaboration String 保留字段,默认为null 0.6
opaque LinkedHashMap 保留字段,默认为null 0.6
cause ErrorCode 根错误,引发当前错误的源错误,若无原错误,该字段为null 0.6
#inventory
名字 类型 描述 起始版本
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/elaborations
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/errorcode/elaborations?category=BS&regex=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/categories
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/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/refresh
Headers
Authorization: OAuth the-session-uuid
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/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()
开发手册 | ZStack ZSphere · ZVF | ZStack 资源中心