示例#1
0
class AddHostAccountSerializer(serializers.Serializer):

    # 堡垒机IP
    jumper_ip = serializers.IPAddressField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"堡垒机IP")))

    # 主机ID
    host_id = serializers.IntegerField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"主机ID")))

    # 账户名
    account_name = serializers.CharField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"账户名")))

    # 账户密码
    account_password = serializers.CharField(required=False, default="")

    # 登录方式
    auth_mode = serializers.ChoiceField(
        choices=["autoLogin", "manualLogin"],
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"登录方式")))

    # 用户协议
    protocol = serializers.ChoiceField(
        choices=["RDP", "SSH"],
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"用户协议")))
示例#2
0
class ChangeCellPhoneValidator(CodeVerifyValidatorBase):
    """

    """
    def __init__(self, request, redis_conn, *args, **kwargs):
        self.request = request
        self._redis = redis_conn
        self._code_type = "verify_code"
        super(ChangeCellPhoneValidator, self).__init__(*args, **kwargs)

    # 用户手机号
    cell_phone = serializers.CharField(
        required=True,
        max_length=100,
        validators=[cell_phone_validator],
        error_messages=serializers.CommonErrorMessages(_(u"手机号")))
    # 验证码
    code = serializers.CharField(
        required=True,
        max_length=10,
        validators=[verify_code_validator],
        error_messages=serializers.CommonErrorMessages(_(u"验证码")))

    def validate(self, attrs):
        cell_phone = attrs["cell_phone"]
        code = attrs["code"]
        status, error = self._check_code(cell_phone=cell_phone, code=code)
        if not status:
            raise serializers.ValidationError(error)
        return attrs
示例#3
0
class BindJumperPubIpSerializer(serializers.Serializer):
    owner = serializers.CharField(
        required=True,
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u"用户")))

    zone = serializers.ChoiceField(
        required=True,
        choices=["dev", "test", "prod"],
        error_messages=serializers.CommonErrorMessages(_(u"区域")))

    jumper_id = serializers.CharField(
        required=True,
        max_length=200,
        error_messages=serializers.CommonErrorMessages(_(u"主机ID")))

    ip_id = serializers.CharField(
        required=True,
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u"IP_ID")))

    # TODO: 二期需修改
    pub_ip_type = serializers.CharField(
        required=False,
        max_length=100,
        default="virtual",
        error_messages=serializers.CommonErrorMessages(_(u"IP类型")))
示例#4
0
class PhysServValidator(serializers.Serializer):
    id = serializers.IntegerField(
        required=False, error_messages=serializers.CommonErrorMessages('id'))
    cfg_id = serializers.CharField(
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'编号')))
    name = serializers.CharField(
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'名称')))
    cpu = serializers.IntegerField(
        error_messages=serializers.CommonErrorMessages(_(u'CPU 数')))
    memory = serializers.IntegerField(
        error_messages=serializers.CommonErrorMessages(_(u'内存数')))
    cabinet = serializers.CharField(
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'所在机柜')))
    gbe = serializers.IntegerField(
        error_messages=serializers.CommonErrorMessages(_(u'千兆网卡接口')))
    gbex10 = serializers.IntegerField(
        error_messages=serializers.CommonErrorMessages(_(u'万兆网卡接口')))
    lan_ip = serializers.RegexField(
        regex=REGEXP_IPS,
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'内网 IP')))
    wan_ip = serializers.RegexField(
        regex=REGEXP_IPS,
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'外网 IP')))
示例#5
0
class UpdateCmdbValidator(serializers.Serializer):
    type = serializers.ChoiceField(
        choices=CFG_TYPE_CHOICES,
        error_messages=serializers.CommonErrorMessages('type'))

    cfg_items = serializers.ListField(
        error_messages=serializers.CommonErrorMessages('cfg_items'))
