def get(self, request, *args, **kwargs): """获取插件信息""" plugin_id = request.GET.get("plugin_id") build_version = request.GET.get("build_version") if not plugin_id or not build_version: logger.error("plugin.relation", u'参数错误,plugin_id and version_id') data = {"success": False, "code": 405, 'msg': u'参数错误'} data = oldResultSuitGeneralMessage(data, "params error", "") return JsonResponse(data, status=200) result = {} result["config_group"] = self.useDefaultAttr(plugin_id, build_version, "get") build_relations = plugin_svc.get_tenant_service_plugin_relation_by_plugin( self.service.service_id, plugin_id) version_info = plugin_svc.getPluginMetaType(plugin_id, build_version) bl = {} bl["create_time"] = build_relations[0].create_time bl["build_info"] = version_info.update_info bl["memory"] = version_info.min_memory result["build_version"] = bl result["success"] = True result["code"] = 200 result["msg"] = u"操作成功" result = general_message(200, "success", u"操作成功", result["build_version"], result["config_group"]) return JsonResponse(result, status=200)
def put(self, request, *args, **kwargs): """插件启停""" result = {} config = QueryDict(request.body) logger.debug( "plugin.relation", "in PluginServiceRelation put method params is {}".format(config)) try: plugin_id = config.get("plugin_id", None) switch = config.get("is_switch", True) switch = plugin_svc.chargeSwtich(switch) relations = plugin_svc.get_tenant_service_plugin_relation_by_plugin( self.service.service_id, plugin_id) if relations > 0: build_version = relations[0].build_version else: result["success"] = False result["code"] = 404 result['msg'] = u"未找到关联插件的构建版本" result = oldResultSuitGeneralMessage(result, "success", "") return JsonResponse(result, status=200) body_relation = {} body_relation["plugin_id"] = plugin_id body_relation["switch"] = switch body_relation["version_id"] = build_version logger.debug("plugin.relation", "is_switch body is {}".format(body_relation)) res, resultBody = region_api.updatePluginServiceRelation( self.response_region, self.tenant.tenant_name, self.serviceAlias, body_relation) if res.status == 200: plugin_svc.update_service_plugin_relation( self.service.service_id, plugin_id, build_version, switch) result["success"] = True result["code"] = 200 result['msg'] = u"操作成功" result = oldResultSuitGeneralMessage(result, "success", "") return JsonResponse(result, status=200) else: result["success"] = False result["code"] = res.status result['msg'] = resultBody result = oldResultSuitGeneralMessage( result, "update plugin status error", "") return JsonResponse(result, status=200) except Exception, e: logger.error("plugin.relation", e) result["success"] = False result["code"] = 500 result["msg"] = u"操作失败" result = oldResultSuitGeneralMessage(result, "update plugin status error", "") return JsonResponse(result, status=200)
def put(self, request, plugin_id, *args, **kwargs): """ 启停用组件插件 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 组件别名 required: true type: string paramType: path - name: plugin_id description: 插件ID required: true type: string paramType: path - name: is_switch description: 插件启停状态 required: true type: boolean paramType: form """ try: if not plugin_id: return Response(general_message(400, "params error", "参数异常"), status=400) switch = request.data.get("is_switch", True) switch = plugin_svc.chargeSwtich(switch) relations = plugin_svc.get_tenant_service_plugin_relation_by_plugin(self.service.service_id, plugin_id) if relations > 0: build_version = relations[0].build_version else: return Response(general_message(404, "params error", "未找到关联插件的构建版本"), status=400) body_relation = {} body_relation["plugin_id"] = plugin_id body_relation["switch"] = switch body_relation["version_id"] = build_version logger.debug("plugin.relation", "is_switch body is {}".format(body_relation)) res, resultBody = region_api.updatePluginServiceRelation(self.service.service_region, self.tenant.tenant_name, self.service.service_alias, body_relation) if res.status == 200: plugin_svc.update_service_plugin_relation(self.service.service_id, plugin_id, build_version, switch) return Response(general_message(200, "success", "操作成功"), status=200) else: result = general_message(500, "update plugin status error", "系统异常") return Response(result, result["code"]) except Exception, e: logger.exception(e) result = error_message(e.message) return Response(result, status=result["code"])
def get(self, request, plugin_id, *args, **kwargs): """ 应用插件查看配置 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 服务别名 required: true type: string paramType: path - name: plugin_id description: 插件ID required: true type: string paramType: path - name: build_version description: 插件版本 required: true type: string paramType: path """ build_version = request.GET.get("build_version", None) if not plugin_id or not build_version: logger.error("plugin.relation", u'参数错误,plugin_id and version_id') return Response(general_message(400, "params error", "参数错误"), status=400) result = {} try: result["config_group"] = self.useDefaultAttr(plugin_id, build_version, "get") build_relations = plugin_svc.get_tenant_service_plugin_relation_by_plugin(self.service.service_id, plugin_id) version_info = plugin_svc.getPluginMetaType(plugin_id, build_version) bl = {} bl["create_time"] = build_relations[0].create_time bl["build_info"] = version_info.update_info bl["memory"] = version_info.min_memory result["build_version"] = bl result["success"] = True result["code"] = 200 result["msg"] = u"操作成功" result = general_message(200, "success", u"操作成功", result["build_version"], result["config_group"]) return Response(result, status=200) except HasNoDownStreamService as e: logger.error("service has no dependence services operation suspend") return Response(general_message(409, "service has no dependence", "应用没有依赖其他应用,配置无效"),status=409) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, result["code"])