Merge "Use HTTP_METHOD_NOT_ALLOWED when invalid method is specified"
This commit is contained in:
commit
bb16da6aa2
@ -71,7 +71,7 @@ from swift.common.http import HTTP_OK, HTTP_CREATED, HTTP_ACCEPTED, \
|
|||||||
HTTP_NO_CONTENT, HTTP_BAD_REQUEST, HTTP_UNAUTHORIZED, HTTP_FORBIDDEN, \
|
HTTP_NO_CONTENT, HTTP_BAD_REQUEST, HTTP_UNAUTHORIZED, HTTP_FORBIDDEN, \
|
||||||
HTTP_NOT_FOUND, HTTP_CONFLICT, HTTP_UNPROCESSABLE_ENTITY, is_success, \
|
HTTP_NOT_FOUND, HTTP_CONFLICT, HTTP_UNPROCESSABLE_ENTITY, is_success, \
|
||||||
HTTP_NOT_IMPLEMENTED, HTTP_LENGTH_REQUIRED, HTTP_SERVICE_UNAVAILABLE, \
|
HTTP_NOT_IMPLEMENTED, HTTP_LENGTH_REQUIRED, HTTP_SERVICE_UNAVAILABLE, \
|
||||||
HTTP_REQUEST_ENTITY_TOO_LARGE
|
HTTP_REQUEST_ENTITY_TOO_LARGE, HTTP_METHOD_NOT_ALLOWED
|
||||||
|
|
||||||
|
|
||||||
MAX_BUCKET_LISTING = 1000
|
MAX_BUCKET_LISTING = 1000
|
||||||
@ -112,6 +112,9 @@ def get_err_response(code):
|
|||||||
'EntityTooLarge':
|
'EntityTooLarge':
|
||||||
(HTTP_BAD_REQUEST, 'Your proposed upload exceeds the maximum '
|
(HTTP_BAD_REQUEST, 'Your proposed upload exceeds the maximum '
|
||||||
'allowed object size.'),
|
'allowed object size.'),
|
||||||
|
'MethodNotAllowed':
|
||||||
|
(HTTP_METHOD_NOT_ALLOWED, 'The specified method is not allowed '
|
||||||
|
'against this resource.'),
|
||||||
'NoSuchBucket':
|
'NoSuchBucket':
|
||||||
(HTTP_NOT_FOUND, 'The specified bucket does not exist'),
|
(HTTP_NOT_FOUND, 'The specified bucket does not exist'),
|
||||||
'SignatureDoesNotMatch':
|
'SignatureDoesNotMatch':
|
||||||
@ -950,7 +953,7 @@ class Swift3Middleware(object):
|
|||||||
if hasattr(controller, req.method):
|
if hasattr(controller, req.method):
|
||||||
res = getattr(controller, req.method)(env, start_response)
|
res = getattr(controller, req.method)(env, start_response)
|
||||||
else:
|
else:
|
||||||
return get_err_response('InvalidURI')(env, start_response)
|
return get_err_response('MethodNotAllowed')(env, start_response)
|
||||||
|
|
||||||
return res(env, start_response)
|
return res(env, start_response)
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ class TestSwift3(unittest.TestCase):
|
|||||||
dom = xml.dom.minidom.parseString("".join(resp))
|
dom = xml.dom.minidom.parseString("".join(resp))
|
||||||
self.assertEquals(dom.firstChild.nodeName, 'Error')
|
self.assertEquals(dom.firstChild.nodeName, 'Error')
|
||||||
code = dom.getElementsByTagName('Code')[0].childNodes[0].nodeValue
|
code = dom.getElementsByTagName('Code')[0].childNodes[0].nodeValue
|
||||||
self.assertEquals(code, 'InvalidURI')
|
self.assertEquals(code, 'MethodNotAllowed')
|
||||||
|
|
||||||
def _test_method_error(self, cl, method, path, status, headers={}):
|
def _test_method_error(self, cl, method, path, status, headers={}):
|
||||||
local_app = swift3.filter_factory({})(cl(status))
|
local_app = swift3.filter_factory({})(cl(status))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user