コード例 #1
0
    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
コード例 #2
0
 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"
コード例 #3
0
    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
コード例 #4
0
    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)