CLI: 通过多个名称或 ID 删除

https://blueprints.launchpad.net/python-saharaclient/+spec/cli-delete-by-multiple-names-or-ids

在 sahara-cli 中,只能通过名称或 ID 删除一个对象。在几个 os 客户端中,例如 nova 和 heat,可以通过提供 ID 或名称列表来删除对象。此蓝图是关于在 sahara-cli 中添加此功能。

问题描述

CLI 不包括通过名称或 ID 列表删除对象的功能。

提议的变更

  • 长期解决方案

我们的长期目标是使 sahara-cli 与其他 os 客户端更加一致。

当前 CLI 用于 cluster-delete 的用法

sahara cluster-delete [--name NAME] [--id <cluster_id>]

Nova CLI 用于删除的用法

nova delete <server> [<server> ...]

在 nova-cli 和其他 os 客户端中,您可以直接传递要删除的项的 ID 或名称。我们可以重构 sahara-cli 以删除 –name 和 –id 参数。因此,从长远来看,sahara cli 的用法将是

sahara cluster-delete <cluster> [<cluster> ...]

Positional arguments:
 <cluster>  Name or ID of cluster(s).``
  • 短期解决方案

请注意,CLI 重构需要大量时间,因此作为短期解决方案,可以临时在 CLI 的所有删除动词中使用 –names 和 –ids。并且一旦 CLI 被重构,我们将删除所有 –name(s) 和 –id(s) 参数。

因此,提议的更改意味着添加 –names 和 –ids 参数,它们由逗号分隔的名称和 ID 列表组成

sahara cluster-delete [--name NAME] [--id cluster_id]
                      [--names NAMES] [--ids IDS]

替代方案

没有短期解决方案,并且仅依赖 CLI 重构来提供此功能。

数据模型影响

REST API 影响

其他最终用户影响

部署者影响

开发者影响

Sahara-image-elements impact

Sahara-dashboard / Horizon 影响

实现

更新 CLI 方法 saharaclient/api/shell.py 中的 *_delete

负责人

主要负责人:Pierre Padrixe (stannie)

工作项

  • 在 CLI 中添加通过名称或 ID 列表删除的功能

  • CLI 重构完成后,删除 –name(s) –id(s) 参数

依赖项

  • 对于长期解决方案:我们依赖 CLI 的重构

  • 对于短期解决方案:没有

测试

更新测试以删除名称和 ID 列表

文档影响

需要更新 CLI 的文档

参考资料