将实例名称作为参数添加到各种 CLI 命令¶
蓝图
https://blueprints.launchpad.net/trove/+spec/add-instance-name-to-cli
该提案允许在 CLI 中当前使用实例 ID 的任何地方指定实例名称。
问题描述¶
目前,只有“trove show”命令可以将实例 ID 或实例名称作为其参数。CLI 中还有许多其他命令需要实例引用作为参数,但要求使用实例 ID。允许客户在整个 CLI 中互换使用实例 ID 或实例名称将会很有帮助。
提议的变更¶
允许将实例 ID 或实例名称传递给以下命令
backup-create
backup-list-instance
configuration-attach
configuration-default
configuration-detach
database-create
database-delete
database-list
detach-replica
删除
metadata-create
metadata-delete
metadata-edit
metadata-list
metadata-show
metadata-update
resize-flavor
resize-instance
resize-volume
restart
root-enable
root-show
update
user-create
user-delete
user-grant-access
user-list
user-revoke-access
user-show
user-show-access
user-update-attributes
例如,trove delete 目前看起来是这样
usage: trove delete <instance>
Deletes an instance.
Positional arguments:
<instance> ID of the instance.
该提案使其看起来像这样
usage: trove delete <instance>
Deletes an instance.
Positional arguments:
<instance> ID or name of the instance.
这将仅是 CLI 的更改。
目前,如果提供的名称与多个实例匹配,trove show 命令将显示错误。该错误表明,在这种情况下,必须使用实例 ID。此行为将被保留,并用于上述所有命令。
配置¶
无
数据库¶
无
公共 API¶
无
公共 API 安全¶
无
内部 API¶
无
Guest Agent¶
无
备选方案¶
无
实现¶
里程碑¶
- 完成目标里程碑
Kilo-2
工作项¶
遍历 python-troveclient/troveclient/v1/shell.py,并在每个“do_<>”方法中的“实际”工作之前调用 _find_instance(cs, args.instance)。
修改 shell.py 中的帮助文本,以指示使用名称或 ID。
根据需要修改现有的单元测试。
依赖项¶
无
测试¶
如果我们的 Tempest 覆盖了 CLI,它将被调整为对所有修改后的命令传递实例名称。此外,LP 中存在一个现有 bug [1],表明我们应该为 CLI 编写测试。
这两点都被认为超出此 BP 的范围。
[1] https://bugs.launchpad.net/python-troveclient/+bug/1314793
文档影响¶
上述命令的帮助文本将被修改,以现在包含实例名称作为有效参数。我相信 CLI 文档是从代码生成的。
参考资料¶
无