WeBankPartners / wecube-platform

WeCube Platform
Apache License 2.0
366 stars 86 forks source link

插件注册支持多次注册 #974

Closed chaneyliu closed 4 years ago

chaneyliu commented 4 years ago

描述您的需求
CMDB的confirm 插件服务和saltstack的script插件服务、database插件服务等,会对应多个entity使用,在插件注册时指定一个entity后,无法在应用于其他entity。 例如:saltstack的script插件服务对应资源实例(host)时,可以用于执行主机初始化脚本;对应业务实例时,可以用于执行部署脚本。

通过增加注册名称字段,支持一个插件被多册注册(绑定的entity不同或提供的parameter不同)。

插件包更新,已注册插件列表需要复制一份关联到新插件包,并将注册状态全部更新为未注册。

交互设计单独发送。

预期行为

插件注册支持多次注册。 1、plugin_configs增加一列register_name.
2、plugin_config_interfaces 的service_name和service_display_name,增加register_name。比如:qcloud/route-table(### host)/create 3、在插件注册XML自带的注册信息,register_name为空,后继客户可以更改。 4、在插件注册提供新增注册命名、复制源选择。 后台将复制选择的复制源plugin_configs,以及对应的plugin_config_interfaces、plugin_config_interface_parameters的数据。状态为未注册。 5、提供对于已注销的plugin_configs,提供删除功能(包括删除plugin_config_interfaces、plugin_config_interface_parameters的数据)。同时校验“一个版本的最后一个plugin_configs”无法删除。

描述您考虑过的替代方案

附加

BenJaMiniature commented 4 years ago

当前返回给前端的插件服务列表是by pluginConfig的,当pluginConfig中增加字段registerName之后,对不同的registerName返回的pluginConfig会有重复,需要去重。pluginConfigInterface需要返回带registerName和不带registerName的pluginConfig关联的pluginConfigInterface的全集。