The cinder.api.v1.limits Module¶
Module dedicated functions/classes dealing with rate limiting requests.
- 
class Limit(verb, uri, regex, value, unit)¶
- Bases: - object- Stores information about a limit for HTTP requests. - 
UNITS= {3600: 'HOUR', 1: 'SECOND', 86400: 'DAY', 60: 'MINUTE'}¶
 - 
UNIT_MAP= {'SECOND': 1, 'MINUTE': 60, 'DAY': 86400, 'HOUR': 3600}¶
 - 
display()¶
- Return a useful representation of this class. 
 - 
display_unit()¶
- Display the string name of the unit. 
 
- 
- 
class Limiter(limits, **kwargs)¶
- Bases: - object- Rate-limit checking class which handles limits in memory. - 
check_for_delay(verb, url, username=None)¶
- Check the given verb/user/user triplet for limit. - @return: Tuple of delay (in seconds) and error message (or None, None) 
 - 
get_limits(username=None)¶
- Return the limits for a given user. 
 - 
static parse_limits(limits)¶
- Convert a string into a list of Limit instances. - This implementation expects a semicolon-separated sequence of parenthesized groups, where each group contains a comma-separated sequence consisting of HTTP method, user-readable URI, a URI reg-exp, an integer number of requests which can be made, and a unit of measure. Valid values for the latter are “SECOND”, “MINUTE”, “HOUR”, and “DAY”. - @return: List of Limit instances. 
 
- 
- 
class LimitsController(view_builder=None)¶
- Bases: - cinder.api.openstack.wsgi.Controller- Controller for accessing limits in the OpenStack API. - 
index(req)¶
- Return all global and rate limit information. 
 - 
wsgi_actions= {}¶
 - 
wsgi_extensions= []¶
 
- 
- 
class RateLimitingMiddleware(application, limits=None, limiter=None, **kwargs)¶
- Bases: - cinder.wsgi.common.Middleware- Rate-limits requests passing through this middleware. - All limit information is stored in memory for this implementation. 
- 
class WsgiLimiter(limits=None)¶
- Bases: - object- Rate-limit checking from a WSGI application. - Uses an in-memory Limiter. - To use, POST - /<username>with JSON data such as:- { "verb" : GET, "path" : "/servers" } - and receive a 204 No Content, or a 403 Forbidden with an X-Wait-Seconds header containing the number of seconds to wait before the action would succeed. 
- 
class WsgiLimiterProxy(limiter_address)¶
- Bases: - object- Rate-limit requests based on answers from a remote source. - 
check_for_delay(verb, path, username=None)¶
 - 
static parse_limits(limits)¶
- Ignore a limits string–simply doesn’t apply for the limit proxy. - @return: Empty list. 
 
- 
- 
create_resource()¶