Sahara API 中的对象更新支持

https://blueprints.launchpad.net/sahara/+spec/api-for-objects-update

本规范建议添加 API 调用,以允许更新当前无法通过这种方式更新的对象。

问题描述

当前的 Sahara API 不支持某些对象的更新,而这些更新可能由其他功能需要(例如,它需要用于稍后将在 ACL 规范中提出的共享和受保护资源实现)。

节点组模板、集群模板、作业二进制文件、数据源已经实现了更新功能,并且应该为集群、作业、作业执行和作业二进制文件内部对象实现更新功能。

提议的变更

将为集群、作业、作业执行和作业二进制文件内部对象添加更新操作。

对于集群和作业,目前仅允许更新描述和名称。对于作业二进制文件内部对象,仅允许更新名称。对于作业执行,将不允许更新任何内容,只会添加相应的接口方法。

还将添加对 PATCH HTTP 方法的支持,以修改现有资源。其实现方式与当前的 PUT 方法相同。

替代方案

数据模型影响

REST API 影响

将添加以下 API 调用

PATCH /v1.1/{tenant_id}/clusters/{cluster_id}

PATCH /v1.1/{tenant_id}/jobs/{job_id}

PATCH /v1.1/{tenant_id}/job-executions/{job_execution_id}

PATCH /v1.1/{tenant_id}/job-binary-internals/{job_binary_internal_id}

其他最终用户影响

这些更新方法将添加到 saharaclient API 中。

部署者影响

开发者影响

Sahara-image-elements impact

Sahara-dashboard / Horizon 影响

这些更新方法目前不会添加到 Horizon 中,但将在 ACL 规范的一部分中稍后添加。

实现

负责人

主要负责人

apavlov-n

工作项

  • 添加 PATCH 方法;

  • 添加新的 API 调用;

  • 将操作添加到 saharaclient;

  • 在 api-ref 中更新文档。

依赖项

测试

将添加 tempest 中的单元测试和 API 测试。

文档影响

将在 api-ref 中更新 Sahara REST API 文档。

参考资料