Exemple #1
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"存储池调整大小"))
    )
Exemple #2
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)
Exemple #3
0
class DescribeDisksValidator(serializers.Serializer):

    # 硬盘的唯一id, 非api disk id
    disk_id = serializers.CharField(required=False,
                                    max_length=11,
                                    validators=[disk_id_validator])
    # 特定的要展示的硬盘id
    disks = serializers.ListField(required=False,
                                  validators=[disk_id_validator])

    sort_key = serializers.CharField(required=False,
                                     max_length=20,
                                     validators=[disk_sort_key_valiator])

    limit = serializers.IntegerField(required=False, min_value=0)
    offset = serializers.IntegerField(required=False, min_value=0)

    availability_zone = serializers.CharField(required=False, max_length=64)

    search_key = serializers.CharField(required=False,
                                       max_length=64,
                                       allow_blank=True)

    status = serializers.ChoiceField(
        required=False,
        choices=(('available', u'available'), ('in-use', u'in-use'),
                 ('creating', u'creating'), ('deleting', u'deleting'),
                 ('attaching', u'attaching'), ('detaching', u'detaching'),
                 ('error', u'error'), ('error_deleting', u'error_deleting'),
                 ('backing-up', u'backing-up'), ('restoring-backup',
                                                 u'restoring-backup')))
Exemple #4
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)
Exemple #5
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)
Exemple #6
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"允许地址转换"))
    )
Exemple #7
0
class CreateLoadbalancerMemberSerializer(serializers.Serializer):
    lb_id = serializers.CharField(required=True,
                                  allow_blank=False,
                                  max_length=20,
                                  validators=[lb_id_validator])

    lbl_id = serializers.CharField(required=True,
                                   allow_blank=False,
                                   max_length=20,
                                   validators=[lbl_id_validator])

    instance_id = serializers.CharField(required=True,
                                        max_length=20,
                                        validators=[instance_id_validator])

    #ip_address = serializers.IPAddressField(
    #    protocol='IPv4'
    #)

    port = serializers.IntegerField(
        required=True,
        min_value=1,
        max_value=65536,
    )

    weight = serializers.IntegerField(
        required=False,
        allow_null=False,
        max_value=100,
        min_value=1,
    )
Exemple #8
0
class SystemValidator(serializers.Serializer):
    id = serializers.IntegerField(
        required=False, error_messages=serializers.CommonErrorMessages('id'))
    cfg_id = serializers.CharField(
        required=False,
        default=lambda: 'app-' + uuid.uuid4().get_hex(),
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'编号')))
    name = serializers.CharField(
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'系统名称')))
    version = serializers.CharField(
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'版本')))
    man = serializers.CharField(max_length=100,
                                error_messages=serializers.CommonErrorMessages(
                                    _(u'责任人')))
    weight = serializers.ChoiceField(
        choices=WEIGHT_CHOICES,
        error_messages=serializers.CommonErrorMessages(_(u'重要级别')))
    hosts = serializers.CharField(
        required=False,
        default='*',
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'所在主机')))
Exemple #9
0
class VirtServValidator(serializers.Serializer):
    id = serializers.IntegerField(
        required=False, error_messages=serializers.CommonErrorMessages('id'))
    cfg_id = serializers.CharField(
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'主机 ID')))
    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'内存数')))
    net = serializers.RegexField(
        regex=REGEXP_NET,
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'网络')))
    wan_ip = serializers.RegexField(
        regex=REGEXP_IPS,
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'公网 IP')))
    os = serializers.CharField(max_length=100,
                               error_messages=serializers.CommonErrorMessages(
                                   _(u'操作系统')))
    sys = serializers.CharField(max_length=100,
                                error_messages=serializers.CommonErrorMessages(
                                    _(u'应用系统')))
Exemple #10
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')))
Exemple #11
0
class DataBaseValidator(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'数据库名')))
    version = serializers.CharField(
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'版本')))
    memo = serializers.CharField(
        required=False,
        default='',
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'备注')))
    instance = serializers.CharField(
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'所在实例')))
    net = serializers.RegexField(
        regex=REGEXP_NET,
        max_length=100,
        error_messages=serializers.CommonErrorMessages(_(u'所属网络')))
    capacity = serializers.IntegerField(
        error_messages=serializers.CommonErrorMessages(_(u'实例容量')))
Exemple #12
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)
Exemple #13
0
class CreateWafSeniorSerializer(DescribeWafSeniorSerializer):
    """
    新建高级防护
    """
    url = serializers.CharField(
        required=True, error_messages=serializers.CommonErrorMessages(u"url"))

    time = serializers.CharField(
        required=True, error_messages=serializers.CommonErrorMessages(u"统计时间"))

    blocktime = serializers.CharField(
        required=True, error_messages=serializers.CommonErrorMessages(u"阻断时间"))

    threshold = serializers.CharField(
        required=True, error_messages=serializers.CommonErrorMessages(u"阈值"))

    process_action = serializers.ChoiceField(
        required=True,
        choices=["pass", "notify", "deny", "captcha", "all"],
        error_messages=serializers.CommonErrorMessages(u"防护动作"))

    matchtype = serializers.ChoiceField(
        required=True,
        choices=["equ", "cnt", "regex", "prefix"],
        error_messages=serializers.CommonErrorMessages(u"关系"))
