summaryrefslogtreecommitdiff
path: root/swift/common/middleware/ratelimit.py
diff options
context:
space:
mode:
Diffstat (limited to 'swift/common/middleware/ratelimit.py')
-rw-r--r--swift/common/middleware/ratelimit.py16
1 files changed, 6 insertions, 10 deletions
diff --git a/swift/common/middleware/ratelimit.py b/swift/common/middleware/ratelimit.py
index 6e8dd8729..06823cd77 100644
--- a/swift/common/middleware/ratelimit.py
+++ b/swift/common/middleware/ratelimit.py
@@ -18,8 +18,7 @@ from swift import gettext_ as _
import eventlet
from swift.common.utils import cache_from_env, get_logger, register_swift_info
-from swift.proxy.controllers.base import get_container_memcache_key, \
- get_account_info
+from swift.proxy.controllers.base import get_account_info, get_container_info
from swift.common.memcached import MemcacheConnectionError
from swift.common.swob import Request, Response
@@ -118,11 +117,10 @@ class RateLimitMiddleware(object):
self.container_listing_ratelimits = interpret_conf_limits(
conf, 'container_listing_ratelimit_')
- def get_container_size(self, account_name, container_name):
+ def get_container_size(self, env):
rv = 0
- memcache_key = get_container_memcache_key(account_name,
- container_name)
- container_info = self.memcache_client.get(memcache_key)
+ container_info = get_container_info(
+ env, self.app, swift_source='RL')
if isinstance(container_info, dict):
rv = container_info.get(
'object_count', container_info.get('container_size', 0))
@@ -149,8 +147,7 @@ class RateLimitMiddleware(object):
if account_name and container_name and obj_name and \
req.method in ('PUT', 'DELETE', 'POST', 'COPY'):
- container_size = self.get_container_size(
- account_name, container_name)
+ container_size = self.get_container_size(req.environ)
container_rate = get_maxrate(
self.container_ratelimits, container_size)
if container_rate:
@@ -160,8 +157,7 @@ class RateLimitMiddleware(object):
if account_name and container_name and not obj_name and \
req.method == 'GET':
- container_size = self.get_container_size(
- account_name, container_name)
+ container_size = self.get_container_size(req.environ)
container_rate = get_maxrate(
self.container_listing_ratelimits, container_size)
if container_rate: