OpenStack 加速 API¶
这是由 Cyborg 项目提供的 OpenStack 加速 v2 API 的参考。从 Ussuri 开始,Cyborg 只支持版本 2 REST API。版本 1 API 在 Train 中已被弃用,并在 Ussuri 中移除。
设备配置¶
列出、创建、显示详情、更新和删除设备配置。
一个 device_profile 是一个或多个加速器用户需求的命名集合。它可以被视为设备的 flavor。广义上来说,它包括两件事:特定资源类别的期望数量以及资源提供者必须满足的要求。虽然资源类别与 Placement 已知的类别相同,但有些要求对应于 Placement traits,而另一些则对应于 Cyborg 自身了解的属性。
列出所有设备配置的 UUID、名称、组等信息。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
device_profiles |
body |
数组 |
一个 |
name |
body |
字符串 |
设备配置的显示名称。 |
uuid |
body |
字符串 |
device_profile 的 uuid。 |
description |
body |
字符串 |
设备配置的显示描述。 |
groups |
body |
一个字典列表 |
这是一个字典列表,用于描述用户返回的加速器资源,其中用户使用键来描述 resource_classes 或 traits,并使用值来指示其数量或属性。这有意与 nova flavor 中的 extra_specs 类似,并使用相同的关键字来表示资源和 traits。键值对可以是资源/trait 或 Cyborg 属性。Cyborg 属性的形式为“accel:<key>”: “<value>”。有效的键值对可以在 此处 找到。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例响应:列出所有设备配置
{
"device_profiles":[
{
"name":"bym-1",
"uuid":"3d03fa5b-507c-4810-a344-759e9ef4337a",
"description": "",
"groups":[
{
"resources:FPGA":"1",
"trait:CUSTOM_FPGA_C260":"required"
}
],
"created_at": "2020-03-09 11:26:05+00:00",
"updated_at": null,
"links":[
{
"href":"http://192.168.32.217/accelerator/v2/device_profiles/3d03fa5b-507c-4810-a344-759e9ef4337a",
"rel":"self"
}
]
},
{
"name":"fpga-dp1",
"uuid":"5518a925-1c2c-49a2-a8bf-0927d9456f3e",
"description": "",
"groups":[
{
"trait:CUSTOM_CHENKE_TRAITS":"required",
"resources:FPGA":"1",
"accel:bitstream_id":"d5ca2f11-3108-4426-a11c-a959987565df"
}
],
"created_at": "2020-03-10 03:52:15+00:00",
"updated_at": null,
"links":[
{
"href":"http://192.168.32.217/accelerator/v2/device_profiles/5518a925-1c2c-49a2-a8bf-0927d9456f3e",
"rel":"self"
}
]
}
]
}
使用指定的名称或 UUID 获取一个 device_profile 的 UUID、名称、组。
正常响应代码:200
错误响应代码:badRequest(400),unauthorized(401),forbidden(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
device_profile_uuid |
路径 |
字符串 |
加速器请求的 device_profile 的 uuid。如果不是有效的 uuid,API 将返回 400。 |
device_profile_name_or_uuid |
路径 |
字符串 |
加速器请求的 device_profile 的名称或 uuid。 版本 2.2 中新增 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
device_profile |
body |
数组 |
一个 |
name |
body |
字符串 |
设备配置的显示名称。 |
uuid |
body |
字符串 |
device_profile 的 uuid。 |
description |
body |
字符串 |
设备配置的显示描述。 |
groups |
body |
一个字典列表 |
这是一个字典列表,用于描述用户返回的加速器资源,其中用户使用键来描述 resource_classes 或 traits,并使用值来指示其数量或属性。这有意与 nova flavor 中的 extra_specs 类似,并使用相同的关键字来表示资源和 traits。键值对可以是资源/trait 或 Cyborg 属性。Cyborg 属性的形式为“accel:<key>”: “<value>”。有效的键值对可以在 此处 找到。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例响应:获取特定设备配置的详细信息(v2.2)
{
"device_profile":{
"name":"fpga-dp1",
"uuid":"5518a925-1c2c-49a2-a8bf-0927d9456f3e",
"description": "",
"groups":[
{
"trait:CUSTOM_FPGA_INSPUR":"required",
"resources:FPGA":"1",
"accel:bitstream_id":"d5ca2f11-3108-4426-a11c-a959987565df"
}
],
"created_at": "2020-03-09 11:26:05+00:00",
"updated_at": null,
"links":[
{
"href":"http://192.168.32.217/accelerator/v2/device_profiles/5518a925-1c2c-49a2-a8bf-0927d9456f3e",
"rel":"self"
}
]
}
}
创建设备配置。payload 应该包含以下字段
正常响应代码:201
错误响应代码:请求错误(400)、未授权(401)、禁止(403)、冲突(409)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
设备配置的显示名称。 |
groups |
body |
一个字典列表 |
这是一个字典列表,用于描述用户请求的加速器资源,其中用户使用键来描述 resource_classes 或 traits,并使用值来指示其数量或属性。这有意与 nova flavor 中的 extra_specs 类似,并使用相同的关键字来表示资源和 traits。键值对可以是资源/trait 或 Cyborg 属性。Cyborg 属性的形式为“accel:<key>”: “<value>”。有效的键值对可以在 此处 找到。 |
description (可选) |
body |
字符串 |
设备配置的自由格式描述。长度限制为 255 个字符。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
name |
body |
字符串 |
设备配置的显示名称。 |
uuid |
body |
字符串 |
device_profile 的 uuid。 |
description |
body |
字符串 |
设备配置的显示描述。 |
groups |
body |
一个字典列表 |
这是一个字典列表,用于描述用户返回的加速器资源,其中用户使用键来描述 resource_classes 或 traits,并使用值来指示其数量或属性。这有意与 nova flavor 中的 extra_specs 类似,并使用相同的关键字来表示资源和 traits。键值对可以是资源/trait 或 Cyborg 属性。Cyborg 属性的形式为“accel:<key>”: “<value>”。有效的键值对可以在 此处 找到。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例 post curl,包含 resource/trait
curl -g -i -X POST $cyborg_endpoint_url/device_profiles \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "User-Agent:None" \
-H "X-Auth-Token: yourtoken" \
-d '[{"name": "afexample_3",
"description": "device profile description",
"groups": [{"resources:CUSTOM_ACCELERATOR_FPGA": "1",
"trait:CUSTOM_FPGA_1": "required",
"trait:CUSTOM_FUNCTION_ID_3AFB": "required"}]}]'
示例 post curl,包含一个 cyborg 属性,当需要 bitstream 时
curl -g -i -X POST $cyborg_endpoint_url/device_profiles \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "User-Agent:None" \
-H "X-Auth-Token: yourtoken" \
-d '[{"name": "afexample_3",
"description": "device profile description",
"groups": [{"resources:CUSTOM_ACCELERATOR_FPGA": "1",
"trait:CUSTOM_FPGA_1": "required",
"trait:CUSTOM_FUNCTION_ID_3AFB": "required",
"accel:bitstream_id": "a6a12670-7014-4cff-a563-cea949b57fb3"}]}]'
示例响应:创建设备配置
{
"name":"afexample_3",
"uuid":"1a939c88-0b01-408b-bab0-4c61d3a02d71",
"description": "",
"groups":[
{
"trait:CUSTOM_FUNCTION_ID_3AFB":"required",
"resources:CUSTOM_ACCELERATOR_FPGA":"1",
"trait:CUSTOM_FPGA_1":"required"
}
],
"created_at": "2020-03-09 11:26:05+00:00",
"updated_at": null,
"links":[
{
"href":"http://192.168.23.76/accelerator/v2/device_profiles/1a939c88-0b01-408b-bab0-4c61d3a02d71",
"rel":"self"
}
]
}
删除一个设备配置。不需要查询参数。
在 URL 中,要删除的设备配置应为逗号分隔的设备配置名称列表。
注意
今天,我们不允许删除被虚拟机使用的设备配置,因为 ARQ 在设备配置表上有一个外键。但是,我们将设备配置组复制到 ARQ 中,因此不需要此外键。因此,我们可以在 Ussuri 中改进。
响应¶
正常响应代码:204
成功的 DELETE 查询的响应中没有 body 内容
加速器请求¶
列出、创建、显示详情、更新和删除加速器请求。
一个加速器请求 (ARQ) 代表将单个加速器分配给实例的请求。ARQ 是根据 device_profile 中定义的 resource_groups 由操作员创建的。用户请求中的加速器请求可能包含 N 个请求组,每个组请求 M 个加速器;然后将为该加速器请求创建 N * M 个 ARQ。
列出 host_name、device_rp_uuid、instance_uuid 和 device_profile_group_id,用于所有 accelerator_requests。
示例响应:列出所有加速器请求
{
"arqs":[
{
"instance_uuid":"d1e3ff56-feef-4495-8e4f-1cf6ea59ffbc",
"hostname":"ubuntu-80",
"uuid":"7e88a0a5-6dd9-497e-a7e0-fa2d75728a3b",
"links":[
{
"href":"http://192.168.23.138/accelerator/v2/accelerator_requests/7e88a0a5-6dd9-497e-a7e0-fa2d75728a3b",
"rel":"self"
}
],
"created_at":"2019-10-25T07:58:23+00:00",
"device_profile_group_id":0,
"attach_handle_type":"TEST_PCI",
"updated_at":"2019-10-25T08:27:46+00:00",
"state":"Bound",
"device_rp_uuid":"03631f82-20a9-3f67-a29d-dc1abe4041bf",
"device_profile_name":"temp-dp1",
"attach_handle_info":{
"device":"00",
"bus":"0c",
"domain":"0000",
"function":"0"
}
},
{
"instance_uuid":null,
"hostname":null,
"uuid":"234c1acf-beca-47b2-9532-6bea61630936",
"links":[
{
"href":"http://192.168.23.138/accelerator/v2/accelerator_requests/234c1acf-beca-47b2-9532-6bea61630936",
"rel":"self"
}
],
"created_at":"2019-10-25T07:58:49+00:00",
"device_profile_group_id":0,
"attach_handle_type":"",
"updated_at":null,
"state":"Initial",
"device_rp_uuid":null,
"device_profile_name":"temp-dp1",
"attach_handle_info":{
}
}
]
}
使用指定的 UUID 获取一个 accelerator request 的 host_name、device’s_RP_UUID、instance UUID 和 device_profile_group_ID。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
accelerator_request_uuid |
路径 |
字符串 |
一个加速器请求的 UUID。 |
示例响应:获取特定加速器请求的详细信息
{
"instance_uuid":null,
"hostname":null,
"uuid":"234c1acf-beca-47b2-9532-6bea61630936",
"links":[
{
"href":"http://192.168.23.138/accelerator/v2/accelerator_requests/234c1acf-beca-47b2-9532-6bea61630936",
"rel":"self"
}
],
"created_at":"2019-10-25T07:58:49+00:00",
"device_profile_group_id":0,
"attach_handle_type":"",
"updated_at":null,
"state":"Initial",
"device_rp_uuid":null,
"device_profile_name":"tmp-dp1",
"attach_handle_info":{
}
}
创建加速器请求。payload 应该包含以下字段
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
device_profile_name |
body |
字符串 |
设备配置的显示名称。 |
示例 post curl
curl -g -i -X POST http://192.168.23.138/accelerator/v2/accelerator_requests \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "User-Agent: None" \
-H "X-Auth-Token: yourtoken" \
-d '{"device_profile_name": "tmp-dp1"}'
示例响应:创建加速器请求
{
"arqs":[
{
"instance_uuid":null,
"hostname":null,
"uuid":"89ec9c4d-73b2-4aaf-9225-485945aa7162",
"links":[
{
"href":"http://192.168.23.138/accelerator/v2/accelerator_requests/89ec9c4d-73b2-4aaf-9225-485945aa7162",
"rel":"self"
}
],
"created_at":"2019-10-25T12:01:05.896464+00:00",
"device_profile_group_id":0,
"attach_handle_type":"",
"updated_at":null,
"state":"Initial",
"device_rp_uuid":null,
"device_profile_name":"tmp-dp1",
"attach_handle_info":{
}
}
]
}
Nova compute manager 调用 Cyborg API PATCH /v2/accelerator_requests 以绑定和解绑 ARQ 与主机名、device’s RP UUID 和实例 UUID。这是一个异步调用,可以在后台准备或重新配置设备。
更新:一个加速器请求。payload 应该包含以下字段
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
accelerator_request_uuid |
路径 |
字符串 |
一个加速器请求的 UUID。 |
hostname |
body |
字符串 |
绑定或解绑一个加速器请求的目标主机的名称。 |
device_rp_uuid |
body |
字符串 |
绑定或解绑一个加速器请求的目标加速器 (资源提供者) 的 UUID。 |
instance_uuid |
body |
字符串 |
绑定或解绑一个加速器请求的目标实例的 UUID。 |
instance_project_id (可选) |
body |
字符串 |
绑定或解绑一个加速器请求的目标实例的项目 id。 新增于版本 2.1 |
示例 patch curl
curl -g -i -X PATCH http://192.168.23.138/accelerator/v2/accelerator_requests \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "User-Agent: None" \
-H "X-Auth-Token: yourtoken" \
-d '
{"89ec9c4d-73b2-4aaf-9225-485945aa7162":
[{"op": "add", "path": "/instance_uuid",
"value": "506220bc-18f2-4294-9b29-80267a021dc0"},
{"op": "add", "path": "/hostname", "value": "centos-80"},
{"op": "add", "path": "/device_rp_uuid",
"value": "03631f82-20a9-3f67-a29d-dc1abe4042bf"},
{"op": "add", "path": "/project_id",
"value": "8934fbea7b3f4685bd8ee7cf166a4c09"}]}'
示例响应:更新加速器请求
{
"instance_uuid":"506220bc-18f2-4294-9b29-80267a021dc0",
"hostname":"centos-80",
"uuid":"89ec9c4d-73b2-4aaf-9225-485945aa7162",
"links":[
{
"href":"http://192.168.23.138/accelerator/v2/accelerator_requests/89ec9c4d-73b2-4aaf-9225-485945aa7162",
"rel":"self"
}
],
"created_at":"2019-10-25T12:01:05+00:00",
"device_profile_group_id":0,
"attach_handle_type":"TEST_PCI",
"updated_at":"2019-10-25T12:49:49+00:00",
"state":"Bound",
"device_rp_uuid":"03631f82-20a9-3f67-a29d-dc1abe4042bf",
"device_profile_name":"device-profile-name1",
"attach_handle_info":{
"device":"00",
"bus":"0c",
"domain":"0000",
"function":"0"
}
}
删除加速器请求。不需要查询参数。
响应¶
正常响应代码:204
成功的 DELETE 查询的响应中没有 body 内容
设备¶
列出、显示设备的详细信息。启用或禁用设备。
一个 device 代表一个物理卡,例如 FPGA 卡或 GPU 卡。
列出所有设备的 UUID、名称、类型等信息。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
type (可选) |
查询 |
字符串 |
设备的类型。 |
vendor (可选) |
查询 |
字符串 |
设备的 vendor ID。 |
hostname (可选) |
查询 |
字符串 |
设备所在的计算节点的 hostname。 |
filters (可选) |
查询 |
数组 |
一个 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
devices |
body |
数组 |
一个 |
uuid |
body |
字符串 |
设备的 UUID。 |
type |
body |
字符串 |
设备类型。 |
供应商 |
body |
字符串 |
设备的 vendor。 |
model |
body |
字符串 |
设备的型号。 |
std_board_info |
body |
字符串 |
设备的标准板信息。 |
vendor_board_info |
body |
字符串 |
设备的 vendor 板信息。 |
hostname |
body |
字符串 |
设备的 host name。 |
status |
body |
字符串 |
设备的状态。维护中或启用。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例响应:列出所有设备
{
"devices":
[
{
"uuid": "359c0990-0258-44fd-8b05-fc510ac3d022",
"type": "FPGA",
"vendor": "0xABCD",
"model": "miss model info",
"std_board_info": "{'device_id': '0xabcd', 'class': 'Fake class'}",
"vendor_board_info": "fake_vendor_info",
"hostname": "computenode",
"created_at": "2020-03-13T02:26:31+00:00",
"updated_at": null,
"links":
[
{
"href": "https:///accelerator/v2/devices/359c0990-0258-44fd-8b05-fc510ac3d022",
"rel": "self"
}
]
}
]
}
使用指定的 UUID 获取一个设备的 UUID、名称、类型等信息。
正常响应代码:200
错误响应代码:请求错误(400)、未授权(401)、禁止(403)、未找到(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
device_uuid |
路径 |
字符串 |
设备的 UUID。如果不是有效的 UUID,API 将返回 400。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
uuid |
body |
字符串 |
设备的 UUID。 |
type |
body |
字符串 |
设备类型。 |
供应商 |
body |
字符串 |
设备的 vendor。 |
model |
body |
字符串 |
设备的型号。 |
std_board_info |
body |
字符串 |
设备的标准板信息。 |
vendor_board_info |
body |
字符串 |
设备的 vendor 板信息。 |
hostname |
body |
字符串 |
设备的 host name。 |
status |
body |
字符串 |
设备的状态。维护中或启用。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例响应:显示特定设备的详细信息
{
"uuid": "359c0990-0258-44fd-8b05-fc510ac3d022",
"type": "FPGA",
"vendor": "0xABCD",
"model": "miss model info",
"std_board_info": "{'device_id': '0xabcd', 'class': 'Fake class'}",
"vendor_board_info": "fake_vendor_info",
"hostname": "computenode",
"created_at": "2020-03-13T02:26:31+00:00",
"updated_at": null,
"links":
[
{
"href": "https:///accelerator/v2/devices/359c0990-0258-44fd-8b05-fc510ac3d022",
"rel": "self"
}
]
}
将设备设置为启用状态。
正常响应代码:200
错误响应代码:404(未找到设备),403(角色不是管理员)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
device_uuid |
路径 |
字符串 |
设备的 UUID。如果不是有效的 UUID,API 将返回 400。 |
响应¶
成功的请求的响应中没有 body 内容。
将设备设置为维护状态。
正常响应代码:200
错误响应代码:404(未找到设备),403(角色不是管理员)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
device_uuid |
路径 |
字符串 |
设备的 UUID。如果不是有效的 UUID,API 将返回 400。 |
响应¶
成功的请求的响应中没有 body 内容。
可部署项¶
列出、显示可部署项的详细信息。
一个 deployables 代表加速卡的一个逻辑单元,例如 FPGA 卡的可重新配置区域。
列出所有可部署项的 UUID、名称、属性列表等信息。
正常响应代码:200
错误响应代码:请求错误(400)、未授权(401)、禁止(403)、内部服务器错误(500)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
filters (可选) |
查询 |
字符串 |
一个 FilterType 列表(json 字符串格式)。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
deployables |
body |
数组 |
这是一个字典列表,每个字典代表一个可部署对象。 |
uuid |
body |
字符串 |
可部署项的 UUID。 |
parent_id |
body |
字符串 |
parent_id 指的是可部署项的父节点的 id。 |
root_id |
body |
字符串 |
root_id 指的是可部署项的根 id,用于嵌套树。 |
name |
body |
字符串 |
可部署项的名称。 |
num_accelerators (可选) |
body |
整数 |
此可部署项生成的加速器数量。 |
device_id |
body |
整数 |
与可部署项关联的设备的 ID。 |
attributes_list |
body |
字符串 |
一个字典列表(json 字符串格式),表示可部署项的属性。 |
rp_uuid |
body |
字符串 |
与此可部署项对应的资源提供者的 UUID。 |
driver_name |
body |
字符串 |
报告的驱动程序名称。 |
bitstream_id |
body |
字符串 |
与可部署项对应的 bitstream 的 UUID。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例响应:列出所有可部署项
{
"deployables":
[
{
"uuid": "29e23349-12ee-4978-963c-11484a4ae601",
"parent_id": null,
"root_id": null,
"name": "computenode_FakeDevice",
"num_accelerators": 16,
"device_id": 1,
"attributes_list": "[{'traits1': 'CUSTOM_FAKE_DEVICE'}, {'rc': 'FPGA'}]",
"rp_uuid": "853f07a6-19de-3dd6-b9f6-6c782daa3f7b",
"driver_name": "fake",
"bitstream_id": null,
"created_at": "2020-03-13T02:27:35+00:00",
"updated_at": "2020-03-13T02:27:36+00:00",
"links":
[
{
"href": "https:///accelerator/v2/deployables/29e23349-12ee-4978-963c-11484a4ae601",
"rel": "self"
},
{
"href": "https:///accelerator/deployables/29e23349-12ee-4978-963c-11484a4ae601",
"rel": "bookmark"
}
]
}
]
}
使用指定的 UUID 获取一个可部署项的 UUID、名称、属性列表等信息。
正常响应代码:200
错误响应代码:请求错误(400)、未授权(401)、禁止(403)、未找到(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
deployable_uuid |
路径 |
字符串 |
可部署项的 UUID。如果不是有效的 UUID,API 将返回 400。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
uuid |
body |
字符串 |
可部署项的 UUID。 |
parent_id |
body |
字符串 |
parent_id 指的是可部署项的父节点的 id。 |
root_id |
body |
字符串 |
root_id 指的是可部署项的根 id,用于嵌套树。 |
name |
body |
字符串 |
可部署项的名称。 |
num_accelerators (可选) |
body |
整数 |
此可部署项生成的加速器数量。 |
device_id |
body |
整数 |
与可部署项关联的设备的 ID。 |
attributes_list |
body |
字符串 |
一个字典列表(json 字符串格式),表示可部署项的属性。 |
rp_uuid |
body |
字符串 |
与此可部署项对应的资源提供者的 UUID。 |
driver_name |
body |
字符串 |
报告的驱动程序名称。 |
bitstream_id |
body |
字符串 |
与可部署项对应的 bitstream 的 UUID。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例响应:显示特定可部署项的详细信息
{
"uuid": "29e23349-12ee-4978-963c-11484a4ae601",
"parent_id": null,
"root_id": null,
"name": "computenode_FakeDevice",
"num_accelerators": 16,
"device_id": 1,
"attributes_list": "[{'traits1': 'CUSTOM_FAKE_DEVICE'}, {'rc': 'FPGA'}]",
"rp_uuid": "853f07a6-19de-3dd6-b9f6-6c782daa3f7b",
"driver_name": "fake",
"bitstream_id": null,
"created_at": "2020-03-13T02:27:35+00:00",
"updated_at": "2020-03-13T02:27:36+00:00",
"links":
[
{
"href": "https:///accelerator/v2/deployables/29e23349-12ee-4978-963c-11484a4ae601",
"rel": "self"
},
{
"href": "https:///accelerator/deployables/29e23349-12ee-4978-963c-11484a4ae601",
"rel": "bookmark"
}
]
}
属性¶
列出、显示、创建和删除属性。
一个 attribute 代表 FPGA 或 GPU 等物理卡的 trait。
列出 UUID、deployable_id、key、value 和所有设备的更多信息。
正常响应代码:200
错误响应代码:未授权(401)、禁止(403)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
attribute_request_depid |
查询 |
整数 |
与属性关联的 deployable 的 ID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
属性 |
body |
数组 |
一个 |
uuid |
body |
字符串 |
属性的 UUID。 |
id |
body |
整数 |
属性的 ID。 |
deployable_id |
body |
整数 |
与属性关联的 deployable 的 ID。 |
key |
body |
字符串 |
属性的 key。 |
value |
body |
字符串 |
属性的 value。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例响应:列出所有属性
{
"attributes":
[
{
"uuid": "359c0990-0258-44fd-8b05-fc510ac3d024",
"id": 0,
"deployable_id": 1,
"key": "rc",
"value": "FPGA",
"created_at": "2023-03-13T02:26:31+00:00",
"updated_at": null,
"links":
[
{
"href": "https:///accelerator/v2/attributes/359c0990-0258-44fd-8b05-fc510ac3d024",
"rel": "self"
}
]
}
]
}
获取具有指定 UUID 的属性的 UUID、id、deployable_id、key、value 等信息。
正常响应代码:200
错误响应代码:请求错误(400)、未授权(401)、禁止(403)、未找到(404)
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
attribute_uuid |
路径 |
字符串 |
属性的 UUID。 |
响应¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
uuid |
body |
字符串 |
属性的 UUID。 |
id |
body |
整数 |
属性的 ID。 |
deployable_id |
body |
整数 |
与属性关联的 deployable 的 ID。 |
key |
body |
字符串 |
属性的 key。 |
value |
body |
字符串 |
属性的 value。 |
created_at |
body |
字符串 |
资源被创建的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
updated_at |
body |
字符串 |
资源被更新的日期和时间。日期和时间戳格式为 ISO 8601。 CCYY-MM-DDThh:mm:ss±hh:mm
例如, |
links |
body |
数组 |
指向相关资源的链接。 |
示例响应:显示特定属性的详细信息
{
"uuid": "359c0990-0258-44fd-8b05-fc510ac3d024",
"id": 0,
"deployable_id": 1,
"key": "rc",
"value": "FPGA",
"created_at": "2023-03-13T02:26:31+00:00",
"updated_at": null,
"links":
[
{
"href": "https:///accelerator/v2/attributes/359c0990-0258-44fd-8b05-fc510ac3d024",
"rel": "self"
}
]
}
创建属性。有效载荷应包含以下字段
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
deployable_id |
body |
整数 |
与属性关联的 deployable 的 ID。 |
key |
body |
字符串 |
属性的 key。 |
value |
body |
字符串 |
属性的 value。 |
示例 post curl
curl -g -i -X POST $cyborg_endpoint_url/attributes \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "User-Agent:None" \
-H "X-Auth-Token: yourtoken" \
-d '{"deployable_id": "1",
"key": "rc",
"value": "FPGA"'
示例响应:创建属性
{
"attributes":[
{
"uuid": "359c0990-0258-44fd-8b05-fc510ac3d024",
"id": 0,
"deployable_id": 1,
"key": "rc",
"value": "FPGA",
"created_at": "2023-03-13T02:26:31+00:00",
"updated_at": null,
"links":
[
{
"href": "https:///accelerator/v2/attributes/359c0990-0258-44fd-8b05-fc510ac3d024",
"rel": "self"
}
]
}
]
}
删除属性。无需查询参数。