def build_plugin_data_4marketsvc(self, tenant, service, plugin): plugin_key = plugin["plugin_key"] p = plugin_repo.get_plugin_by_origin_share_id(tenant.tenant_id, plugin_key) plugin_id = p[0].plugin_id plugin_version = plugin_version_service.get_newest_plugin_version(plugin_id) build_version = plugin_version.build_version region_config = self.get_region_config_from_db(service, plugin_id, build_version) data = dict() data["plugin_id"] = plugin_id data["switch"] = True data["version_id"] = build_version data.update(region_config) return data
def __create_plugin_for_tenant(self, region_name, user, tenant, plugins): for plugin in plugins: # 对需要安装的插件查看本地是否有安装 tenant_plugin = plugin_repo.get_plugin_by_origin_share_id( tenant.tenant_id, plugin["plugin_key"]) # 如果本地没有安装,进行安装操作 if not tenant_plugin: try: status, msg = self.__install_plugin( region_name, user, tenant, plugin) if status != 200: return status, msg except Exception as e: logger.exception(e) return 500, "create plugin error" return 200, "success"
def build_plugin_data_4marketsvc(self, tenant, service, plugin): plugin_key = plugin["plugin_key"] p = plugin_repo.get_plugin_by_origin_share_id(tenant.tenant_id, plugin_key) if not p: logger.warning("open plugin failure , plugin {} not found in tenant {}".format(plugin_key, tenant.tenant_id)) return plugin_id = p[0].plugin_id plugin_version = plugin_version_service.get_newest_plugin_version(tenant.tenant_id, plugin_id) build_version = plugin_version.build_version region_config = self.get_region_config_from_db(service, plugin_id, build_version) data = dict() data["plugin_id"] = plugin_id data["switch"] = True data["version_id"] = build_version data.update(region_config) return data
def __create_service_plugins(self, region, tenant, service_list, app_plugin_map, old_new_id_map): try: plugin_version_service.update_plugin_build_status(region, tenant) for service in service_list: plugins = app_plugin_map.get(service.service_id) if plugins: for plugin_config in plugins: plugin_key = plugin_config["plugin_key"] p = plugin_repo.get_plugin_by_origin_share_id( tenant.tenant_id, plugin_key) plugin_id = p[0].plugin_id service_plugin_config_vars = plugin_config["attr"] plugin_version = plugin_version_service.get_newest_plugin_version( plugin_id) build_version = plugin_version.build_version self.__save_service_config_values( service, plugin_id, build_version, service_plugin_config_vars, old_new_id_map) # 2.从console数据库取数据生成region数据 region_config = app_plugin_service.get_region_config_from_db( service, plugin_id, build_version) data = dict() data["plugin_id"] = plugin_id data["switch"] = True data["version_id"] = build_version data.update(region_config) code, msg, relation = app_plugin_service.create_service_plugin_relation( service.service_id, plugin_id, build_version, "", True) if code != 200: raise Exception("msg") region_api.install_service_plugin( service.service_region, tenant.tenant_name, service.service_alias, data) except Exception as e: logger.exception(e)