From e3ff894fab6dc4fe128764db799003703fc8b6f9 Mon Sep 17 00:00:00 2001 From: David Goetz Date: Mon, 11 Jul 2011 15:54:51 -0700 Subject: [PATCH] limit posts and copies --- swift/common/middleware/ratelimit.py | 4 ++-- test/unit/common/middleware/test_ratelimit.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/swift/common/middleware/ratelimit.py b/swift/common/middleware/ratelimit.py index 9ef8210452..f5bb00a254 100644 --- a/swift/common/middleware/ratelimit.py +++ b/swift/common/middleware/ratelimit.py @@ -107,13 +107,13 @@ class RateLimitMiddleware(object): keys = [] if self.account_ratelimit and \ account_name and container_name and not obj_name and \ - req_method in ('PUT', 'DELETE'): + req_method in ('PUT', 'DELETE', 'POST'): # account_ratelimit PUTs/DELETEs to acc_name/cont_name keys.append(("ratelimit/%s" % account_name, self.account_ratelimit)) if account_name and container_name and obj_name and \ - req_method in ('PUT', 'DELETE'): + req_method in ('PUT', 'DELETE', 'POST', 'COPY'): # container_ratelimit PUTs/DELETEs to acc_name/cont_name/obj_name container_size = None memcache_key = get_container_memcache_key(account_name, diff --git a/test/unit/common/middleware/test_ratelimit.py b/test/unit/common/middleware/test_ratelimit.py index ef2608c772..0db80ac81b 100644 --- a/test/unit/common/middleware/test_ratelimit.py +++ b/test/unit/common/middleware/test_ratelimit.py @@ -191,7 +191,7 @@ class TestRateLimit(unittest.TestCase): self.assertEquals(len(the_app.get_ratelimitable_key_tuples( 'DELETE', 'a', None, None)), 0) self.assertEquals(len(the_app.get_ratelimitable_key_tuples( - 'POST', 'a', 'c', None)), 0) + 'POST', 'a', 'c', None)), 1) self.assertEquals(len(the_app.get_ratelimitable_key_tuples( 'PUT', 'a', 'c', None)), 1) self.assertEquals(len(the_app.get_ratelimitable_key_tuples( @@ -208,7 +208,7 @@ class TestRateLimit(unittest.TestCase): self.test_ratelimit = ratelimit.filter_factory(conf_dict)(FakeApp()) ratelimit.http_connect = mock_http_connect(204) for meth, exp_time in [('DELETE', 9.8), ('GET', 0), - ('POST', 0), ('PUT', 9.8)]: + ('POST', 9.8), ('PUT', 9.8)]: req = Request.blank('/v/a%s/c' % meth) req.method = meth req.environ['swift.cache'] = FakeMemcache()