Beispiel #1
0
 def _max_attempts(self):
     max_attempts = CONF.scheduler.scheduler_max_attempts
     if max_attempts < 1:
         raise exception.InvalidParameterValue(
             err=_("Invalid value for 'scheduler_max_attempts', "
                   "must be >=1"))
     return max_attempts
Beispiel #2
0
 def quota_update(self, context, project_id, resource_name, updates):
     if 'resource_name' in updates or 'project_id' in updates:
         msg = _("Cannot overwrite resource_name/project_id for "
                 "an existing Quota.")
         raise exception.InvalidParameterValue(err=msg)
     try:
         return self._do_update_quota(context, project_id, resource_name,
                                      updates)
     except db_exc.DBDuplicateEntry:
         pass
Beispiel #3
0
    def server_update(self, context, server_id, values):
        if 'uuid' in values:
            msg = _("Cannot overwrite UUID for an existing Server.")
            raise exception.InvalidParameterValue(err=msg)

        try:
            return self._do_update_server(context, server_id, values)
        except db_exc.DBDuplicateEntry as e:
            if 'name' in e.columns:
                raise exception.DuplicateName(name=values['name'])
Beispiel #4
0
    def aggregate_update(self, context, aggregate_id, values):
        if 'uuid' in values:
            msg = _("Cannot overwrite UUID for an existing aggregate.")
            raise exception.InvalidParameterValue(err=msg)

        try:
            result = self._do_update_aggregate(context, aggregate_id, values)
        except db_exc.DBDuplicateEntry as e:
            if 'name' in e.columns:
                raise exception.DuplicateName(name=values['name'])
        return result
Beispiel #5
0
    def wrapper(**kw):
        obj_type = kw.pop('object_type')
        result = func(**kw)

        extra_args = set(kw) - set(result)
        if extra_args:
            raise exception.InvalidParameterValue(
                _("Unknown keyword arguments (%(extra)s) were passed "
                  "while creating a test %(object_type)s object.") %
                {"extra": ", ".join(extra_args),
                 "object_type": obj_type})

        return result
Beispiel #6
0
def check_schema(body, schema):
    """Ensure all necessary keys are present and correct in create body.

    Check that the user-specified create body is in the expected format and
    include the required information.

    :param body: create body
    :raises InvalidParameterValue: if validation of create body fails.
    """
    validator = jsonschema.Draft4Validator(
        schema, format_checker=jsonschema.FormatChecker())
    try:
        validator.validate(body)
    except jsonschema.ValidationError as exc:
        raise exception.InvalidParameterValue(
            _('Invalid create body: %s') % exc)
Beispiel #7
0
def add_identity_filter(query, value):
    """Adds an identity filter to a query.

    Filters results by ID, if supplied value is a valid integer.
    Otherwise attempts to filter results by UUID.

    :param query: Initial query to add filter to.
    :param value: Value for filtering results by.
    :return: Modified query.
    """
    if strutils.is_int_like(value):
        return query.filter_by(id=value)
    elif uuidutils.is_uuid_like(value):
        return query.filter_by(uuid=value)
    else:
        raise exception.InvalidParameterValue(identity=value)
Beispiel #8
0
def _paginate_query(context,
                    model,
                    limit=None,
                    marker=None,
                    sort_key=None,
                    sort_dir=None,
                    query=None):
    if not query:
        query = model_query(context, model)
    sort_keys = ['id']
    if sort_key and sort_key not in sort_keys:
        sort_keys.insert(0, sort_key)
    try:
        query = sqlalchemyutils.paginate_query(query,
                                               model,
                                               limit,
                                               sort_keys,
                                               marker=marker,
                                               sort_dir=sort_dir)
    except db_exc.InvalidSortKey:
        raise exception.InvalidParameterValue(
            _('The sort_key value "%(key)s" is an invalid field for sorting') %
            {'key': sort_key})
    return query.all()