Пример #1
0
    def test_validate_plugin_update(self):
        def validate(plugin_name, values, validator, lh):
            validator.validate(values)
            lh.validate_plugin_update(plugin_name, values)

        values = {'plugin_labels': {'enabled': {'status': False}}}
        self.override_config('plugins', ['fake'])
        lh = base.PluginManager()
        validator = api_validator.ApiValidator(
            lh.get_plugin_update_validation_jsonschema())
        validate('fake', values, validator, lh)
        values = {'plugin_labels': {'not_exists': {'status': False}}}

        with testtools.ExpectedException(json_exc.ValidationError):
            validate('fake', values, validator, lh)

        values = {'plugin_labels': {'enabled': {'status': 'False'}}}
        with testtools.ExpectedException(json_exc.ValidationError):
            validate('fake', values, validator, lh)

        values = {'field': {'blala': 'blalalalalala'}}

        with testtools.ExpectedException(json_exc.ValidationError):
            validate('fake', values, validator, lh)

        values = {'version_labels': {'0.1': {'enabled': {'status': False}}}}
        validate('fake', values, validator, lh)

        values = {'version_labels': {'0.1': {'hidden': {'status': True}}}}
        with testtools.ExpectedException(ex.InvalidDataException):
            validate('fake', values, validator, lh)
Пример #2
0
 def _test(self, schema, path, formatter):
     validator = api_validator.ApiValidator(schema)
     for filename in self._files_in_path(path):
         file_path = '/'.join((path, filename))
         with open(file_path, 'r') as payload:
             payload = payload.read() % formatter
             payload = json.loads(payload)
             validator.validate(payload)
Пример #3
0
        def handler(*args, **kwargs):
            request_data = u.request_data()
            try:
                if schema:
                    validator = api_validator.ApiValidator(schema)
                    errors = validator.iter_errors(request_data)
                    error = _generate_error(errors)
                    if error:
                        return u.bad_request(error)
                if validators:
                    for validator in validators:
                        validator(**kwargs)
            except ex.SaharaException as e:
                return u.bad_request(e)
            except Exception as e:
                return u.internal_error(500,
                                        "Error occurred during validation", e)

            return func(*args, **kwargs)
Пример #4
0
        def handler(*args, **kwargs):
            request_data = u.request_data()
            try:
                if schema:
                    validator = api_validator.ApiValidator(schema)
                    validator.validate(request_data)
                if validators:
                    for validator in validators:
                        validator(**kwargs)
            except jsonschema.ValidationError as e:
                e.code = "VALIDATION_ERROR"
                return u.bad_request(e)
            except ex.SaharaException as e:
                return u.bad_request(e)
            except Exception as e:
                return u.internal_error(500,
                                        "Error occurred during validation", e)

            return func(*args, **kwargs)
Пример #5
0
def _validate(schema, data):
    validator = api_validator.ApiValidator(schema)
    validator.validate(data)
Пример #6
0
CONF = None


# This is broken out to support testability
def set_logger(log):
    global LOG
    LOG = log


# This is broken out to support testability
def set_conf(conf):
    global CONF
    CONF = conf


ng_validator = api_validator.ApiValidator(ngt.NODE_GROUP_TEMPLATE_SCHEMA)
ct_validator = api_validator.ApiValidator(clt.CLUSTER_TEMPLATE_SCHEMA)

# Options that we allow to be replaced in a node group template
node_group_template_opts = [
    cfg.StrOpt('image_id', help='Image id field for a node group template.'),
    cfg.StrOpt('flavor_id', help='Flavor id field for a node group template.'),
    cfg.StrOpt('floating_ip_pool',
               help='Floating ip pool field for a node group template.'),
    cfg.BoolOpt('auto_security_group',
                default=False,
                help='Auto security group field for node group template.'),
    cfg.ListOpt('security_groups',
                default=[],
                help='Security group field for node group template.')
]