def get(self, request, *args, **kwargs): """ 获取组件检测信息 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 组件别名 required: true type: string paramType: path - name: check_uuid description: 检测id required: true type: string paramType: query """ check_uuid = request.GET.get("check_uuid", None) if not check_uuid: return Response(general_message(400, "params error", "参数错误,请求参数应该包含请求的ID"), status=400) code, msg, data = app_check_service.get_service_check_info( self.tenant, self.service.service_region, check_uuid) # 如果已创建完成 if self.service.create_status == "complete": app_check_service.update_service_check_info( self.tenant, self.service, data) check_brief_info = app_check_service.wrap_service_check_info( self.service, data) return Response( general_message(200, "success", "请求成功", bean=check_brief_info)) if data["service_info"] and len(data["service_info"]) < 2: # No need to save env, ports and other information for multiple services here. logger.debug("start save check info ! {0}".format( self.service.create_status)) save_code, save_msg = app_check_service.save_service_check_info( self.tenant, self.service, data) if save_code != 200: data["check_status"] = "failure" save_error = { "error_type": "check info save error", "solve_advice": "修改相关信息后重新尝试", "error_info": "{}".format(save_msg) } if data["error_infos"]: data["error_infos"].append(save_error) else: data["error_infos"] = [save_error] check_brief_info = app_check_service.wrap_service_check_info( self.service, data) result = general_message(200, "success", "请求成功", bean=check_brief_info) return Response(result, status=result["code"])
def list_services(self, region_name, tenant, check_uuid): # get detection information from data center(region) # first result(code) is always 200 code, msg, data = app_check_service.get_service_check_info(tenant, region_name, check_uuid) if code != 200: return 11006, "error listing service check info", msg, None if not data["check_status"] or data["check_status"].lower() != "success": return 11001, "not finished", "检测尚未完成", None if data["service_info"] and len(data["service_info"]) < 2: return 11002, "not multiple services", "不是多组件项目", None bean = data["service_info"] return 200, "success", "", bean
def list_services(self, region_name, tenant, check_uuid): # get detection information from data center(region) # first result(code) is always 200 code, msg, data = app_check_service.get_service_check_info( tenant, region_name, check_uuid) if code != 200: raise AbortRequest("error listing service check info", msg, status_code=400, error_code=11006) if not data["check_status"] or data["check_status"].lower( ) != "success": raise AbortRequest("not finished", "检测尚未完成", status_code=400, error_code=11001) if data["service_info"] and len(data["service_info"]) < 2: raise AbortRequest("not multiple services", "不是多组件项目", status_code=400, error_code=11002) return data["service_info"]
def get(self, request, *args, **kwargs): """ 获取组件检测信息 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 组件别名 required: true type: string paramType: path - name: check_uuid description: 检测id required: true type: string paramType: query """ check_uuid = request.GET.get("check_uuid", None) if not check_uuid: return Response(general_message(400, "params error", "参数错误,请求参数应该包含请求的ID"), status=400) code, msg, data = app_check_service.get_service_check_info( self.tenant, self.service.service_region, check_uuid) # 如果已创建完成 if self.service.create_status == "complete": service_info = data.get("service_info") if service_info is not None and len( service_info) > 1 and service_info[0].get( "language") == "Java-maven": pass else: app_check_service.update_service_check_info( self.tenant, self.service, data) check_brief_info = app_check_service.wrap_service_check_info( self.service, data) return Response( general_message(200, "success", "请求成功", bean=check_brief_info)) if data["service_info"] and len(data["service_info"]) < 2: # No need to save env, ports and other information for multiple services here. logger.debug("start save check info ! {0}".format( self.service.create_status)) save_code, save_msg = app_check_service.save_service_check_info( self.tenant, self.service, data) if save_code != 200: data["check_status"] = "failure" save_error = { "error_type": "check info save error", "solve_advice": "修改相关信息后重新尝试", "error_info": "{}".format(save_msg) } if data["error_infos"]: data["error_infos"].append(save_error) else: data["error_infos"] = [save_error] check_brief_info = app_check_service.wrap_service_check_info( self.service, data) code_from = self.service.code_from if code_from in support_oauth_type.keys(): for i in check_brief_info["service_info"]: if i["type"] == "source_from": result_url = re_spilt("[:,@]", i["value"]) if len(result_url) != 2: i["value"] = result_url[0] + '//' + result_url[ -2] + result_url[-1] result = general_message(200, "success", "请求成功", bean=check_brief_info) return Response(result, status=result["code"])
def get(self, request, *args, **kwargs): """ 获取compose文件检测信息 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: group_id description: 组ID required: true type: string paramType: path - name: check_uuid description: 检测id required: true type: string paramType: query - name: compose_id description: group_compose ID required: true type: string paramType: query """ sid = None try: check_uuid = request.GET.get("check_uuid", None) compose_id = request.GET.get("compose_id", None) if not check_uuid: return Response(general_message(400, "params error", "参数错误,请求参数应该包含请求的ID"), status=400) if not compose_id: return Response(general_message(400, "params error", "参数错误,请求参数应该包含compose ID"), status=400) group_compose = compose_service.get_group_compose_by_compose_id( compose_id) code, msg, data = app_check_service.get_service_check_info( self.tenant, self.response_region, check_uuid) logger.debug("start save compose info ! {0}".format( group_compose.create_status)) save_code, save_msg, service_list = compose_service.save_compose_services( self.tenant, self.user, self.response_region, group_compose, data) if save_code != 200: data["check_status"] = "failure" save_error = { "error_type": "check info save error", "solve_advice": "修改相关信息后重新尝试", "error_info": "{}".format(save_msg) } if data["error_infos"]: data["error_infos"].append(save_error) else: data["error_infos"] = [save_error] else: transaction.savepoint_commit(sid) compose_check_brief = compose_service.wrap_compose_check_info(data) result = general_message(200, "success", "请求成功", bean=compose_check_brief, list=[s.to_dict() for s in service_list]) except ResourceNotEnoughException as re: raise re except AccountOverdueException as re: logger.exception(re) return Response(general_message(10410, "resource is not enough", re.message), status=412) return Response(result, status=result["code"])
def get(self, request, *args, **kwargs): """ 获取服务检测信息 --- parameters: - name: tenantName description: 租户名 required: true type: string paramType: path - name: serviceAlias description: 服务别名 required: true type: string paramType: path - name: check_uuid description: 检测id required: true type: string paramType: query """ sid = None try: check_uuid = request.GET.get("check_uuid", None) if not check_uuid: return Response(general_message(400, "params error", "参数错误,请求参数应该包含请求的ID"), status=400) code, msg, data = app_check_service.get_service_check_info( self.tenant, self.service.service_region, check_uuid) # 如果已创建完成 if self.service.create_status == "complete": check_brief_info = app_check_service.wrap_service_check_info( self.service, data) return Response( general_message(200, "success", "请求成功", bean=check_brief_info)) # 开启保存点 sid = transaction.savepoint() logger.debug("start save check info ! {0}".format( self.service.create_status)) save_code, save_msg = app_check_service.save_service_check_info( self.tenant, self.service, data) if save_code != 200: transaction.savepoint_rollback(sid) data["check_status"] = "failure" save_error = { "error_type": "check info save error", "solve_advice": "修改相关信息后重新尝试", "error_info": "{}".format(save_msg) } if data["error_infos"]: data["error_infos"].append(save_error) else: data["error_infos"] = [save_error] else: transaction.savepoint_commit(sid) logger.debug("check result = {0}".format(data)) check_brief_info = app_check_service.wrap_service_check_info( self.service, data) result = general_message(200, "success", "请求成功", bean=check_brief_info) except Exception as e: logger.exception(e) result = error_message(e.message) if sid: transaction.savepoint_rollback(sid) return Response(result, status=result["code"])