def __init__(self, version, name): self.raw_schema = utils.load_schema(version, name) self.resolver = resolvers.LocalResolver.from_schema( version, self.raw_schema) if version == 'v1': self.validator = validators.Draft3Validator( self.raw_schema, resolver=self.resolver) else: raise Exception('Unknown API version: %s' % version)
def __init__(self, version, name): self.raw_schema = utils.load_schema(version, name) self.resolver = resolvers.LocalResolver.from_schema( version, self.raw_schema) if version in ['v2', 'admin']: self.validator = validators.Draft4Validator( self.raw_schema, resolver=self.resolver, format_checker=format.draft4_format_checker) else: raise Exception('Unknown API version: %s' % version)
def _default(self, *remainder): if len(remainder) == 0: pecan.abort(404) try: schema_name = os.path.join(*remainder) schema_json = utils.load_schema('v2', schema_name) except exceptions.ResourceNotFound: pecan.abort(404) return schema_json
def __init__(self, version, name): self.raw_schema = utils.load_schema(version, name) self.resolver = resolvers.LocalResolver.from_schema(version, self.raw_schema) if version == "v1": self.validator = validators.Draft3Validator( self.raw_schema, resolver=self.resolver, format_checker=format.draft3_format_checker ) elif version == "v2": self.validator = validators.Draft4Validator( self.raw_schema, resolver=self.resolver, format_checker=format.draft4_format_checker ) else: raise Exception("Unknown API version: %s" % version)
def resolve_remote(self, uri): LOG.debug('Loading remote schema: %s', uri) return utils.load_schema(self.api_version, uri)
def test_load_schema_missing(self): with self.assertRaises(exceptions.ResourceNotFound): utils.load_schema('v1', 'missing')
def test_load_schema(self): schema = utils.load_schema('v1', 'domain') self.assertIsInstance(schema, dict)
def test_load_schema_missing(self): with testtools.ExpectedException(exceptions.ResourceNotFound): utils.load_schema('v1', 'missing')
def test_load_schema(self): schema = utils.load_schema("v1", "domain") self.assertIsInstance(schema, dict)
def __init__(self, version, name): self.raw_schema = utils.load_schema(version, name) self.validator = SchemaValidator(self.raw_schema, resolver=RESOLVER)
import re import jsonschema import netaddr import iso8601 from datetime import datetime from designate.openstack.common import log as logging from designate import exceptions from designate import utils LOG = logging.getLogger(__name__) _RE_DOMAINNAME = r'^(?!.{255,})((?!\-)[A-Za-z0-9_\-]{1,63}(?<!\-)\.)+$' _RE_HOSTNAME = r'^(?!.{255,})((^\*|(?!\-)[A-Za-z0-9_\-]{1,63})(?<!\-)\.)+$' RESOLVER = jsonschema.RefResolver('/', {}, store={ '/schemas/domain': utils.load_schema('v1', 'domain'), '/schemas/domains': utils.load_schema('v1', 'domains'), '/schemas/fault': utils.load_schema('v1', 'fault'), '/schemas/limits': utils.load_schema('v1', 'domains'), '/schemas/record': utils.load_schema('v1', 'record'), '/schemas/records': utils.load_schema('v1', 'records'), '/schemas/server': utils.load_schema('v1', 'server'), '/schemas/servers': utils.load_schema('v1', 'servers'), '/schemas/tsigkey': utils.load_schema('v1', 'tsigkey'), '/schemas/tsigkeys': utils.load_schema('v1', 'tsigkeys'), }) class SchemaValidator(jsonschema.Draft3Validator): def validate_type(self, types, instance, schema): # NOTE(kiall): A datetime object is not a string, but is still valid.
def resolve_remote(self, uri): LOG.debug('Loading remote schema: %s' % uri) return utils.load_schema(self.api_version, uri)