为命令行添加 bash 补全

https://blueprints.launchpad.net/python-glanceclient/+spec/add-bash-completion

目前 glance 客户端不支持命令补全。 目标是为客户端添加此功能。

问题描述

目前 glance 客户端没有命令行的 bash 补全功能。 此功能将提高客户端的易用性。

提议的变更

整合 bash 补全功能。 此功能使用 linux 脚本 bash_completion.d 来通过 bash_completion 命令向 Glance 请求所有命令和参数。 获取它们后,将对其进行过滤并显示。

使用示例

glance <tab><tab> —> 显示所有命令

glance image- <tab><tab> —> 显示所有以“image”开头(image-list, image-show, image-create…)的命令

如果只有一个,则会自动补全。

glance image-create <tab><tab> —> 显示所有可选参数

为了完成此功能,需要修改 devstack 和打包工具,以便将此脚本包含在安装程序(deb, rpm)中。

备选方案

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

此更改需要将 glance.bash_completion 复制到特定的系统路径

  • 这将影响 devstack

  • 这将影响特定的打包(deb, rpm)

开发人员影响

命令和参数直接从 argparse 提取。 开发者无需在添加新命令或参数时维护单独的列表。

实现

负责人

主要负责人

<juan-m-olle>

工作项

此功能需要

  • 添加 glance.bash_completion 脚本

  • 向 glance 客户端添加 bash_completion 命令。 此新命令返回客户端拥有的所有可用命令,并由 glance.bash_completion 使用。

依赖项

测试

单元测试将检查新的 shell 命令功能。

文档影响

需要提及此新功能。

参考资料