本文整理汇总了Python中st2common.util.schema.validate函数的典型用法代码示例。如果您正苦于以下问题:Python validate函数的具体用法?Python validate怎么用?Python validate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了validate函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _validate_runner
def _validate_runner(runner_schema, result):
LOG.debug('Validating runner output: %s', runner_schema)
runner_schema = {
"type": "object",
"properties": runner_schema,
"additionalProperties": False
}
schema.validate(result, runner_schema, cls=schema.get_validator('custom'))
示例2: test_allow_default_explicit_none
def test_allow_default_explicit_none(self):
# Explicitly pass None to arguments
instance = {
'arg_optional_default': None,
'arg_optional_default_none': None,
'arg_optional_no_default': None
}
validator = util_schema.get_validator()
util_schema.validate(instance=instance, schema=TEST_SCHEMA_3, cls=validator,
use_default=True, allow_default_none=True)
示例3: _validate_action
def _validate_action(action_schema, result, output_key):
LOG.debug('Validating action output: %s', action_schema)
final_result = result[output_key]
action_schema = {
"type": "object",
"properties": action_schema,
"additionalProperties": False
}
schema.validate(final_result, action_schema, cls=schema.get_validator('custom'))
示例4: __init__
def __init__(self, **kw):
util_schema.validate(instance=kw, schema=self.schema, cls=util_schema.CustomValidator,
use_default=False, allow_default_none=True)
for prop in six.iterkeys(self.schema.get('properties', [])):
value = kw.get(prop, None)
# special handling for chain property to create the Node object
if prop == 'chain':
nodes = []
for node in value:
nodes.append(Node(**node))
value = nodes
setattr(self, prop, value)
示例5: validate_config_against_schema
def validate_config_against_schema(config_schema, config_object, config_path,
pack_name=None):
"""
Validate provided config dictionary against the provided config schema
dictionary.
"""
# NOTE: Lazy improt to avoid performance overhead of importing this module when it's not used
import jsonschema
pack_name = pack_name or 'unknown'
schema = util_schema.get_schema_for_resource_parameters(parameters_schema=config_schema,
allow_additional_properties=True)
instance = config_object
try:
cleaned = util_schema.validate(instance=instance, schema=schema,
cls=util_schema.CustomValidator, use_default=True,
allow_default_none=True)
except jsonschema.ValidationError as e:
attribute = getattr(e, 'path', [])
if isinstance(attribute, (tuple, list, collections.Iterable)):
attribute = [str(item) for item in attribute]
attribute = '.'.join(attribute)
else:
attribute = str(attribute)
msg = ('Failed validating attribute "%s" in config for pack "%s" (%s): %s' %
(attribute, pack_name, config_path, six.text_type(e)))
raise jsonschema.ValidationError(msg)
return cleaned
示例6: _validate_config_values_against_schema
def _validate_config_values_against_schema(self):
try:
config_schema_db = ConfigSchema.get_by_pack(value=self.pack)
except StackStormDBObjectNotFoundError:
# Config schema is optional
return
# Note: We are doing optional validation so for now, we do allow additional properties
instance = self.values or {}
schema = config_schema_db.attributes
schema = util_schema.get_schema_for_resource_parameters(parameters_schema=schema,
allow_additional_properties=True)
try:
cleaned = util_schema.validate(instance=instance, schema=schema,
cls=util_schema.CustomValidator, use_default=True,
allow_default_none=True)
except jsonschema.ValidationError as e:
attribute = getattr(e, 'path', [])
attribute = '.'.join(attribute)
configs_path = os.path.join(cfg.CONF.system.base_path, 'configs/')
config_path = os.path.join(configs_path, '%s.yaml' % (self.pack))
msg = ('Failed validating attribute "%s" in config for pack "%s" (%s): %s' %
(attribute, self.pack, config_path, str(e)))
raise jsonschema.ValidationError(msg)
return cleaned
示例7: validate_trigger_parameters
def validate_trigger_parameters(trigger_type_ref, parameters):
"""
This function validates parameters for system triggers (e.g. webhook and timers).
Note: Eventually we should also validate parameters for user defined triggers which correctly
specify JSON schema for the parameters.
:param trigger_type_ref: Reference of a trigger type.
:type trigger_type_ref: ``str``
:param parameters: Trigger parameters.
:type parameters: ``dict``
"""
if not trigger_type_ref:
return None
if trigger_type_ref not in SYSTEM_TRIGGER_TYPES:
# Not a system trigger, skip validation for now
return None
parameters_schema = SYSTEM_TRIGGER_TYPES[trigger_type_ref]['parameters_schema']
cleaned = util_schema.validate(instance=parameters, schema=parameters_schema,
cls=util_schema.CustomValidator, use_default=True,
allow_default_none=True)
# Additional validation for CronTimer trigger
# TODO: If we need to add more checks like this we should consider abstracting this out.
if trigger_type_ref == CRON_TIMER_TRIGGER_REF:
# Validate that the user provided parameters are valid. This is required since JSON schema
# allows arbitrary strings, but not any arbitrary string is a valid CronTrigger argument
# Note: Constructor throws ValueError on invalid parameters
CronTrigger(**parameters)
return cleaned
示例8: validate_trigger_parameters
def validate_trigger_parameters(trigger_type_ref, parameters):
"""
This function validates parameters for system triggers (e.g. webhook and timers).
Note: Eventually we should also validate parameters for user defined triggers which correctly
specify JSON schema for the parameters.
:param trigger_type_ref: Reference of a trigger type.
:type trigger_type_ref: ``str``
:param parameters: Trigger parameters.
:type parameters: ``dict``
"""
if not trigger_type_ref:
return None
if trigger_type_ref not in SYSTEM_TRIGGER_TYPES:
# Not a system trigger, skip validation for now
return None
parameters_schema = SYSTEM_TRIGGER_TYPES[trigger_type_ref]['parameters_schema']
cleaned = util_schema.validate(instance=parameters, schema=parameters_schema,
cls=util_schema.CustomValidator, use_default=True,
allow_default_none=True)
return cleaned
示例9: validate_response
def validate_response(inquiry, response):
schema = inquiry.schema
LOG.debug('Validating inquiry response: %s against schema: %s' % (response, schema))
try:
schema_utils.validate(
instance=response,
schema=schema,
cls=schema_utils.CustomValidator,
use_default=True,
allow_default_none=True
)
except Exception as e:
msg = 'Response for inquiry "%s" did not pass schema validation.'
LOG.exception(msg % str(inquiry.id))
raise inquiry_exceptions.InvalidInquiryResponse(str(inquiry.id), six.text_type(e))
示例10: _add_job_to_scheduler
def _add_job_to_scheduler(self, trigger):
trigger_type_ref = trigger['type']
trigger_type = TIMER_TRIGGER_TYPES[trigger_type_ref]
try:
util_schema.validate(instance=trigger['parameters'],
schema=trigger_type['parameters_schema'],
cls=util_schema.CustomValidator,
use_default=True,
allow_default_none=True)
except jsonschema.ValidationError as e:
LOG.error('Exception scheduling timer: %s, %s',
trigger['parameters'], e, exc_info=True)
raise # Or should we just return?
time_spec = trigger['parameters']
time_zone = aps_utils.astimezone(trigger['parameters'].get('timezone'))
time_type = None
if trigger_type['name'] == 'st2.IntervalTimer':
unit = time_spec.get('unit', None)
value = time_spec.get('delta', None)
time_type = IntervalTrigger(**{unit: value, 'timezone': time_zone})
elif trigger_type['name'] == 'st2.DateTimer':
# Raises an exception if date string isn't a valid one.
dat = date_parser.parse(time_spec.get('date', None))
time_type = DateTrigger(dat, timezone=time_zone)
elif trigger_type['name'] == 'st2.CronTimer':
cron = time_spec.copy()
cron['timezone'] = time_zone
time_type = CronTrigger(**cron)
utc_now = date_utils.get_datetime_utc_now()
if hasattr(time_type, 'run_date') and utc_now > time_type.run_date:
LOG.warning('Not scheduling expired timer: %s : %s',
trigger['parameters'], time_type.run_date)
else:
self._add_job(trigger, time_type)
return time_type
示例11: test_use_default_value
def test_use_default_value(self):
# No default, no value provided, should fail
instance = {}
validator = util_schema.get_validator()
expected_msg = '\'cmd_no_default\' is a required property'
self.assertRaisesRegexp(ValidationError, expected_msg, util_schema.validate,
instance=instance, schema=TEST_SCHEMA_1, cls=validator,
use_default=True)
# No default, value provided
instance = {'cmd_no_default': 'foo'}
util_schema.validate(instance=instance, schema=TEST_SCHEMA_1, cls=validator,
use_default=True)
# default value provided, no value, should pass
instance = {}
validator = util_schema.get_validator()
util_schema.validate(instance=instance, schema=TEST_SCHEMA_2, cls=validator,
use_default=True)
# default value provided, value provided, should pass
instance = {'cmd_default': 'foo'}
validator = util_schema.get_validator()
util_schema.validate(instance=instance, schema=TEST_SCHEMA_2, cls=validator,
use_default=True)
示例12: validate_trigger_parameters
def validate_trigger_parameters(trigger_type_ref, parameters):
"""
This function validates parameters for system and user-defined triggers.
:param trigger_type_ref: Reference of a trigger type.
:type trigger_type_ref: ``str``
:param parameters: Trigger parameters.
:type parameters: ``dict``
:return: Cleaned parameters on success, None if validation is not performed.
"""
if not trigger_type_ref:
return None
is_system_trigger = trigger_type_ref in SYSTEM_TRIGGER_TYPES
if is_system_trigger:
# System trigger
parameters_schema = SYSTEM_TRIGGER_TYPES[trigger_type_ref]['parameters_schema']
else:
trigger_type_db = triggers.get_trigger_type_db(trigger_type_ref)
if not trigger_type_db:
# Trigger doesn't exist in the database
return None
parameters_schema = getattr(trigger_type_db, 'parameters_schema', {})
if not parameters_schema:
# Parameters schema not defined for the this trigger
return None
# We only validate non-system triggers if config option is set (enabled)
if not is_system_trigger and not cfg.CONF.system.validate_trigger_parameters:
LOG.debug('Got non-system trigger "%s", but trigger parameter validation for non-system'
'triggers is disabled, skipping validation.' % (trigger_type_ref))
return None
cleaned = util_schema.validate(instance=parameters, schema=parameters_schema,
cls=util_schema.CustomValidator, use_default=True,
allow_default_none=True)
# Additional validation for CronTimer trigger
# TODO: If we need to add more checks like this we should consider abstracting this out.
if trigger_type_ref == CRON_TIMER_TRIGGER_REF:
# Validate that the user provided parameters are valid. This is required since JSON schema
# allows arbitrary strings, but not any arbitrary string is a valid CronTrigger argument
# Note: Constructor throws ValueError on invalid parameters
CronTrigger(**parameters)
return cleaned
示例13: validate
def validate(self):
"""
Perform validation and return cleaned object on success.
Note: This method doesn't mutate this object in place, but it returns a new one.
:return: Cleaned / validated object.
"""
schema = getattr(self, "schema", {})
attributes = vars(self)
cleaned = util_schema.validate(
instance=attributes, schema=schema, cls=util_schema.CustomValidator, use_default=True
)
return self.__class__(**cleaned)
示例14: validate
def validate(self):
"""
Perform validation and return cleaned object on success.
Note: This method doesn't mutate this object in place, but it returns a new one.
:return: Cleaned / validated object.
"""
schema = getattr(self, 'schema', {})
attributes = vars(self)
cleaned = util_schema.validate(instance=attributes, schema=schema,
cls=util_schema.CustomValidator, use_default=True,
allow_default_none=True)
# Note: We use type() instead of self.__class__ since self.__class__ confuses pylint
return type(self)(**cleaned)
示例15: validate
def validate(self):
# Validate policy itself
cleaned = super(PolicyAPI, self).validate()
# Validate policy parameters
policy_type_db = PolicyType.get_by_ref(cleaned.policy_type)
if not policy_type_db:
raise ValueError('Referenced policy_type "%s" doesnt exist' % (cleaned.policy_type))
parameters_schema = policy_type_db.parameters
parameters = getattr(cleaned, 'parameters', {})
schema = util_schema.get_schema_for_resource_parameters(
parameters_schema=parameters_schema)
validator = util_schema.get_validator()
cleaned_parameters = util_schema.validate(parameters, schema, validator, use_default=True,
allow_default_none=True)
cleaned.parameters = cleaned_parameters
return cleaned