Merge "Fixes parsing req path for account HEAD/GET"
This commit is contained in:
commit
6a5642bbc2
@ -179,8 +179,15 @@ class Swift(object):
|
||||
|
||||
try:
|
||||
container = obj = None
|
||||
version, account, remainder = path.replace(
|
||||
'/', '', 1).split('/', 2)
|
||||
path = path.replace('/', '', 1)
|
||||
version, account, remainder = path.split('/', 2)
|
||||
except ValueError:
|
||||
try:
|
||||
version, account = path.split('/', 1)
|
||||
remainder = None
|
||||
except ValueError:
|
||||
return
|
||||
try:
|
||||
if not version or not account:
|
||||
raise ValueError('Invalid path: %s' % path)
|
||||
if remainder:
|
||||
|
@ -365,3 +365,19 @@ class TestSwift(tests_base.TestCase):
|
||||
list(app(req.environ, self.start_response))
|
||||
data = notify.call_args_list[0][0]
|
||||
self.assertIsNot(0, len(data[2]['target']['id']))
|
||||
|
||||
def test_head_account(self):
|
||||
app = swift.Swift(FakeApp(body=['']), {})
|
||||
req = FakeRequest('/1.0/account',
|
||||
environ={'REQUEST_METHOD': 'HEAD'})
|
||||
with mock.patch('oslo_messaging.Notifier.info') as notify:
|
||||
list(app(req.environ, self.start_response))
|
||||
self.assertEqual(1, len(notify.call_args_list))
|
||||
data = notify.call_args_list[0][0]
|
||||
self.assertEqual('objectstore.http.request', data[1])
|
||||
self.assertIsNone(data[2].get('measurements'))
|
||||
metadata = data[2]['target']['metadata']
|
||||
self.assertEqual('1.0', metadata['version'])
|
||||
self.assertIsNone(metadata['container'])
|
||||
self.assertIsNone(metadata['object'])
|
||||
self.assertEqual('head', data[2]['target']['action'])
|
||||
|
Loading…
x
Reference in New Issue
Block a user