Store normalized x-delete-at on PUT/POST
Change-Id: I81e5d49623e884def8b5f6cbbf82f9b0d667d64a Closes-Bug: 1860149
This commit is contained in:
parent
57ca3570e9
commit
7bba3ad04d
@ -520,8 +520,9 @@ class BaseObjectController(Controller):
|
||||
req = constraints.check_delete_headers(req)
|
||||
|
||||
if 'x-delete-at' in req.headers:
|
||||
x_delete_at = int(normalize_delete_at_timestamp(
|
||||
int(req.headers['x-delete-at'])))
|
||||
req.headers['x-delete-at'] = normalize_delete_at_timestamp(
|
||||
int(req.headers['x-delete-at']))
|
||||
x_delete_at = int(req.headers['x-delete-at'])
|
||||
|
||||
req.environ.setdefault('swift.log_info', []).append(
|
||||
'x-delete-at:%s' % x_delete_at)
|
||||
|
@ -502,6 +502,29 @@ class TestObject(unittest.TestCase):
|
||||
self.assertEqual(resp.status, 400)
|
||||
self.assertEqual(body, b'X-Delete-At in past')
|
||||
|
||||
def test_x_delete_at_in_the_far_future(self):
|
||||
def put(url, token, parsed, conn):
|
||||
path = '%s/%s/%s' % (parsed.path, self.container,
|
||||
'x_delete_at_in_the_far_future')
|
||||
conn.request('PUT', path, '', {
|
||||
'X-Auth-Token': token,
|
||||
'Content-Length': '0',
|
||||
'X-Delete-At': '1' * 100})
|
||||
return check_response(conn)
|
||||
resp = retry(put)
|
||||
body = resp.read()
|
||||
self.assertEqual(resp.status, 201, 'Got %s: %s' % (resp.status, body))
|
||||
|
||||
def head(url, token, parsed, conn):
|
||||
path = '%s/%s/%s' % (parsed.path, self.container,
|
||||
'x_delete_at_in_the_far_future')
|
||||
conn.request('HEAD', path, '', {'X-Auth-Token': token})
|
||||
return check_response(conn)
|
||||
resp = retry(head)
|
||||
body = resp.read()
|
||||
self.assertEqual(resp.status, 200, 'Got %s: %s' % (resp.status, body))
|
||||
self.assertEqual(resp.headers['x-delete-at'], '9' * 10)
|
||||
|
||||
def test_copy_object(self):
|
||||
if tf.skip:
|
||||
raise SkipTest
|
||||
|
Loading…
x
Reference in New Issue
Block a user