Beispiel #1
0
def validate_dns_domain(data, max_len=db_constants.FQDN_FIELD_SIZE):
    """Validate DNS domain.

    :param data: The data to validate.
    :param max_len: An optional cap on the length of the string.
    :returns: None if data is valid, otherwise a human readable message
        indicating why validation failed.
    """
    msg = validators.validate_string(data)
    if msg:
        return msg
    if not data:
        return
    if not data.endswith('.'):
        msg = _("'%s' is not a FQDN") % data
        return msg
    msg = _validate_dns_format(data, max_len)
    if msg:
        return msg
    length = len(data)
    if length > max_len - 2:
        msg = _("'%(data)s' contains %(length)s characters. Adding a "
                "sub-domain will cause it to exceed the maximum length of a "
                "FQDN of '%(max_len)s'") % {"data": data,
                                            "length": length,
                                            "max_len": max_len}
        return msg
def _validate_edge_service_gw_id(esg_id, valid_values=None):
    msg = validators.validate_string(esg_id, max_len=EDGE_ID_MAX_LEN)
    if msg:
        return msg
    if esg_id and re.match(r'^edge-[1-9]+[0-9]*$', esg_id) is None:
        msg = _("'%s' is not a valid edge service gateway id.") % esg_id
        return msg
    def test_validate_string(self):
        msg = validators.validate_string(None, None)
        self.assertEqual("'None' is not a valid string", msg)

        # 0 == len(data) == max_len
        msg = validators.validate_string("", 0)
        self.assertIsNone(msg)

        # 0 == len(data) < max_len
        msg = validators.validate_string("", 9)
        self.assertIsNone(msg)

        # 0 < len(data) < max_len
        msg = validators.validate_string("123456789", 10)
        self.assertIsNone(msg)

        # 0 < len(data) == max_len
        msg = validators.validate_string("123456789", 9)
        self.assertIsNone(msg)

        # 0 < max_len < len(data)
        msg = validators.validate_string("1234567890", 9)
        self.assertEqual("'1234567890' exceeds maximum length of 9", msg)

        msg = validators.validate_string("123456789", None)
        self.assertIsNone(msg)
    def test_validate_string(self):
        msg = validators.validate_string(None, None)
        self.assertEqual("'None' is not a valid string", msg)

        # 0 == len(data) == max_len
        msg = validators.validate_string("", 0)
        self.assertIsNone(msg)

        # 0 == len(data) < max_len
        msg = validators.validate_string("", 9)
        self.assertIsNone(msg)

        # 0 < len(data) < max_len
        msg = validators.validate_string("123456789", 10)
        self.assertIsNone(msg)

        # 0 < len(data) == max_len
        msg = validators.validate_string("123456789", 9)
        self.assertIsNone(msg)

        # 0 < max_len < len(data)
        msg = validators.validate_string("1234567890", 9)
        self.assertEqual("'1234567890' exceeds maximum length of 9", msg)

        msg = validators.validate_string("123456789", None)
        self.assertIsNone(msg)
def _validate_dns_search_domain(data, max_len=db_const.NAME_FIELD_SIZE):
    msg = validators.validate_string(data, max_len)
    if msg:
        return msg
    if not data:
        return
    msg = _validate_dns_format(data)
    if msg:
        return msg
def _validate_edge_service_gw_id(esg_id, valid_values=None):
    if esg_id is None:
        return
    msg = validators.validate_string(esg_id, max_len=EDGE_ID_MAX_LEN)
    if msg:
        return msg
    if re.match(r'^edge-[1-9]+[0-9]*$', esg_id) is None:
        msg = _("'%s' is not a valid edge service gateway id.") % esg_id
        return msg
Beispiel #7
0
def _validate_dns_search_domain(data, max_len=attributes.NAME_MAX_LEN):
    msg = validators.validate_string(data, max_len)
    if msg:
        return msg
    if not data:
        return
    msg = _validate_dns_format(data)
    if msg:
        return msg
Beispiel #8
0
def _validate_dns_search_domain(data, max_len=db_const.NAME_FIELD_SIZE):
    msg = validators.validate_string(data, max_len)
    if msg:
        return msg
    if not data:
        return
    msg = _validate_dns_format(data)
    if msg:
        return msg
