コード例 #1
0
 def test_type_prefixing(self):
     validators.add_validator('type:prefixed_type', dummy_validator)
     validators.add_validator('unprefixed_type', dummy_validator)
     self.assertEqual(dummy_validator,
                      validators.get_validator('type:prefixed_type'))
     self.assertEqual(dummy_validator,
                      validators.get_validator('prefixed_type'))
     self.assertEqual(dummy_validator,
                      validators.get_validator('type:unprefixed_type'))
     self.assertEqual(dummy_validator,
                      validators.get_validator('unprefixed_type'))
コード例 #2
0
 def test_type_prefixing(self):
     validators.add_validator('type:prefixed_type', dummy_validator)
     validators.add_validator('unprefixed_type', dummy_validator)
     self.assertEqual(dummy_validator,
                      validators.get_validator('type:prefixed_type'))
     self.assertEqual(dummy_validator,
                      validators.get_validator('prefixed_type'))
     self.assertEqual(dummy_validator,
                      validators.get_validator('type:unprefixed_type'))
     self.assertEqual(dummy_validator,
                      validators.get_validator('unprefixed_type'))
コード例 #3
0
ファイル: base.py プロジェクト: AradhanaSingh/neutron
 def is_rule_supported(self, rule):
     supported_parameters = self.supported_rules.get(rule.rule_type)
     if not supported_parameters:
         LOG.debug("Rule type %(rule_type)s is not supported by "
                   "%(driver_name)s",
                   {'rule_type': rule.rule_type,
                    'driver_name': self.name})
         return False
     for parameter, validators in supported_parameters.items():
         parameter_value = rule.get(parameter)
         for validator_type, validator_data in validators.items():
             validator_function = lib_validators.get_validator(
                 validator_type)
             validate_result = validator_function(parameter_value,
                                                  validator_data)
             # NOTE(slaweq): validator functions returns None if data is
             # valid or string with reason why data is not valid
             if validate_result:
                 LOG.debug("Parameter %(parameter)s=%(value)s in "
                           "rule type %(rule_type)s is not "
                           "supported by %(driver_name)s. "
                           "Validate result: %(validate_result)s",
                           {'parameter': parameter,
                            'value': parameter_value,
                            'rule_type': rule.rule_type,
                            'driver_name': self.name,
                            'validate_result': validate_result})
                 return False
     return True
コード例 #4
0
    def convert_values(
            self, res_dict,
            exc_cls=lambda m: exceptions.InvalidInput(error_message=m)):
        """Convert and validate attribute values for a request.

        :param res_dict: The resource attributes from the request.
        :param exc_cls: Exception to be raised on error that must take
            a single error message as it's only constructor arg.
        :raises: exc_cls If any errors occur converting/validating the
            res_dict.
        """
        for attr, attr_vals in self.attributes.items():
            if (attr not in res_dict or
                    res_dict[attr] is constants.ATTR_NOT_SPECIFIED):
                continue
            # Convert values if necessary
            if 'convert_to' in attr_vals:
                res_dict[attr] = attr_vals['convert_to'](res_dict[attr])
            # Check that configured values are correct
            if 'validate' not in attr_vals:
                continue
            for rule in attr_vals['validate']:
                validator = validators.get_validator(rule)
                res = validator(res_dict[attr],
                                attr_vals['validate'][rule])
                if res:
                    msg_dict = dict(attr=attr, reason=res)
                    msg = _("Invalid input for %(attr)s. "
                            "Reason: %(reason)s.") % msg_dict
                    raise exc_cls(msg)
コード例 #5
0
ファイル: base.py プロジェクト: zhouqiang-cl/neutron
 def is_rule_supported(self, rule):
     supported_parameters = self.supported_rules.get(rule.rule_type)
     if not supported_parameters:
         LOG.debug(
             "Rule type %(rule_type)s is not supported by "
             "%(driver_name)s", {
                 'rule_type': rule.rule_type,
                 'driver_name': self.name
             })
         return False
     for parameter, validators in supported_parameters.items():
         parameter_value = rule.get(parameter)
         for validator_type, validator_data in validators.items():
             validator_function = lib_validators.get_validator(
                 validator_type)
             validate_result = validator_function(parameter_value,
                                                  validator_data)
             # NOTE(slaweq): validator functions returns None if data is
             # valid or string with reason why data is not valid
             if validate_result:
                 LOG.debug(
                     "Parameter %(parameter)s=%(value)s in "
                     "rule type %(rule_type)s is not "
                     "supported by %(driver_name)s. "
                     "Validate result: %(validate_result)s", {
                         'parameter': parameter,
                         'value': parameter_value,
                         'rule_type': rule.rule_type,
                         'driver_name': self.name,
                         'validate_result': validate_result
                     })
                 return False
     return True
コード例 #6
0
def convert_value(attr_info, res_dict, exc_cls=ValueError):
    for attr, attr_vals in six.iteritems(attr_info):
        if (attr not in res_dict
                or res_dict[attr] is constants.ATTR_NOT_SPECIFIED):
            continue
        # Convert values if necessary
        if 'convert_to' in attr_vals:
            res_dict[attr] = attr_vals['convert_to'](res_dict[attr])
        # Check that configured values are correct
        if 'validate' not in attr_vals:
            continue
        for rule in attr_vals['validate']:
            validator = lib_validators.get_validator(rule)
            res = validator(res_dict[attr], attr_vals['validate'][rule])

            if res:
                msg_dict = dict(attr=attr, reason=res)
                msg = _("Invalid input for %(attr)s. "
                        "Reason: %(reason)s.") % msg_dict
                raise exc_cls(msg)
コード例 #7
0
ファイル: attributes.py プロジェクト: gotostack/neutron
def convert_value(attr_info, res_dict, exc_cls=ValueError):
    for attr, attr_vals in six.iteritems(attr_info):
        if (attr not in res_dict or
                res_dict[attr] is constants.ATTR_NOT_SPECIFIED):
            continue
        # Convert values if necessary
        if 'convert_to' in attr_vals:
            res_dict[attr] = attr_vals['convert_to'](res_dict[attr])
        # Check that configured values are correct
        if 'validate' not in attr_vals:
            continue
        for rule in attr_vals['validate']:
            validator = lib_validators.get_validator(rule)
            res = validator(res_dict[attr], attr_vals['validate'][rule])

            if res:
                msg_dict = dict(attr=attr, reason=res)
                msg = _("Invalid input for %(attr)s. "
                        "Reason: %(reason)s.") % msg_dict
                raise exc_cls(msg)
コード例 #8
0
 def test_success_adding_duplicate_validator(self):
     validators.add_validator('dummy', dummy_validator)
     validators.add_validator('dummy', dummy_validator)
     self.assertEqual(dummy_validator, validators.get_validator('dummy'))
コード例 #9
0
 def test_get_validator_default(self):
     self.assertEqual(
         dummy_validator,
         validators.get_validator('nope', default=dummy_validator))
コード例 #10
0
 def test_success_adding_duplicate_validator(self):
     validators.add_validator('dummy', dummy_validator)
     validators.add_validator('dummy', dummy_validator)
     self.assertEqual(dummy_validator, validators.get_validator('dummy'))
コード例 #11
0
 def test_get_validator_default(self):
     self.assertEqual(dummy_validator,
                      validators.get_validator('nope',
                                               default=dummy_validator))