# keystone.limit.backends.base module

class keystone.limit.backends.base.UnifiedLimitDriverBase

  Bases: `object`

  abstractmethod create_limits(limits)

    Create new limits.

    Parameters:

      limits – a list of dictionaries representing limits to create.

    Returns:

      all the newly created limits.

    Raises:

      - keystone.exception.Conflict – If a duplicate limit exists.

      - keystone.exception.NoLimitReference – If no reference registered limit exists.

  abstractmethod create_registered_limits(registered_limits)

    Create new registered limits.

    Parameters:

      registered_limits – a list of dictionaries representing limits to create.

    Returns:

      all the newly created registered limits.

    Raises:

      keystone.exception.Conflict – If a duplicate registered limit exists.

  abstractmethod delete_limit(limit_id)

    Delete an existing limit.

    Parameters:

      limit_id – the limit id to delete.

    Raises:

      keystone.exception.LimitNotFound – If limit doesn’t exist.

  abstractmethod delete_limits_for_project(project_id)

    Delete the existing limits which belong to the specified project.

    Parameters:

      project_id – the limits’ project id.

    Returns:

      a dictionary representing the deleted limits id. Used for cache invalidating.

  abstractmethod delete_registered_limit(registered_limit_id)

    Delete an existing registered limit.

    Parameters:

      registered_limit_id – the registered limit id to delete.

    Raises:

      keystone.exception.RegisteredLimitNotFound – If registered limit doesn’t exist.

  abstractmethod get_limit(limit_id)

    Get a limit.

    Parameters:

      limit_id – the limit id to get.

    Returns:

      a dictionary representing a limit reference.

    Raises:

      keystone.exception.LimitNotFound – If limit doesn’t exist.

  abstractmethod get_registered_limit(registered_limit_id)

    Get a registered limit.

    Parameters:

      registered_limit_id – the registered limit id to get.

    Returns:

      a dictionary representing a registered limit reference.

    Raises:

      keystone.exception.RegisteredLimitNotFound – If registered limit doesn’t exist.

  abstractmethod list_limits(hints)

    List all limits.

    Parameters:

      hints – contains the list of filters yet to be satisfied. Any filters satisfied here will be removed so that the caller will know if any filters remain.

    Returns:

      a list of dictionaries or an empty list.

  abstractmethod list_registered_limits(hints)

    List all registered limits.

    Parameters:

      hints – contains the list of filters yet to be satisfied. Any filters satisfied here will be removed so that the caller will know if any filters remain.

    Returns:

      a list of dictionaries or an empty registered limit.

  abstractmethod update_limit(limit_id, limit)

    Update existing limits.

    Parameters:

      - limit_id – the id of the limit.

      - limit – a dict containing the limit attributes to update.

    Returns:

      the updated limit.

    Raises:

      - keystone.exception.LimitNotFound – If limit doesn’t exist.

      - keystone.exception.Conflict – If update to a duplicate limit.

  abstractmethod update_registered_limit(registered_limit_id, registered_limit)

    Update existing registered limits.

    Parameters:

      - registered_limit_id – the id of the registered limit.

      - registered_limit – a dict containing the registered limit attributes to update.

    Returns:

      the updated registered limit.

    Raises:

      - keystone.exception.RegisteredLimitNotFound – If registered limit doesn’t exist.

      - keystone.exception.Conflict – If update to a duplicate registered limit.

this page last updated: 2026-06-11 21:50:20

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug