예제 #1
0
    def get_service_mnt_details(self, tenant, service, volume_types, page=1, page_size=20):

        all_mnt_relations = mnt_repo.get_service_mnts_filter_volume_type(tenant.tenant_id, service.service_id, volume_types)
        total = len(all_mnt_relations)
        mnt_paginator = JuncheePaginator(all_mnt_relations, int(page_size))
        mnt_relations = mnt_paginator.page(page)
        mounted_dependencies = []
        if mnt_relations:
            for mount in mnt_relations:
                dep_service = service_repo.get_service_by_service_id(mount.dep_service_id)
                if dep_service:
                    gs_rel = group_service_relation_repo.get_group_by_service_id(dep_service.service_id)
                    group = None
                    if gs_rel:
                        group = group_repo.get_group_by_pk(tenant.tenant_id, service.service_region, gs_rel.group_id)
                    dep_volume = volume_repo.get_service_volume_by_name(dep_service.service_id, mount.mnt_name)
                    if dep_volume:
                        mounted_dependencies.append({
                            "local_vol_path": mount.mnt_dir,
                            "dep_vol_name": dep_volume.volume_name,
                            "dep_vol_path": dep_volume.volume_path,
                            "dep_vol_type": dep_volume.volume_type,
                            "dep_app_name": dep_service.service_cname,
                            "dep_app_group": group.group_name if group else '未分组',
                            "dep_vol_id": dep_volume.ID,
                            "dep_group_id": group.ID if group else -1,
                            "dep_app_alias": dep_service.service_alias
                        })
        return mounted_dependencies, total
예제 #2
0
    def get(self, request, *args, **kwargs):
        # 获取单个tcp/udp策略信息
        try:
            tcp_rule_id = request.GET.get("tcp_rule_id", None)
            # 判断参数
            if not tcp_rule_id:
                return Response(general_message(400, "parameters are missing", "参数缺失"), status=400)

            tcpdomain = tcp_domain.get_service_tcpdomain_by_tcp_rule_id(tcp_rule_id)
            if tcpdomain:
                bean = tcpdomain.to_dict()
                service = service_repo.get_service_by_service_id(tcpdomain.service_id)
                service_alias = service.service_cname if service else ''
                group_name = ''
                g_id = 0
                if service:
                    gsr = group_service_relation_repo.get_group_by_service_id(service.service_id)
                    if gsr:
                        group = group_repo.get_group_by_id(int(gsr.group_id))
                        group_name = group.group_name if group else ''
                        g_id = int(gsr.group_id)
                bean.update({"service_alias": service_alias})
                bean.update({"group_name": group_name})
                bean.update({"g_id": g_id})
                result = general_message(200, "success", "查询成功", bean=bean)
            else:
                bean = dict()
                result = general_message(200, "success", "查询成功", bean=bean)

        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=result["code"])
예제 #3
0
    def get_service_unmnt_details(self, tenant, service, service_ids, page,
                                  page_size):

        services = service_repo.get_services_by_service_ids(*service_ids)
        current_tenant_services_id = service_ids
        # 已挂载的服务路径
        dep_mnt_names = mnt_repo.get_service_mnts(
            tenant.tenant_id, service.service_id).values_list('mnt_name',
                                                              flat=True)
        # 当前未被挂载的共享路径
        service_volumes = volume_repo.get_services_volumes(
            current_tenant_services_id).filter(
                volume_type__in=[self.SHARE, self.CONFIG]).exclude(
                    service_id=service.service_id).exclude(
                        volume_name__in=dep_mnt_names)
        # 只展示无状态的服务组件(有状态服务的存储类型为config-file也可)
        logger.debug('----------volumes----->{0}'.format(
            type(service_volumes)))
        volumes = list(service_volumes)
        for volume in volumes:
            service_obj = service_repo.get_service_by_service_id(
                volume.service_id)
            if service_obj:
                if service_obj.extend_method != "stateless" and volume.volume_type != "config-file":
                    volumes.remove(volume)
        total = len(volumes)
        volume_paginator = JuncheePaginator(volumes, int(page_size))
        page_volumes = volume_paginator.page(page)
        un_mount_dependencies = []
        for volume in page_volumes:
            gs_rel = group_service_relation_repo.get_group_by_service_id(
                volume.service_id)
            group = None
            if gs_rel:
                group = group_repo.get_group_by_pk(tenant.tenant_id,
                                                   service.service_region,
                                                   gs_rel.group_id)
            un_mount_dependencies.append({
                "dep_app_name":
                services.get(service_id=volume.service_id).service_cname,
                "dep_app_group":
                group.group_name if group else '未分组',
                "dep_vol_name":
                volume.volume_name,
                "dep_vol_path":
                volume.volume_path,
                "dep_vol_type":
                volume.volume_type,
                "dep_vol_id":
                volume.ID,
                "dep_group_id":
                group.ID if group else -1,
                "dep_app_alias":
                services.get(service_id=volume.service_id).service_alias
            })
        return un_mount_dependencies, total