Exemple #14
0
class GetImageFileValidator(serializers.Serializer):
    owner = serializers.CharField(
        max_length=40,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"owner")))

    name = serializers.CharField(
        max_length=2048,
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"name")))

    index = serializers.IntegerField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"index")))

    total_size = serializers.IntegerField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"total_size")))

    fileSplitSize = serializers.IntegerField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"fileSplitSize")))

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

    date = serializers.IntegerField(
        required=True,
        error_messages=serializers.CommonErrorMessages(_(u"date")))
Exemple #15
0
class DescribeBackupsValidator(serializers.Serializer):

    backup_type = serializers.ChoiceField(choices=BACKUP_TYPE_CHOICES)
    resource_id = serializers.CharField(
        max_length=20,
        required=False,
        default=None,
    )
    status = serializers.CharField(
        max_length=100,
        required=False,
        default=None,
    )
    backup_id = serializers.CharField(
        max_length=20,
        required=False,
        default=None,
    )
    instance_to_image = serializers.IntegerField(required=False, min_value=0)
    hypervisor_type = serializers.CharField(required=False, )
    search_key = serializers.CharField(
        required=False,
        default='',
        allow_blank=True,
        max_length=64,
    )
    limit = serializers.IntegerField(required=False, min_value=0)
    offset = serializers.IntegerField(required=False, min_value=0)
Exemple #16
0
class CreateInstanceBySuiteValidator(serializers.Serializer):
    id = serializers.CharField(max_length=128)
    count = serializers.IntegerField(min_value=0)
    passwd = serializers.CharField(max_length=128)
    biz = serializers.IntegerField(required=False, min_value=0, default=None)
    compute = serializers.CharField(max_length=100)
    storage = serializers.CharField(max_length=100)
Exemple #17
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"路由新名字"))
    )
Exemple #18
0
class DescribeResourceIppoolValidator(serializers.Serializer):

    owner = serializers.CharField(required=True, max_length=20)

    zone = serializers.CharField(required=True, max_length=20)

    ext_net = serializers.IntegerField(required=True, min_value=0)
Exemple #19
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"子网号"))
                                    )
    )
Exemple #20
0
class DeleteResourceIppoolValidator(serializers.Serializer):

    owner = serializers.CharField(required=True, max_length=20)

    zone = serializers.CharField(required=True, max_length=20)

    network_name = serializers.CharField(required=True, max_length=40)
Exemple #21
0
class DetachInstanceDisksSerializer(InstanceIDSerializer):
    disks = serializers.ListField(child=serializers.CharField(
        max_length=20, required=True, validators=[disk_id_validator]))
    disk_type = serializers.CharField(
        required=False,
        max_length=100,
    )
Exemple #22
0
class DescribeRecordsValidator(serializers.Serializer):
    """
    获取用户的操作日志
    """
    # 服务
    service = serializers.CharField(max_length=20,
                                    required=False,
                                    validators=[service_name_validator])
    # 开始日期
    start_date = serializers.DateField(required=False)
    # 结束日期
    end_date = serializers.DateField(required=False)
    # 页数
    page = serializers.IntegerField(required=True,
                                    max_value=settings.MAX_PAGE_NUM,
                                    validators=[page_validator])
    # 每页数量
    page_size = serializers.IntegerField(required=True,
                                         max_value=settings.MAX_PAGE_SIZE)
    # 动作
    action = serializers.CharField(max_length=20,
                                   required=False,
                                   validators=[])
    # 状态
    status = serializers.CharField(
        max_length=20,
        required=False,
    )
Exemple #23
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)
Exemple #24
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
Exemple #25
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)
Exemple #26
0
class SendVerifyCodeCaptchaValidator(serializers.Serializer):
    # 验证码类型
    code_type = serializers.ChoiceField(choices=CODE_TYPE_CHOICES,
                                        required=True)
    # 手机号
    cell_phone = serializers.CharField(required=True,
                                       validators=[cell_phone_validator])

    # ####### 用于申请专用通道 #############

    # 图片验证码hash key
    captcha_key = serializers.CharField(max_length=40,
                                        required=True,
                                        write_only=True)

    # 图片验证码的值
    captcha_value = serializers.CharField(max_length=10,
                                          required=True,
                                          write_only=True)

    def validate(self, attrs):
        captcha_key = attrs["captcha_key"]
        captcha_value = attrs["captcha_value"]
        captcha_inst, error = captcha_validator(captcha_key=captcha_key,
                                                captcha_value=captcha_value)
        if error is not None:
            raise serializers.ValidationError(error)
        return attrs
Exemple #27
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)
Exemple #28
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
Exemple #29
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'))
Exemple #30
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"存储池名称"))
    )