Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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
Example #4
0
    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
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
 def resolve_remote(self, uri):
     LOG.debug('Loading remote schema: %s', uri)
     return utils.load_schema(self.api_version, uri)
Example #8
0
 def test_load_schema_missing(self):
     with self.assertRaises(exceptions.ResourceNotFound):
         utils.load_schema('v1', 'missing')
Example #9
0
    def test_load_schema(self):
        schema = utils.load_schema('v1', 'domain')

        self.assertIsInstance(schema, dict)
Example #10
0
 def test_load_schema_missing(self):
     with testtools.ExpectedException(exceptions.ResourceNotFound):
         utils.load_schema('v1', 'missing')
Example #11
0
 def test_load_schema_missing(self):
     with testtools.ExpectedException(exceptions.ResourceNotFound):
         utils.load_schema('v1', 'missing')
Example #12
0
    def test_load_schema(self):
        schema = utils.load_schema("v1", "domain")

        self.assertIsInstance(schema, dict)
Example #13
0
 def __init__(self, version, name):
     self.raw_schema = utils.load_schema(version, name)
     self.validator = SchemaValidator(self.raw_schema, resolver=RESOLVER)
Example #14
0
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.
Example #15
0
    def test_load_schema(self):
        schema = utils.load_schema('v1', 'domain')

        self.assertIsInstance(schema, dict)
Example #16
0
 def test_load_schema_missing(self):
     with self.assertRaises(exceptions.ResourceNotFound):
         utils.load_schema('v1', 'missing')
Example #17
0
 def resolve_remote(self, uri):
     LOG.debug('Loading remote schema: %s' % uri)
     return utils.load_schema(self.api_version, uri)