예제 #4
0
 def update_or_create_service_group_relation(self, tenant, service, group_id):
     gsr = group_service_relation_repo.get_group_by_service_id(service.service_id)
     if gsr:
         gsr.group_id = group_id
         gsr.save()
     else:
         params = {"service_id": service.service_id, "group_id": group_id, "tenant_id": tenant.tenant_id,
                   "region_name": service.service_region}
         group_service_relation_repo.create_service_group_relation(**params)
     return 200, "success"
예제 #5
0
    def get_service_unmnt_details(self, tenant, service, service_ids, page,
                                  page_size, q):

        services = service_repo.get_services_by_service_ids(service_ids)
        current_tenant_services_id = service_ids
        # 已挂载的组件路径
        dep_mnts = mnt_repo.get_service_mnts(tenant.tenant_id,
                                             service.service_id)
        dep_volume_ids = [dep_mnt.volume_id for dep_mnt in dep_mnts]
        # 当前未被挂载的共享路径
        service_volumes = volume_repo.get_services_volumes(current_tenant_services_id) \
            .filter(volume_type__in=[self.SHARE, self.CONFIG]) \
            .exclude(service_id=service.service_id) \
            .exclude(ID__in=dep_volume_ids).filter(q)
        # 只展示无状态的组件(有状态组件的存储类型为config-file也可)
        volumes = list(service_volumes)
        copy_volumes = copy.copy(volumes)
        for volume in copy_volumes:
            service_obj = service_repo.get_service_by_service_id(
                volume.service_id)
            if service_obj:
                if is_state(service_obj.extend_method):
                    if volume.volume_type != "config-file":
                        volumes.remove(volume)
        total = len(volumes)
        volume_paginator = JuncheePaginator(volumes, int(page_size))
        page_volumes = volume_paginator.page(page)
        un_mount_dependencies = []
        for volume in page_volumes:
            gs_rel = group_service_relation_repo.get_group_by_service_id(
                volume.service_id)
            group = None
            if gs_rel:
                group = group_repo.get_group_by_pk(tenant.tenant_id,
                                                   service.service_region,
                                                   gs_rel.group_id)
            un_mount_dependencies.append({
                "dep_app_name":
                services.get(service_id=volume.service_id).service_cname,
                "dep_app_group":
                group.group_name if group else '未分组',
                "dep_vol_name":
                volume.volume_name,
                "dep_vol_path":
                volume.volume_path,
                "dep_vol_type":
                volume.volume_type,
                "dep_vol_id":
                volume.ID,
                "dep_group_id":
                group.ID if group else -1,
                "dep_app_alias":
                services.get(service_id=volume.service_id).service_alias
            })
        return un_mount_dependencies, total