示例#6
0
class WafBaseSerializer(serializers.Serializer):
    """
    每秒查询频率、HTTP连接数、CPU使用率、内存使用率
    请求次数统计、响应时间统计、安全防护日志
    基础防护、HTTP协议防护、防错误信息泄露、WAF规则
    url白名单
    系统信息
    """
    owner = serializers.CharField(
        required=True, error_messages=serializers.CommonErrorMessages(u"用户"))

    zone = serializers.ChoiceField(
        required=True,
        choices=["dev", "prod", "test"],
        error_messages=serializers.CommonErrorMessages(u"分区"))

    waf_id = serializers.CharField(
        required=True,
        error_messages=serializers.CommonErrorMessages(u"waf_id"))

    smc_ip = serializers.IPAddressField(
        required=True,
        error_messages=serializers.CommonErrorMessages(u"smc_ip"))

    page_index = serializers.IntegerField(default=1, required=False)

    page_size = serializers.IntegerField(default=0, required=False)
示例#7
0
class AppstoreBaseSerializer(serializers.Serializer):
    owner = serializers.CharField(
        required=True, error_messages=serializers.CommonErrorMessages(u"用户"))
    zone = serializers.ChoiceField(
        required=True,
        choices=["dev", "prod", "test", "all", "bj"],
        error_messages=serializers.CommonErrorMessages(u"分区"))
示例#8
0
class AdjustStorageResourcePoolsValidator(serializers.Serializer):
    """
    校验调整存储资源池接口输入
    """

    owner = serializers.CharField(
        max_length=20,
        default="cloudin",
        error_messages=serializers.CommonErrorMessages(_(u"所有者"))
    )

    zone = serializers.CharField(
        max_length=20,
        default="yz",
        error_messages=serializers.CommonErrorMessages(_(u"区信息"))
    )

    name = serializers.CharField(
        max_length=20,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"存储池名称"))
    )

    new_name = serializers.CharField(
        max_length=20,
        required=False,
        error_messages=serializers.CommonErrorMessages(_(u"存储池新名称"))
    )

    adjust_size = serializers.IntegerField(
        min_value=-1,
        required=False,
        error_messages=serializers.CommonErrorMessages(_(u"存储池调整大小"))
    )
示例#9
0
class CreateStorageResourcePoolsValidator(serializers.Serializer):
    """
    校验创建存储资源池接口输入
    """

    owner = serializers.CharField(
        max_length=20,
        default="cloudin",
        error_messages=serializers.CommonErrorMessages(_(u"所有者"))
    )

    zone = serializers.CharField(
        max_length=20,
        default="yz",
        error_messages=serializers.CommonErrorMessages(_(u"区信息"))
    )

    name = serializers.CharField(
        max_length=20,
        error_messages=serializers.CommonErrorMessages(_(u"存储池名称"))
    )

    kind = serializers.ChoiceField(
        choices=['ssd', 'sata'],
        error_messages=serializers.CommonErrorMessages(_(u"存储池类型"))
    )

    size = serializers.IntegerField(
        min_value=2,
        error_messages=serializers.CommonErrorMessages(_(u"存储池名称"))
    )
示例#10
0
class MigrateVirtualMachineValidator(serializers.Serializer):
    instance_id = serializers.CharField(
        max_length=20,
        error_messages=serializers.CommonErrorMessages(_(u"云主机 ID")))
    dst_physical_machine = serializers.CharField(
        max_length=20,
        error_messages=serializers.CommonErrorMessages(_(u"目的物理机")))
示例#11
0
class DeleteCmdbValidator(serializers.Serializer):
    type = serializers.ChoiceField(
        choices=CFG_TYPE_CHOICES,
        error_messages=serializers.CommonErrorMessages('type'))

    ids = serializers.ListField(
        error_messages=serializers.CommonErrorMessages('ids'))
