object lock: test very large RetainUntilDate

https://tracker.ceph.com/issues/63537 reported that large dates (with
year after 2107) got truncated when written. test with a later date, and
check that get_object_retention() gives back the date we put

Signed-off-by: Casey Bodley <cbodley@redhat.com>
This commit is contained in:
Casey Bodley 2023-11-15 16:31:52 -05:00
parent e29d6246fc
commit 40182ce26f

View file

@ -11776,9 +11776,11 @@ def test_object_lock_put_obj_retention():
key = 'file1' key = 'file1'
response = client.put_object(Bucket=bucket_name, Body='abc', Key=key) response = client.put_object(Bucket=bucket_name, Body='abc', Key=key)
version_id = response['VersionId'] version_id = response['VersionId']
retention = {'Mode':'GOVERNANCE', 'RetainUntilDate':datetime.datetime(2030,1,1,tzinfo=pytz.UTC)} retention = {'Mode':'GOVERNANCE', 'RetainUntilDate':datetime.datetime(2140,1,1,tzinfo=pytz.UTC)}
response = client.put_object_retention(Bucket=bucket_name, Key=key, Retention=retention) response = client.put_object_retention(Bucket=bucket_name, Key=key, Retention=retention)
assert response['ResponseMetadata']['HTTPStatusCode'] == 200 assert response['ResponseMetadata']['HTTPStatusCode'] == 200
response = client.get_object_retention(Bucket=bucket_name, Key=key)
assert response['Retention'] == retention
client.delete_object(Bucket=bucket_name, Key=key, VersionId=version_id, BypassGovernanceRetention=True) client.delete_object(Bucket=bucket_name, Key=key, VersionId=version_id, BypassGovernanceRetention=True)