예제 #6
0
    def get_service_unmount_volume_list(self, tenant, service, service_ids, page, page_size, is_config=False):
        """
        1. 获取租户下其他所有组件列表,方便后续进行名称的冗余
        2. 获取其他组件的所有可共享的存储
        3. 获取已经使用的存储,方便后续过滤
        4. 遍历存储,组装信息
        """

        for serviceID in service_ids:
            if serviceID == service.service_id:
                service_ids.remove(serviceID)
        services = service_repo.get_services_by_service_ids(service_ids)
        state_services = []  # 有状态组件
        for svc in services:
            if is_state(svc.extend_method):
                state_services.append(svc)
        state_service_ids = [svc.service_id for svc in state_services]

        current_tenant_services_id = service_ids
        # 已挂载的组件路径
        mounted = mnt_repo.get_service_mnts(tenant.tenant_id, service.service_id)
        mounted_ids = [mnt.volume_id for mnt in mounted]
        # 当前未被挂载的共享路径
        service_volumes = []
        # 配置文件无论组件是否是共享存储都可以共享,只需过滤掉已经挂载的存储;其他存储类型则需要考虑排除有状态组件的存储
        if is_config:
            service_volumes = volume_repo.get_services_volumes(current_tenant_services_id).filter(volume_type=self.CONFIG) \
                .exclude(ID__in=mounted_ids)
        else:
            service_volumes = volume_repo.get_services_volumes(current_tenant_services_id).filter(volume_type=self.SHARE) \
                .exclude(ID__in=mounted_ids).exclude(service_id__in=state_service_ids)
        # TODO 使用函数进行存储的排查,确定哪些存储不可以进行共享,哪些存储可以共享,而不是现在这样简单的提供一个self.SHARE

        total = len(service_volumes)
        volume_paginator = JuncheePaginator(service_volumes, int(page_size))
        page_volumes = volume_paginator.page(page)
        un_mount_dependencies = []
        for volume in page_volumes:
            gs_rel = group_service_relation_repo.get_group_by_service_id(volume.service_id)
            group = None
            if gs_rel:
                group = group_repo.get_group_by_pk(tenant.tenant_id, service.service_region, gs_rel.group_id)
            un_mount_dependencies.append({
                "dep_app_name": services.get(service_id=volume.service_id).service_cname,
                "dep_app_group": group.group_name if group else '未分组',
                "dep_vol_name": volume.volume_name,
                "dep_vol_path": volume.volume_path,
                "dep_vol_type": volume.volume_type,
                "dep_vol_id": volume.ID,
                "dep_group_id": group.ID if group else -1,
                "dep_app_alias": services.get(service_id=volume.service_id).service_alias
            })
        return un_mount_dependencies, total
예제 #7
0
    def get_service_unmnt_details(self, tenant, service, service_ids, page,
                                  page_size):

        services = service_repo.get_services_by_service_ids(*service_ids)
        current_tenant_services_id = service_ids
        # 已挂载的服务路径
        dep_mnt_names = mnt_repo.get_service_mnts(
            tenant.tenant_id, service.service_id).values_list('mnt_name',
                                                              flat=True)
        # 当前未被挂载的共享路径
        volumes = volume_repo.get_services_volumes(
            current_tenant_services_id).filter(volume_type=self.SHARE).exclude(
                service_id=service.service_id).exclude(
                    volume_name__in=dep_mnt_names)
        total = len(volumes)
        volume_paginator = JuncheePaginator(volumes, int(page_size))
        page_volumes = volume_paginator.page(page)
        un_mount_dependencies = []
        for volume in page_volumes:
            gs_rel = group_service_relation_repo.get_group_by_service_id(
                volume.service_id)
            group = None
            if gs_rel:
                group = group_repo.get_group_by_pk(tenant.tenant_id,
                                                   service.service_region,
                                                   gs_rel.group_id)
            un_mount_dependencies.append({
                "dep_app_name":
                services.get(service_id=volume.service_id).service_cname,
                "dep_app_group":
                group.group_name if group else '未分组',
                "dep_vol_name":
                volume.volume_name,
                "dep_vol_path":
                volume.volume_path,
                "dep_vol_type":
                volume.volume_type,
                "dep_vol_id":
                volume.ID,
                "dep_group_id":
                group.ID if group else -1,
                "dep_app_alias":
                services.get(service_id=volume.service_id).service_alias
            })
        return un_mount_dependencies, total
