支持属性 API¶
此规范添加了一组新的 API 来管理加速器的属性生命周期。
问题描述¶
属性旨在描述加速器的自定义信息。目前它们由驱动程序生成,用户无法添加/删除/更新它们,这与我们当前的场景不适用。
用例¶
管理员或操作员需要一组 API 来管理其加速器的属性。以下是一些有用的场景
对于一个网卡加速器,我们需要添加一个 phys_net 属性,它应该由部署者或其他组件创建。
对于某些函数易失性加速器,我们可以将函数名称作为属性创建。
此外,对于某些信息,例如 Function_UUID 是机器可读的。
提议的变更¶
无
备选方案¶
无
数据模型影响¶
将属性对象添加到可部署对象。
REST API 影响¶
URL: /v2/deployable/{uuid}/attribute
METHOD: GET
列出指定可部署对象的所有属性。
正常响应代码 (200) 和主体
{
"attributes":[{
"key":"key1",
"value":"value1",
"uuid":"uuid1"
}
]
}
错误响应代码和主体
401 (Unauthorized): 未授权
403 (Forbidden): RBAC 检查失败
无响应主体
URL: /v2/deployable/{uuid}/attribute/{uuid_or_key}
METHOD: GET
GET 指定可部署对象的指定属性。
查询参数: 无
正常响应代码 (200) 和主体
{
"attribute":
{
"key":"key1",
"value":"value1",
"uuid":"uuid1",
"created_at":"2020-05-28T03:03:20",
"updated_at":"2020-05-28T03:03:20"
}
}
错误响应代码和主体
401 (Unauthorized): 未授权
403 (Forbidden): RBAC 检查失败
404 (NotFound): 没有该 UUID 的可部署对象,或者没有该 UUID 的属性存在
无响应主体
URL: /v2/deployable/{uuid}/attribute
METHOD: POST
创建一个或多个可部署属性。
请求主体
[
{
"key": "key1",
"value": "value1"
},
{
"key": "key2",
"value": "value2"
},
...
]
正常响应代码和主体
204 (No content)
无响应主体
错误响应代码
401 (Unauthorized): 未授权
403 (Forbidden): RBAC 检查失败
409 (Conflict): 输入无效或键不唯一
错误响应主体
{"error": "error-string"}
URL: /v2/deployable/{uuid}/attribute/{uuid_or_key}
METHOD: DELETE
删除一个现有的可部署属性。
查询参数: 无
正常响应代码和主体
204 (No content)
无响应主体
错误响应代码
401 (Unauthorized): 未授权
403 (Forbidden): RBAC 检查失败
404 (NotFound): 没有该 UUID 的可部署对象,或者没有该 UUID 的属性存在
错误响应主体
{"error": "error-string"}
URL: /v2/deployable/{uuid}/attribute
METHOD: DELETE
删除可部署对象的所有属性。
查询参数: 无
正常响应代码和主体
204 (No content)
无响应主体
错误响应代码
401 (Unauthorized): 未授权
403 (Forbidden): RBAC 检查失败
错误响应主体
{"error": "error-string"}
URL: /v2/deployable/{uuid}/attribute/{uuid_or_key}
METHOD: PUT
更新一个现有的可部署属性。
查询参数: 无
请求主体 (可部署属性的值)
{"value": "value1"}
正常响应代码和主体
204 (No content)
无响应主体
错误响应代码和主体
401 (Unauthorized): 未授权
403 (Forbidden): RBAC 检查失败
404 (NotFound): 没有该 UUID 的可部署对象,或者没有该 UUID 的属性存在
错误响应主体
{"error": "error-string"}
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
更改 Cyborg 属性表。
性能影响¶
无
其他部署者影响¶
无
开发者影响¶
如果用户想使用这些功能,他们应该将他们的 Cyborg
项目升级到最新版本以支持这些更改。
实现¶
负责人¶
- 主要负责人
hejunli
工作项¶
更改 Cyborg REST API。
更改 Cyborg 属性表。
更改 Cyborg 可部署对象。
更改 cyborgclient 以支持属性管理操作。
添加相关的测试。
依赖项¶
无
测试¶
应添加适当的单元和功能测试。
文档影响¶
需要文档来记录微版本历史记录。
需要文档来解释 API 用法。
参考资料¶
无
历史记录¶
发布名称 |
描述 |
|---|---|
Antelope |
引入 |