python-openstackclient 中的 Trove 支持¶
将一套新的 Trove 命令作为 python-openstackclient 插件实现。
Launchpad 蓝图:https://blueprints.launchpad.net/trove/+spec/trove-support-in-python-openstackclient
问题描述¶
python-openstackclient 正在成为许多 OpenStack 项目的默认命令行客户端。Trove 可以从将其所有客户端命令作为在 python-troveclient 仓库中实现的单个 python-openstackclient 插件来实现中受益。
提议的变更¶
本规范的意图是确定要实现的命令并建立命令和参数名称的约定。本规范不打算成为命令和参数名称的完整且正确的规范。细节可以留给命令本身的代码审查。
将采用以下约定来命名命令
按照
OpenStackClient约定,命令名称始终采用以下形式
openstack [<global-options>] <object-1> <action> [<object-2>] \
[command-arguments]
将采用以下约定来命名参数和参数标志
按照
openstack约定,除了非常常见的参数外,将避免使用单字符标志。当数据库或集群名称和 ID 被指定时,它们将分别是完整命令名称之后的第一和第二个位置参数。
当参数是必需时,它将是一个位置参数。
以下 trove 命令已经为 openstack 实现
trove secgroup-add-rule
openstack security group rule create
trove secgroup-delete-rule
openstack security group rule delete
trove secgroup-list
openstack security group list
trove secgroup-list-rules
openstack security group rule list
以下 trove 命令将最初为 openstack 实现,建议使用这些命令名称
trove backup-create <instance> <name>
openstack database backup create <instance> <name>
trove backup-delete <backup>
openstack database backup delete <backup>
trove backup-list
openstack database backup list
trove backup-list-instance <instance>
openstack database backup list <instance>
trove backup-show <backup>
openstack database backup show <backup>
trove cluster-create <name> <datastore> <datastore_version>
openstack database cluster create <name> <datastore> <datastore_version>
trove cluster-delete <cluster>
openstack database cluster delete <cluster>
trove cluster-list
openstack database cluster list
trove cluster-modules <cluster>
openstack database module list cluster <cluster>
trove cluster-show <cluster>
openstack database cluster show <cluster>
trove configuration-attach <instance> <configuration>
openstack database configuration add <instance> <configuration>
trove configuration-create <name> <values>
openstack database configuration create <name> <values>
trove configuration-default <instance>
openstack database configuration show <instance>
trove configuration-delete <configuration_group>
openstack database configuration delete <configuration_group>
trove configuration-detach <instance>
openstack database configuration remove <instance>
trove configuration-instances <configuration_group>
openstack database configuration list --instance <configuration_group>
trove configuration-list
openstack database configuration list
trove configuration-parameter-list <datastore_version>
openstack database configuration parameter list <datastore_version>
trove configuration-parameter-show <datastore_version> <parameter>
openstack database configuration parameter show <datastore_version> <parameter>
trove configuration-patch <configuration_group> <values>
openstack database configuration set --patch <configuration_group> <values>
trove configuration-show <configuration_group>
openstack database configuration show <configuration_group>
trove configuration-update <configuration_group> <values>
openstack database configuration set <configuration_group> <values>
trove create <name> <flavor>
openstack database cluster create <name> <datastore> <datastore_version>
trove database-create <instance> <name>
openstack database add <instance> <name>
trove database-delete <instance> <database>
openstack database remove <instance> <database>
trove database-list <instance>
openstack database list <instance>
trove datastore-list
openstack datastore list
trove datastore-show <datastore>
openstack datastore show <datastore>
trove datastore-version-list <datastore>
openstack datastore version list <datastore>
trove datastore-version-show <datastore_version>
openstack datastore version show <datastore_version>
trove delete <instance>
openstack database cluster delete <cluster>
trove detach-replica <instance>
openstack database replica unset <instance>
trove flavor-list
openstack database flavor list
trove flavor-show <flavor>
openstack database flavor show <flavor>
trove limit-list
openstack database limits list
trove list
openstack database instance list
openstack database cluster list
trove module-apply <instance> <module>
openstack database instance set module <instance> <module>
trove module-create <name> <type> <filename>
openstack database module create <name> <type> <filename>
trove module-delete <module>
openstack database module delete <module>
trove module-instances <module>
openstack database instance list module <module>
trove module-list
openstack database module list
trove module-list-instance <instance>
openstack database module list instance <instance>
trove module-query <instance>
openstack database instance list module <instance> --status
trove module-remove <instance> <module>
openstack database instance remove module <instance> <module>
trove module-retrieve <instance>
openstack database instance show module <instance>
trove module-show <module>
openstack database module show <module>
trove module-update <module>
openstack database module set <module>
trove resize-instance <instance> <flavor>
openstack database instance resize <instance> <flavor>
openstack database cluster resize <cluster> <flavor>
trove resize-volume <instance> <size>
openstack database instance volume resize <instance> <size>
openstack database cluster volume resize <cluster> <size>
trove restart <instance>
openstack database instance restart <instance>
openstack database cluster restart <cluster>
trove root-enable <instance_or_cluster>
openstack database set --root <instance_or_cluster>
trove root-show <instance_or_cluster>
openstack database show --root <instance_or_cluster>
trove show <instance>
openstack database cluster show <cluster>
trove update <instance>
openstack database cluster set <cluster>
trove user-create <instance> <name> <password>
openstack database user create <instance> <name> <password>
trove user-delete <instance> <name>
openstack database user delete <instance> <name>
trove user-grant-access <instance> <name> <databases>
openstack database user add --access <instance> <name> <databases>
trove user-list <instance>
openstack database user list <instance>
trove user-revoke-access <instance> <name> <database>
openstack database user remove --access <instance> <name> <database>
trove user-show <instance> <name>
openstack database user show <instance> <name>
trove user-show-access <instance> <name>
openstack database user show --access <instance> <name>
trove user-update-attributes <instance> <name>
openstack database user set --attributes <instance> <name>
配置¶
无
数据库¶
无
公共 API¶
无
公共 API 安全¶
无
Python API¶
无
CLI (python-troveclient)¶
将在 /troveclient/osc 下创建一个名为 osc 的新目录,用于 OpenStackClient 插件和上述命令。
内部 API¶
无
Guest Agent¶
无
备选方案¶
无
Dashboard 影响 (UX)¶
无
升级影响¶
无
依赖项¶
python-openstackclient osc-lib
测试¶
功能测试将位于:/troveclient/tests/osc/ 功能测试将测试所列命令的输入和输出。集成测试将验证 OpenStackClient 插件是否与其他项目协同工作。这些应该放在 /trove/tests/tempest/tests/api
文档影响¶
OpenStack 客户端采用列表将被更新以包含 python-troveclient。
参考资料¶
https://docs.openstack.org/developer/python-openstackclient/commands.html https://docs.openstack.org/cli-reference/trove.html
附录¶
无