示例#12
0
class NewHostSerializer(serializers.Serializer):
    # 所有者
    owner = serializers.CharField(
        required=True,
        max_length=30,
        error_messages=serializers.CommonErrorMessages(_(u"用户")))

    # zone
    zone = serializers.ChoiceField(
        required=True,
        choices=["dev", "test", "prod"],
        error_messages=serializers.CommonErrorMessages(_(u"区域")))

    # 堡垒机IP
    jumper_ip = serializers.IPAddressField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"堡垒机IP")))
    # 主机ID
    instance_id = serializers.CharField(
        required=True,
        max_length=30,
        error_messages=serializers.CommonErrorMessages(_(u"主机ID")))

    # 主机名
    instance_name = serializers.CharField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"主机名称")))

    # 子网ID
    # net_id = serializers.ListField(
    #     required=True,
    #     error_messages=serializers.CommonErrorMessages(_(u"子网ID"))
    # )

    # rdp端口
    rdp_port = serializers.IntegerField(
        required=True,
        max_value=65536,
        error_messages=serializers.CommonErrorMessages(_(u"rdp端口号")))

    # ssh端口
    ssh_port = serializers.IntegerField(
        required=True,
        max_value=65536,
        error_messages=serializers.CommonErrorMessages(_(u"ssh端口号")))

    # rdp键盘记录
    enable_keyboard_record = serializers.BooleanField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"是否启用rdp键盘记录")))

    # rdp打印机/驱动器映射
    enable_disk_redirection = serializers.BooleanField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"是否启用rdp打印机/驱动器映射")))

    # rdp剪切板
    enable_clipboard = serializers.BooleanField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"是否启用rdp剪切板")))
示例#13
0
class UpdateBoardValidator(ValidatorBase):
    owner = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('owner')
    )
    zone = serializers.CharField(
        max_length=20,
        error_messages=serializers.CommonErrorMessages('zone')
    )
    board_id = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('board')
    )
    name = serializers.CharField(
        max_length=64,
        error_messages=serializers.CommonErrorMessages('name')
    )
    background = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('background')
    )

    def handler(self, validated_data):
        board = BoardModel.objects.update_board(
            validated_data['owner'],
            validated_data['zone'],
            validated_data['board_id'],
            validated_data['name'],
            validated_data['background']
        )
        serializer = BoardSerializer(board)
        return ConsoleResponse(ret_set=serializer.data)
示例#14
0
class DescribeBoardValidator(ValidatorBase):

    owner = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('owner')
    )
    zone = serializers.CharField(
        max_length=20,
        error_messages=serializers.CommonErrorMessages('zone')
    )
    location = serializers.CharField(
        max_length=64,
        error_messages=serializers.CommonErrorMessages('location')
    )

    def handler(self, validated_data):
        board_list = BoardModel.objects.describe_board(
            validated_data['owner'],
            validated_data['zone'],
            validated_data['location']
        )
        serializer = BoardListSerializer(board_list)

        return ConsoleResponse(total_count=len(serializer.data),
                               ret_set=serializer.data)
示例#15
0
class UpdateRouterValidator(serializers.Serializer):
    action = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"执行动作"))
    )

    owner = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"owner"))
    )

    zone = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"zone"))
    )

    router_id = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"路由旧名字"))
    )
    name = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"路由新名字"))
    )
示例#16
0
class ArrangeBoardFrameValidator(ValidatorBase):
    owner = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('owner')
    )
    frame_id = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('frame_id')
    )
    direction = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('direction')
    )
    step = serializers.IntegerField(
        max_value=MAX_FRAME_NUM,
        error_messages=serializers.CommonErrorMessages('step')
    )

    def handler(self, validated_data):
        ret = FrameModel.objects.arrange_frame(
            validated_data['owner'],
            validated_data['frame_id'],
            validated_data['direction'],
            validated_data['step'],
        )
        return ConsoleResponse(code=ret)
示例#17
0
class DeleteBoardFrameValidator(ValidatorBase):
    owner = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('owner')
    )
    frame_ids = serializers.ListField(
        error_messages=serializers.CommonErrorMessages('frame_id')
    )

    def handler(self, validated_data):
        direction = 'down'
        ret = True
        # (删除模块相当于每次下移一步,直到无法下移时将其删除)
        frame_ids = validated_data['frame_ids'],
        logger.debug("%s", frame_ids)
        for frame_id in frame_ids[0]:
            while ret:
                ret = FrameModel.objects.arrange_frame(
                    validated_data['owner'],
                    frame_id,
                    direction
                )

            FrameModel.objects.delete_frame(
                validated_data['owner'],
                frame_id
            )
            ret = True
        return ConsoleResponse(code=ret)
    pass
