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