RDO管理器OSC插件库
python-rdomanager-oscplugin的Python项目详细描述
openstackclient引用插件模块
OSC插件系统的设计使得插件只需要 正确安装,以便OSC找到并使用它。它利用 setuptools向OSC播发的入口点机制 插件模块和支持的命令。
rdomanager osc plugin是一个openstackclient(osc)插件实现 实现对RDO管理器和的安装和管理有用的命令 既有低云又有过云。
发现
OSC通过枚举在下面找到的入口点来发现扩展 openstack.cli.extension并初始化给定的客户端模块。
[entry_points] openstack.cli.extension = oscplugin = oscplugin.plugin
客户端模块必须实现以下接口功能:
- API_NAME-包含插件api名称的字符串;这是 声明插件客户端模块的入口点的名称 (oscplugin = ...在上面的示例中)和的组名 插件命令(openstack.oscplugin.v1 =在下面的示例中)
- API_VERSION_OPTION(可选)-如果已设置,则为API的名称 version属性;这必须是有效的python标识符,并且 匹配在build_option_parser()中设置的目标。
- API_VERSIONS-将版本字符串映射到客户端类的dict
- build_option_parser(parser)-hook向解析器添加全局选项
- make_client(instance)-hook创建客户机对象
osc枚举加载的插件并从入口点加载命令 为API版本定义:
openstack.oscplugin.v1 = plugin_list = oscplugin.v1.plugin:ListPlugin plugin_show = oscplugin.v1.plugin:ShowPlugin
注意,osc将组名定义为openstack.<api-name>.v<version> 因此版本不应包含前导“v”字符。
第二步与除标识外的所有步骤相同 OSC本身的客户。由于身份验证,身份是特殊的 要求。这限制了向OSC添加其他验证模块的能力。
客户机
rdomanager_oscplugin客户机类的当前实现是 空占位符。此客户端对象不是必需的,而是OSC的客户端管理器 将根据需要进行维护,是其他插件的接口点 访问此插件实现的任何内容。