예제 #8
0
    def get(self, request, *args, **kwargs):
        """
        获取单个http策略

        """
        try:
            http_rule_id = request.GET.get("http_rule_id", None)
            # 判断参数
            if not http_rule_id:
                return Response(general_message(400, "parameters are missing",
                                                "参数缺失"),
                                status=400)

            domain = domain_repo.get_service_domain_by_http_rule_id(
                http_rule_id)
            if domain:
                bean = domain.to_dict()
                if domain.certificate_id:
                    certificate_info = domain_repo.get_certificate_by_pk(
                        int(domain.certificate_id))
                    service = service_repo.get_service_by_service_id(
                        domain.service_id)
                    service_alias = service.service_cname if service else ''
                    group_name = ''
                    if service:
                        gsr = group_service_relation_repo.get_group_by_service_id(
                            service.service_id)
                        group = group_repo.get_group_by_id(int(gsr.group_id))
                        group_name = group.group_name if group else ''
                    bean.update({"certificate_name": certificate_info.alias})
                    bean.update({"service_alias": service_alias})
                    bean.update({"group_name": group_name})
            else:
                bean = dict()
            result = general_message(200, "success", "查询成功", bean=bean)
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=result["code"])
예제 #9
0
    def get(self, request, tenantName, *args, **kwargs):
        try:
            page = int(request.GET.get("page", 1))
            page_size = int(request.GET.get("page_size", 10))
            search_conditions = request.GET.get("search_conditions", None)
            tenant = team_services.get_tenant_by_tenant_name(tenantName)
            region = region_repo.get_region_by_region_name(self.response_region)
            total = tcp_domain.get_all_domain_count_by_tenant_and_region(tenant.tenant_id, region.region_id)
            start = (page - 1) * page_size
            remaining_num = total - (page - 1) * page_size
            end = page_size
            if remaining_num < page_size:
                end = remaining_num
            try:
                # 查询分页排序
                if search_conditions:
                    cursor = connection.cursor()
                    cursor.execute(
                        "select end_point, type, protocol, service_name, service_alias, container_port, tcp_rule_id, service_id, is_outer_service from service_tcp_domain where tenant_id='{0}' and region_id='{1}' and end_point like '%{2}%' or service_alias like '%{3}%' or group_name like '%{4}%' order by type desc LIMIT {5},{6};".format(
                            tenant.tenant_id, region.region_id, search_conditions, search_conditions, search_conditions, start, end))
                    tenant_tuples = cursor.fetchall()
                else:
                    cursor = connection.cursor()
                    cursor.execute(
                        "select end_point, type, protocol, service_name, service_alias, container_port, tcp_rule_id, service_id, is_outer_service from service_tcp_domain where tenant_id='{0}' and region_id='{1}' order by type desc LIMIT {2},{3};".format(
                            tenant.tenant_id, region.region_id, start, end))
                    tenant_tuples = cursor.fetchall()
            except Exception as e:
                logger.exception(e)
                result = general_message(405, "faild", "查询数据库失败")
                return Response(result)

            # 拼接展示数据
            domain_list = list()
            for tenant_tuple in tenant_tuples:
                service = service_repo.get_service_by_service_id(tenant_tuple[7])
                service_alias = service.service_cname if service else ''
                group_name = ''
                group_id = 0
                if service:
                    gsr = group_service_relation_repo.get_group_by_service_id(service.service_id)
                    if gsr:
                        group = group_repo.get_group_by_id(int(gsr.group_id))
                        group_name = group.group_name if group else ''
                        group_id = int(gsr.group_id)
                domain_dict = dict()
                domain_dict["end_point"] = tenant_tuple[0]
                domain_dict["type"] = tenant_tuple[1]
                domain_dict["protocol"] = tenant_tuple[2]
                domain_dict["group_name"] = group_name
                domain_dict["service_alias"] = tenant_tuple[3]
                domain_dict["container_port"] = tenant_tuple[5]
                domain_dict["service_cname"] = service_alias
                domain_dict["tcp_rule_id"] = tenant_tuple[6]
                domain_dict["service_id"] = tenant_tuple[7]
                domain_dict["is_outer_service"] = tenant_tuple[8]
                domain_dict["group_id"] = group_id

                domain_list.append(domain_dict)
            bean = dict()
            bean["total"] = total
            result = general_message(200, "success", "查询成功", list=domain_list, bean=bean)
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result)
예제 #10
0
    def get(self, request, tenantName, *args, **kwargs):
        try:
            page = int(request.GET.get("page", 1))
            page_size = int(request.GET.get("page_size", 10))
            search_conditions = request.GET.get("search_conditions", None)
            tenant = team_services.get_tenant_by_tenant_name(tenantName)
            region = region_repo.get_region_by_region_name(
                self.response_region)
            total = domain_repo.get_all_domain_count_by_tenant_and_region_id(
                tenant.tenant_id, region.region_id)

            start = (page - 1) * page_size
            remaining_num = total - (page - 1) * page_size
            end = page_size
            if remaining_num < page_size:
                end = remaining_num
            try:
                # 查询分页排序
                if search_conditions:
                    cursor = connection.cursor()
                    cursor.execute(
                        "select domain_name, type, is_senior, certificate_id, group_name, service_alias, protocol, service_name, container_port, http_rule_id, service_id, domain_path, domain_cookie, domain_heander, the_weight, is_outer_service, g_id from service_domain where tenant_id='{0}' and region_id='{1}' and domain_name like '%{2}%' or service_alias like '%{3}%' or group_name like '%{4}%' order by type desc LIMIT {5},{6};"
                        .format(tenant.tenant_id, region.region_id,
                                search_conditions, search_conditions,
                                search_conditions, start, end))
                    tenant_tuples = cursor.fetchall()
                else:
                    cursor = connection.cursor()

                    cursor.execute(
                        "select domain_name, type, is_senior, certificate_id, group_name, service_alias, protocol, service_name, container_port, http_rule_id, service_id, domain_path, domain_cookie, domain_heander, the_weight, is_outer_service, g_id from service_domain where tenant_id='{0}' and region_id='{1}' order by type desc LIMIT {2},{3};"
                        .format(tenant.tenant_id, region.region_id, start,
                                end))
                    tenant_tuples = cursor.fetchall()

            except Exception as e:
                logger.exception(e)
                result = general_message(405, "faild", "查询数据库失败")
                return Response(result)

            # 拼接展示数据
            domain_list = list()
            for tenant_tuple in tenant_tuples:
                service = service_repo.get_service_by_service_id(
                    tenant_tuple[10])
                service_alias = service.service_cname if service else ''
                group_name = ''
                if service:
                    gsr = group_service_relation_repo.get_group_by_service_id(
                        service.service_id)
                    group = group_repo.get_group_by_id(int(gsr.group_id))
                    group_name = group.group_name if group else ''
                domain_dict = dict()
                certificate_info = domain_repo.get_certificate_by_pk(
                    int(tenant_tuple[3]))
                if not certificate_info:
                    domain_dict["certificate_alias"] = ''
                else:
                    domain_dict["certificate_alias"] = certificate_info.alias
                domain_dict[
                    "domain_name"] = tenant_tuple[6] + "://" + tenant_tuple[0]
                domain_dict["type"] = tenant_tuple[1]
                domain_dict["is_senior"] = tenant_tuple[2]
                domain_dict["group_name"] = group_name
                domain_dict["service_cname"] = service_alias
                domain_dict["service_alias"] = tenant_tuple[7]
                domain_dict["container_port"] = tenant_tuple[8]
                domain_dict["http_rule_id"] = tenant_tuple[9]
                domain_dict["service_id"] = tenant_tuple[10]
                domain_dict["domain_path"] = tenant_tuple[11]
                domain_dict["domain_cookie"] = tenant_tuple[12]
                domain_dict["domain_heander"] = tenant_tuple[13]
                domain_dict["the_weight"] = tenant_tuple[14]
                domain_dict["is_outer_service"] = tenant_tuple[15]
                domain_dict["group_id"] = int(tenant_tuple[16])
                domain_list.append(domain_dict)
            bean = dict()
            bean["total"] = total
            result = general_message(200,
                                     "success",
                                     "查询成功",
                                     list=domain_list,
                                     bean=bean)
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result)
예제 #11
0
    def __open_outer(self, tenant, service, region, deal_port):
        if deal_port.protocol != "http":
            if self.is_open_outer_steam_port(tenant.tenant_id,
                                             service.service_id,
                                             deal_port.container_port):
                return 412, u"非http协议端口只能对外开放一个"

        if deal_port.protocol == "http":
            service_domains = domain_repo.get_service_domain_by_container_port(
                service.service_id, deal_port.container_port)
            # 在domain表中保存数据
            if service_domains:
                for service_domain in service_domains:
                    service_domain.is_outer_service = True
                    service_domain.save()
            else:
                # 在service_domain表中保存数据
                gsr = group_service_relation_repo.get_group_by_service_id(
                    service.service_id)
                group_obj = group_repo.get_group_by_id(gsr.group_id)
                service_id = service.service_id
                service_name = service.service_alias
                group_name = group_obj.group_name
                container_port = deal_port.container_port
                domain_name = str(container_port) + "." + str(
                    service_name) + "." + str(tenant.tenant_name) + "." + str(
                        region.httpdomain)
                create_time = datetime.datetime.now().strftime(
                    '%Y-%m-%d %H:%M:%S')
                protocol = "http"
                http_rule_id = make_uuid(domain_name)
                tenant_id = tenant.tenant_id
                service_alias = service.service_cname
                g_id = str(gsr.group_id)
                region_id = region.region_id
                domain_repo.create_service_domains(service_id, service_name,
                                                   domain_name, create_time,
                                                   container_port, protocol,
                                                   http_rule_id, group_name,
                                                   tenant_id, service_alias,
                                                   g_id, region_id)
                # 给数据中心发请求添加默认域名
                data = dict()
                data["domain"] = domain_name
                data["service_id"] = service.service_id
                data["tenant_id"] = tenant.tenant_id
                data["tenant_name"] = tenant.tenant_name
                data["protocol"] = protocol
                data["container_port"] = int(container_port)
                data["http_rule_id"] = http_rule_id
                try:
                    region_api.bind_http_domain(service.service_region,
                                                tenant.tenant_name, data)
                except Exception as e:
                    logger.exception(e)
                    domain_repo.delete_http_domains(http_rule_id)
                    return 412, u"数据中心添加策略失败"

        else:
            service_tcp_domains = tcp_domain.get_service_tcp_domains_by_service_id_and_port(
                service.service_id, deal_port.container_port)
            if service_tcp_domains:
                for service_tcp_domain in service_tcp_domains:
                    # 改变tcpdomain表中状态
                    service_tcp_domain.is_outer_service = True
                    service_tcp_domain.save()
            else:
                # ip+port
                # 在service_tcp_domain表中保存数据
                res, data = region_api.get_port(region.region_name,
                                                tenant.tenant_name)
                if int(res.status) != 200:
                    return 400, u"请求数据中心异常"
                end_point = str(region.tcpdomain) + ":" + str(data["bean"])
                gsr = group_service_relation_repo.get_group_by_service_id(
                    service.service_id)
                group_obj = group_repo.get_group_by_id(gsr.group_id)
                service_id = service.service_id
                service_name = service.service_alias
                create_time = datetime.datetime.now().strftime(
                    '%Y-%m-%d %H:%M:%S')
                container_port = deal_port.container_port
                protocol = deal_port.protocol
                group_name = group_obj.group_name
                service_alias = service.service_cname
                tcp_rule_id = make_uuid(end_point)
                tenant_id = tenant.tenant_id
                g_id = str(gsr.group_id)
                region_id = region.region_id
                tcp_domain.create_service_tcp_domains(
                    service_id, service_name, end_point, create_time,
                    container_port, protocol, service_alias, group_name,
                    tcp_rule_id, tenant_id, g_id, region_id)
                # 默认ip不需要传给数据中心
                # ip = end_point.split(":")[0]
                port = end_point.split(":")[1]
                data = dict()
                data["service_id"] = service.service_id
                data["container_port"] = int(container_port)
                # data["ip"] = ip
                data["port"] = int(port)
                data["tcp_rule_id"] = tcp_rule_id
                logger.debug('--------------------------------->{0}'.format(
                    data["port"]))
                try:
                    # 给数据中心传送数据添加策略
                    region_api.bindTcpDomain(service.service_region,
                                             tenant.tenant_name, data)
                except Exception as e:
                    logger.exception(e)
                    tcp_domain.delete_tcp_domain(tcp_rule_id)
                    return 412, u"数据中心添加策略失败"

        deal_port.is_outer_service = True
        if service.create_status == "complete":
            body = region_api.manage_outer_port(
                service.service_region, tenant.tenant_name,
                service.service_alias, deal_port.container_port, {
                    "operation": "open",
                    "enterprise_id": tenant.enterprise_id
                })
            logger.debug("open outer port body {}".format(body))
            lb_mapping_port = body["bean"]["port"]

            deal_port.lb_mapping_port = lb_mapping_port
        deal_port.save()

        return 200, "success"