def _validate_str_list(data, valid_values=None):
    if not isinstance(data, list):
        msg = _("'%s' is not a list") % data
        LOG.debug(msg)
        return msg

    for item in data:
        msg = valid.validate_string(item)
        if msg:
            LOG.debug(msg)
            return msg

    if len(set(data)) != len(data):
        msg = _("Duplicate items in the list: '%s'") % ', '.join(data)
        LOG.debug(msg)
        return msg
def _validate_str_list(data, valid_values=None):
    if not isinstance(data, list):
        msg = _("'%s' is not a list") % data
        LOG.debug(msg)
        return msg

    for item in data:
        msg = valid.validate_string(item)
        if msg:
            LOG.debug(msg)
            return msg

    if len(set(data)) != len(data):
        msg = _("Duplicate items in the list: '%s'") % ', '.join(data)
        LOG.debug(msg)
        return msg
Beispiel #11
0
def _validate_fip_dns_name(data, max_len=FQDN_MAX_LEN):
    msg = validators.validate_string(data)
    if msg:
        return msg
    if not data:
        return
    if data.endswith('.'):
        msg = _("'%s' is a FQDN. It should be a relative domain name") % data
        return msg
    msg = _validate_dns_format(data, max_len)
    if msg:
        return msg
    length = len(data)
    if length > max_len - 3:
        msg = _("'%(data)s' contains '%(length)s' characters. Adding a "
                "domain name will cause it to exceed the maximum length "
                "of a FQDN of '%(max_len)s'") % {"data": data,
                                                 "length": length,
                                                 "max_len": max_len}
        return msg
Beispiel #12
0
def _validate_dns_domain(data, max_len=FQDN_MAX_LEN):
    msg = validators.validate_string(data)
    if msg:
        return msg
    if not data:
        return
    if not data.endswith('.'):
        msg = _("'%s' is not a FQDN") % data
        return msg
    msg = _validate_dns_format(data, max_len)
    if msg:
        return msg
    length = len(data)
    if length > max_len - 2:
        msg = _("'%(data)s' contains '%(length)s' characters. Adding a "
                "sub-domain will cause it to exceed the maximum length of a "
                "FQDN of '%(max_len)s'") % {"data": data,
                                           "length": length,
                                           "max_len": max_len}
        return msg
Beispiel #13
0
def _validate_dns_domain(data, max_len=FQDN_MAX_LEN):
    msg = validators.validate_string(data)
    if msg:
        return msg
    if not data:
        return
    if not data.endswith('.'):
        msg = _("'%s' is not a FQDN") % data
        return msg
    msg = _validate_dns_format(data, max_len)
    if msg:
        return msg
    length = len(data)
    if length > max_len - 2:
        msg = _("'%(data)s' contains '%(length)s' characters. Adding a "
                "sub-domain will cause it to exceed the maximum length of a "
                "FQDN of '%(max_len)s'") % {"data": data,
                                           "length": length,
                                           "max_len": max_len}
        return msg
Beispiel #14
0
def _validate_fip_dns_name(data, max_len=FQDN_MAX_LEN):
    msg = validators.validate_string(data)
    if msg:
        return msg
    if not data:
        return
    if data.endswith('.'):
        msg = _("'%s' is a FQDN. It should be a relative domain name") % data
        return msg
    msg = _validate_dns_format(data, max_len)
    if msg:
        return msg
    length = len(data)
    if length > max_len - 3:
        msg = _("'%(data)s' contains '%(length)s' characters. Adding a "
                "domain name will cause it to exceed the maximum length "
                "of a FQDN of '%(max_len)s'") % {"data": data,
                                                 "length": length,
                                                 "max_len": max_len}
        return msg
def _validate_name_not_default(data, max_len=db_const.NAME_FIELD_SIZE):
    msg = validators.validate_string(data, max_len)
    if msg:
        return msg
    if data.lower() == "default":
        raise SecurityGroupDefaultAlreadyExists()
Beispiel #16
0
def validate_tag(tag):
    msg = validators.validate_string(tag, MAX_TAG_LEN)
    if msg:
        raise exceptions.InvalidInput(error_message=msg)
Beispiel #17
0
def _validate_name_not_default(data, max_len=db_const.NAME_FIELD_SIZE):
    msg = validators.validate_string(data, max_len)
    if msg:
        return msg
    if data.lower() == "default":
        raise SecurityGroupDefaultAlreadyExists()
Beispiel #18
0
def validate_tag(tag):
    msg = validators.validate_string(tag, MAX_TAG_LEN)
    if msg:
        raise exceptions.InvalidInput(error_message=msg)