示例#18
0
class CreateBoardValidator(ValidatorBase):
    owner = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('owner')
    )
    zone = serializers.CharField(
        max_length=20,
        error_messages=serializers.CommonErrorMessages('zone')
    )
    name = serializers.CharField(
        max_length=128,
        error_messages=serializers.CommonErrorMessages('name')
    )
    # 背景颜色
    background = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('background')
    )
    # 显示位置
    location = serializers.CharField(
        max_length=128,
        error_messages=serializers.CommonErrorMessages('location')
    )

    def handler(self, validated_data):
        board = BoardModel.objects.create_board(
            validated_data['owner'],
            validated_data['zone'],
            validated_data['name'],
            validated_data['background'],
            validated_data['location'],
        )
        serializer = BoardSerializer(board)

        return ConsoleResponse(ret_set=serializer.data)
示例#19
0
class CreateBoardFrameValidator(ValidatorBase):
    owner = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('owner')
    )
    board_id = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('board_id')
    )
    frame_infos = serializers.ListField(
        error_messages=serializers.CommonErrorMessages('frame_infos')
    )

    def handler(self, validated_data):
        board = BoardModel.objects.get_board(validated_data['board_id'])
        frame_infos = validated_data['frame_infos']
        result_set = list()
        for frame_info in frame_infos:
            ref_action = frame_info.get("ref_action")
            meta_data = frame_info.get("meta_data")
            frame = FrameModel.objects.create_frame(
                board,
                ref_action,
                meta_data,
            )
            serializer = FrameSerializer(frame)
            result_set.append(serializer.data)

        return ConsoleResponse(ret_set=result_set)
示例#20
0
class DescribeMonitorVMInfoValidator(serializers.Serializer):
    num = serializers.IntegerField(
        required=False,
        min_value=0,
        error_messages=serializers.CommonErrorMessages('num'))

    sort = serializers.ChoiceField(
        required=False,
        choices=SORT_METHOD,
        error_messages=serializers.CommonErrorMessages('sort'))

    format = serializers.ChoiceField(
        required=False,
        choices=PERIOD_CHOICE,
        error_messages=serializers.CommonErrorMessages('format'))

    poolname = serializers.CharField(
        required=False,
        error_messages=serializers.CommonErrorMessages('poolname'))

    items = serializers.ListField(
        required=False,
        child=serializers.ChoiceField(required=False, choices=VM_ITEM),
        error_messages=serializers.CommonErrorMessages('items'))

    timestamp = serializers.IntegerField(required=False, validators=[])
    point_num = serializers.IntegerField(required=False, validators=[])

    VM_type = serializers.ChoiceField(
        required=False,
        choices=('KVM', 'VMWARE'),
    )
示例#21
0
class ChangeBoardValidator(ValidatorBase):
    owner = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('owner')
    )
    zone = serializers.CharField(
        max_length=20,
        error_messages=serializers.CommonErrorMessages('zone')
    )
    board_id = serializers.CharField(
        max_length=32,
        error_messages=serializers.CommonErrorMessages('board_id')
    )

    def handler(self, validated_data):
        ret = True
        try:
            board = BoardModel.objects.get_board(
                validated_data['board_id']
            )
            if not board.current:
                curr_board = BoardModel.objects.current_board(
                    validated_data['owner'],
                    validated_data['zone'],
                    board.location
                )
                curr_board.current = False
                curr_board.save()
                board.current = True
                board.save()
        except Exception as exp:
            logger.error(exp)
            ret = False
        return ConsoleResponse(code=ret)
