get_cloud_client,
nuke_prefixed_buckets,
configured_storage_classes,
+ get_lc_debug_interval,
)
'keep2/bar', 'expire3/foo', 'expire3/bar'])
client = get_client()
rules=[{'ID': 'rule1', 'Expiration': {'Days': 1}, 'Prefix': 'expire1/', 'Status':'Enabled'},
- {'ID': 'rule2', 'Expiration': {'Days': 4}, 'Prefix': 'expire3/', 'Status':'Enabled'}]
+ {'ID': 'rule2', 'Expiration': {'Days': 5}, 'Prefix': 'expire3/', 'Status':'Enabled'}]
lifecycle = {'Rules': rules}
client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
response = client.list_objects(Bucket=bucket_name)
init_objects = response['Contents']
- time.sleep(28)
+ lc_interval = get_lc_debug_interval()
+
+ time.sleep(3*lc_interval)
response = client.list_objects(Bucket=bucket_name)
expire1_objects = response['Contents']
- time.sleep(10)
+ time.sleep(lc_interval)
response = client.list_objects(Bucket=bucket_name)
keep2_objects = response['Contents']
- time.sleep(20)
+ time.sleep(3*lc_interval)
response = client.list_objects(Bucket=bucket_name)
expire3_objects = response['Contents']
'keep2/bar', 'expire3/foo', 'expire3/bar'])
client = get_client()
rules=[{'ID': 'rule1', 'Expiration': {'Days': 1}, 'Prefix': 'expire1/', 'Status':'Enabled'},
- {'ID': 'rule2', 'Expiration': {'Days': 4}, 'Prefix': 'expire3/', 'Status':'Enabled'}]
+ {'ID': 'rule2', 'Expiration': {'Days': 5}, 'Prefix': 'expire3/', 'Status':'Enabled'}]
lifecycle = {'Rules': rules}
client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
response = client.list_objects_v2(Bucket=bucket_name)
init_objects = response['Contents']
- time.sleep(28)
+ lc_interval = get_lc_debug_interval()
+
+ time.sleep(3*lc_interval)
response = client.list_objects_v2(Bucket=bucket_name)
expire1_objects = response['Contents']
- time.sleep(10)
+ time.sleep(lc_interval)
response = client.list_objects_v2(Bucket=bucket_name)
keep2_objects = response['Contents']
- time.sleep(20)
+ time.sleep(3*lc_interval)
response = client.list_objects_v2(Bucket=bucket_name)
expire3_objects = response['Contents']
rules=[{'ID': 'rule1', 'Expiration': {'Days': 1}, 'Prefix': 'test1/', 'Status':'Enabled'}]
lifecycle = {'Rules': rules}
client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
- time.sleep(30)
+
+ lc_interval = get_lc_debug_interval()
+
+ time.sleep(3*lc_interval)
response = client.list_object_versions(Bucket=bucket_name)
versions = response['Versions']
Bucket=bucket_name, LifecycleConfiguration=lifecycle_config)
eq(response['ResponseMetadata']['HTTPStatusCode'], 200)
- time.sleep(28)
+ lc_interval = get_lc_debug_interval()
+
+ time.sleep(3*lc_interval)
try:
expire_objects = response['Contents']
response = setup_lifecycle_tags2(client, bucket_name)
- time.sleep(28)
+ lc_interval = get_lc_debug_interval()
+
+ time.sleep(3*lc_interval)
response = client.list_objects(Bucket=bucket_name)
expire1_objects = response['Contents']
response = setup_lifecycle_tags2(client, bucket_name)
- time.sleep(28)
+ lc_interval = get_lc_debug_interval()
+
+ time.sleep(3*lc_interval)
response = client.list_objects(Bucket=bucket_name)
expire1_objects = response['Contents']
# noncurrent version expiration at 4 "days"
response = setup_lifecycle_noncur_tags(client, bucket_name, 4)
+ lc_interval = get_lc_debug_interval()
+
num_objs = verify_lifecycle_expiration_noncur_tags(
- client, bucket_name, 20)
+ client, bucket_name, 2*lc_interval)
# at T+20, 10 objects should exist
eq(num_objs, 10)
num_objs = verify_lifecycle_expiration_noncur_tags(
- client, bucket_name, 40)
+ client, bucket_name, 5*lc_interval)
# at T+60, only the current object version should exist
eq(num_objs, 1)
response = client.list_objects(Bucket=bucket_name)
init_objects = response['Contents']
- time.sleep(20)
+ lc_interval = get_lc_debug_interval()
+
+ # Wait for first expiration (plus fudge to handle the timer window)
+ time.sleep(3*lc_interval)
response = client.list_objects(Bucket=bucket_name)
expire_objects = response['Contents']
rules=[{'ID': 'rule1', 'NoncurrentVersionExpiration': {'NoncurrentDays': 2}, 'Prefix': 'test1/', 'Status':'Enabled'}]
lifecycle = {'Rules': rules}
client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
- time.sleep(50)
+
+ lc_interval = get_lc_debug_interval()
+
+ # Wait for first expiration (plus fudge to handle the timer window)
+ time.sleep(5*lc_interval)
response = client.list_object_versions(Bucket=bucket_name)
expire_versions = response['Versions']
rules=[{'ID': 'rule1', 'NoncurrentVersionExpiration': {'NoncurrentDays': 1}, 'Expiration': {'ExpiredObjectDeleteMarker': True}, 'Prefix': 'test1/', 'Status':'Enabled'}]
lifecycle = {'Rules': rules}
client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
- time.sleep(50)
+
+ lc_interval = get_lc_debug_interval()
+
+ # Wait for first expiration (plus fudge to handle the timer window)
+ time.sleep(5*lc_interval)
response = client.list_object_versions(Bucket=bucket_name)
init_versions = response['Versions']
]
lifecycle = {'Rules': rules}
response = client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
- time.sleep(50)
+
+ lc_interval = get_lc_debug_interval()
+
+ # Wait for first expiration (plus fudge to handle the timer window)
+ time.sleep(5*lc_interval)
response = client.list_multipart_uploads(Bucket=bucket_name)
expired_uploads = response['Uploads']
'keep2/bar', 'expire3/foo', 'expire3/bar'])
client = get_client()
rules=[{'ID': 'rule1', 'Transitions': [{'Days': 1, 'StorageClass': sc[1]}], 'Prefix': 'expire1/', 'Status': 'Enabled'},
- {'ID': 'rule2', 'Transitions': [{'Days': 4, 'StorageClass': sc[2]}], 'Prefix': 'expire3/', 'Status': 'Enabled'}]
+ {'ID': 'rule2', 'Transitions': [{'Days': 6, 'StorageClass': sc[2]}], 'Prefix': 'expire3/', 'Status': 'Enabled'}]
lifecycle = {'Rules': rules}
client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
init_keys = _get_keys(response)
eq(len(init_keys), 6)
+ lc_interval = get_lc_debug_interval()
+
# Wait for first expiration (plus fudge to handle the timer window)
- time.sleep(25)
+ time.sleep(4*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket_name)
eq(len(expire1_keys['STANDARD']), 4)
eq(len(expire1_keys[sc[1]]), 2)
eq(len(expire1_keys[sc[2]]), 0)
# Wait for next expiration cycle
- time.sleep(10)
+ time.sleep(lc_interval)
keep2_keys = list_bucket_storage_class(client, bucket_name)
eq(len(keep2_keys['STANDARD']), 4)
eq(len(keep2_keys[sc[1]]), 2)
eq(len(keep2_keys[sc[2]]), 0)
# Wait for final expiration cycle
- time.sleep(20)
+ time.sleep(5*lc_interval)
expire3_keys = list_bucket_storage_class(client, bucket_name)
eq(len(expire3_keys['STANDARD']), 2)
eq(len(expire3_keys[sc[1]]), 2)
bucket_name = _create_objects(keys=['expire1/foo', 'expire1/bar', 'keep2/foo',
'keep2/bar', 'expire3/foo', 'expire3/bar'])
client = get_client()
- rules=[{'ID': 'rule1', 'Transitions': [{'Days': 1, 'StorageClass': sc[1]}, {'Days': 4, 'StorageClass': sc[2]}], 'Prefix': 'expire1/', 'Status': 'Enabled'}]
+ rules=[{'ID': 'rule1', 'Transitions': [{'Days': 1, 'StorageClass': sc[1]}, {'Days': 6, 'StorageClass': sc[2]}], 'Prefix': 'expire1/', 'Status': 'Enabled'}]
lifecycle = {'Rules': rules}
client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
init_keys = _get_keys(response)
eq(len(init_keys), 6)
+ lc_interval = get_lc_debug_interval()
+
# Wait for first expiration (plus fudge to handle the timer window)
- time.sleep(25)
+ time.sleep(4*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket_name)
eq(len(expire1_keys['STANDARD']), 4)
eq(len(expire1_keys[sc[1]]), 2)
eq(len(expire1_keys[sc[2]]), 0)
# Wait for next expiration cycle
- time.sleep(10)
+ time.sleep(lc_interval)
keep2_keys = list_bucket_storage_class(client, bucket_name)
eq(len(keep2_keys['STANDARD']), 4)
eq(len(keep2_keys[sc[1]]), 2)
eq(len(keep2_keys[sc[2]]), 0)
# Wait for final expiration cycle
- time.sleep(20)
+ time.sleep(5*lc_interval)
expire3_keys = list_bucket_storage_class(client, bucket_name)
eq(len(expire3_keys['STANDARD']), 4)
eq(len(expire3_keys[sc[1]]), 0)
'StorageClass': sc[1]
},
{
- 'NoncurrentDays': 3,
+ 'NoncurrentDays': 5,
'StorageClass': sc[2]
}
],
'NoncurrentVersionExpiration': {
- 'NoncurrentDays': 5
+ 'NoncurrentDays': 9
}
}
]
init_keys = list_bucket_storage_class(client, bucket)
eq(len(init_keys['STANDARD']), 6)
- time.sleep(25)
+ lc_interval = get_lc_debug_interval()
+
+ time.sleep(4*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket)
eq(len(expire1_keys['STANDARD']), 2)
eq(len(expire1_keys[sc[1]]), 4)
eq(len(expire1_keys[sc[2]]), 0)
- time.sleep(20)
+ time.sleep(4*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket)
eq(len(expire1_keys['STANDARD']), 2)
eq(len(expire1_keys[sc[1]]), 0)
eq(len(expire1_keys[sc[2]]), 4)
- time.sleep(20)
+ time.sleep(4*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket)
eq(len(expire1_keys['STANDARD']), 2)
eq(len(expire1_keys[sc[1]]), 0)
init_keys = _get_keys(response)
eq(len(init_keys), 4)
+ lc_interval = get_lc_debug_interval()
+
# Wait for first expiration (plus fudge to handle the timer window)
- time.sleep(30)
+ time.sleep(3*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket_name)
eq(len(expire1_keys['STANDARD']), 2)
else:
eq(len(expire1_keys[cloud_sc]), 0)
- time.sleep(20)
+ time.sleep(2*lc_interval)
# Check if objects copied to target path
if target_path == None:
target_path = "rgwx-default-" + cloud_sc.lower() + "-cloud-bucket"
cloud_client = get_cloud_client()
- time.sleep(100)
+ time.sleep(10*lc_interval)
expire1_key1_str = prefix + keys[0]
verify_object(cloud_client, target_path, expire1_key1_str, keys[0], target_sc)
bucket_name = _create_objects(keys=keys)
client = get_client()
rules=[{'ID': 'rule1', 'Transitions': [{'Days': 1, 'StorageClass': sc1}], 'Prefix': 'expire1/', 'Status': 'Enabled'},
- {'ID': 'rule2', 'Transitions': [{'Days': 6, 'StorageClass': cloud_sc}], 'Prefix': 'expire1/', 'Status': 'Enabled'},
- {'ID': 'rule3', 'Expiration': {'Days': 8}, 'Prefix': 'expire1/', 'Status': 'Enabled'}]
+ {'ID': 'rule2', 'Transitions': [{'Days': 5, 'StorageClass': cloud_sc}], 'Prefix': 'expire1/', 'Status': 'Enabled'},
+ {'ID': 'rule3', 'Expiration': {'Days': 9}, 'Prefix': 'expire1/', 'Status': 'Enabled'}]
lifecycle = {'Rules': rules}
client.put_bucket_lifecycle_configuration(Bucket=bucket_name, LifecycleConfiguration=lifecycle)
init_keys = _get_keys(response)
eq(len(init_keys), 4)
+ lc_interval = get_lc_debug_interval()
+
# Wait for first expiration (plus fudge to handle the timer window)
- time.sleep(50)
+ time.sleep(3*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket_name)
eq(len(expire1_keys['STANDARD']), 2)
eq(len(expire1_keys[sc[1]]), 2)
eq(len(expire1_keys[sc[2]]), 0)
# Wait for next expiration cycle
- time.sleep(50)
+ time.sleep(4*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket_name)
eq(len(expire1_keys['STANDARD']), 2)
eq(len(expire1_keys[sc[1]]), 0)
eq(len(expire1_keys[sc[2]]), 0)
# Wait for final expiration cycle
- time.sleep(60)
+ time.sleep(4*lc_interval)
expire3_keys = list_bucket_storage_class(client, bucket_name)
eq(len(expire3_keys['STANDARD']), 2)
eq(len(expire3_keys[sc[1]]), 0)
'StorageClass': sc[1]
},
{
- 'NoncurrentDays': 3,
+ 'NoncurrentDays': 5,
'StorageClass': sc[2]
}
],
response = client.list_object_versions(Bucket=bucket)
- time.sleep(25)
+ lc_interval = get_lc_debug_interval()
+
+ time.sleep(3*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket)
eq(len(expire1_keys['STANDARD']), 2)
eq(len(expire1_keys[sc[1]]), 4)
eq(len(expire1_keys[sc[2]]), 0)
- time.sleep(80)
+ time.sleep(5*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket)
eq(len(expire1_keys['STANDARD']), 2)
eq(len(expire1_keys[sc[1]]), 0)
cloud_client = get_cloud_client()
- time.sleep(10)
+ time.sleep(lc_interval)
result = list_bucket_versions(client, bucket)
for src_key in keys:
lifecycle = {'Rules': rules}
response = client.put_bucket_lifecycle_configuration(Bucket=bucket, LifecycleConfiguration=lifecycle)
+ lc_interval = get_lc_debug_interval()
+
# Wait for first expiration (plus fudge to handle the timer window)
- time.sleep(30)
+ time.sleep(3*lc_interval)
expire1_keys = list_bucket_storage_class(client, bucket)
eq(len(expire1_keys['STANDARD']), 1)
prefix = bucket + "/"
# multipart upload takes time
- time.sleep(10)
+ time.sleep(3*lc_interval)
cloud_client = get_cloud_client()
expire1_key1_str = prefix + keys[1]