示例#22
0
class JoinRouterValidator(serializers.Serializer):
    action = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"执行动作"))
    )

    owner = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"owner"))
    )

    zone = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"zone"))
    )

    router_id = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"路由号"))
    )

    subnet_list = serializers.ListField(
        child=serializers.CharField(max_length=50,
                                    error_messages=serializers.CommonErrorMessages(_(u"子网号"))
                                    )
    )
示例#23
0
class DescribeMonitorPMInfoValidator(serializers.Serializer):

    num = serializers.IntegerField(
        required=False,
        min_value=0,
        error_messages=serializers.CommonErrorMessages('num'))

    itemname = serializers.ChoiceField(
        required=True,
        choices=PM_ITEM,
        error_messages=serializers.CommonErrorMessages('item_name'))

    format = serializers.ChoiceField(
        required=True,
        choices=PERIOD_CHOICE,
        error_messages=serializers.CommonErrorMessages('format'))

    poolname = serializers.CharField(
        required=False,
        error_messages=serializers.CommonErrorMessages('poolname'))

    sort = serializers.ChoiceField(
        required=False,
        choices=SORT_METHOD,
        error_messages=serializers.CommonErrorMessages('sort'))
示例#24
0
class SetRouterSwitchValidator(serializers.Serializer):
    action = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"执行动作"))
    )

    owner = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"owner"))
    )

    zone = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"zone"))
    )

    router_id = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"路由名字"))
    )

    enable_snat = serializers.CharField(
        max_length=40,
        required=False,
        error_messages=serializers.CommonErrorMessages(_(u"允许地址转换"))
    )
示例#25
0
class CreateNoticeValidator(serializers.Serializer):
    title = serializers.CharField(
        error_messages=serializers.CommonErrorMessages('title'))
    content = serializers.CharField(
        error_messages=serializers.CommonErrorMessages('content'))
    notice_list = serializers.ListField(
        error_messages=serializers.CommonErrorMessages('notice_list'))
示例#26
0
class ChangePasswordValidator(serializers.Serializer):
    def __init__(self, user, *args, **kwargs):
        self.user = user
        super(ChangePasswordValidator, self).__init__(*args, **kwargs)

    # 原密码
    old_password = serializers.CharField(
        max_length=128,
        required=False,
        error_messages=serializers.CommonErrorMessages(_(u"原密码")))
    # 新密码
    new_password = serializers.CharField(
        max_length=128,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"新密码")))
    # 确认密码
    confirm_password = serializers.CharField(
        max_length=128,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"确认密码")))

    def validate(self, attrs):
        if authenticate(username=self.user.username,
                        password=attrs["old_password"]) is None:
            raise serializers.ValidationError(_(u"原密码不正确"))

        if attrs["new_password"] != attrs["confirm_password"]:
            raise serializers.ValidationError(_(u"两次密码输入不一致"))

        if attrs["old_password"] == attrs["new_password"]:
            raise serializers.ValidationError(_(u"新密码不能和原密码相同"))

        return attrs
示例#27
0
class ShowJumperEventDetailSerializer(serializers.Serializer):
    jumper_ip = serializers.IPAddressField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"堡垒机IP")))

    event_id = serializers.CharField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"事件ID")))
示例#28
0
class UpdateRdsConfigValidator(serializers.Serializer):
    config_id = serializers.CharField(
        required=True,
        validators=[config_id_validator],
        error_messages=serializers.CommonErrorMessages('config_id'))
    configurations = serializers.DictField(
        required=True,
        error_messages=serializers.CommonErrorMessages('configurations'))
示例#29
0
class PlayJumperSessionAddressSerianlizer(serializers.Serializer):
    jumper_ip = serializers.IPAddressField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"堡垒机IP")))

    session_id = serializers.CharField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"会话ID")))
示例#30
0
class CreateSecurityGroupRuleSerializer(serializers.Serializer):
    type = serializers.ChoiceField(
        default='instance',
        choices=SECURITY_GROUP_TYPE_CHOICES,
        error_messages=serializers.CommonErrorMessages('type'))
    rules = serializers.ListField(
        required=True,
        validators=[],
        error_messages=serializers.CommonErrorMessages('rules'))