Skip to content

Commit

Permalink
Change ADO settings in bucket creation and udpate tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dunedodo committed Mar 8, 2022
1 parent 5e9e6ea commit 906f776
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 7 deletions.
5 changes: 3 additions & 2 deletions ecsclient/common/provisioning/bucket.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def __init__(self, connection):
self.conn = connection

def create(self, bucket_name, replication_group='', filesystem_enabled=False,
head_type=None, namespace=None, stale_allowed=False,
head_type=None, namespace=None, stale_allowed=None,
metadata=None, encryption_enabled=False):
"""
Creates a bucket which could be used by users to create objects.
Expand Down Expand Up @@ -69,14 +69,15 @@ def create(self, bucket_name, replication_group='', filesystem_enabled=False,
"name": bucket_name,
"vpool": replication_group,
"filesystem_enabled": filesystem_enabled,
"is_stale_allowed": stale_allowed,
"is_encryption_enabled": encryption_enabled,
}

log.info("Creating bucket '{}'".format(bucket_name))

if namespace:
payload['namespace'] = namespace
if stale_allowed:
payload['is_stale_allowed'] = stale_allowed
if head_type:
payload['head_type'] = head_type
if metadata:
Expand Down
61 changes: 56 additions & 5 deletions tests/functional/test_bucket.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ class TestBucket(functional.BaseTestCase):
def __init__(self, *args, **kwargs):
super(TestBucket, self).__init__(*args, **kwargs)
self.bucket_1 = "functional-tests-bucket-%s" % int(time.time())
# test bucket creation based on different namespace ADO settings
self.bucket_2 = self.bucket_1 + '_second'
self.bucket_3 = self.bucket_1 + '_third'
self.bucket_4 = self.bucket_1 + '_fourth'
self.bucket_5 = self.bucket_1 + '_fifth'
self.namespace_1 = "functional-tests-namespace-%s" % int(time.time())
self.namespace_2 = self.namespace_1 + '_second'
self.replication_group_1 = "functional-tests-replicationgroup-%s" % int(time.time())
self.replication_group_1_id = "placeholder"
self.storage_pool_1 = "functional-tests-storagepool-%s" % int(time.time())
Expand All @@ -20,13 +25,16 @@ def __init__(self, *args, **kwargs):

def setUp(self):
super(TestBucket, self).setUp()
# Create a namespace
# Create a namespace with default ADO setting
self.client.namespace.create(self.namespace_1)
# Create a namespace with ADO setting True
self.client.namespace.create(name=self.namespace_2, is_stale_allowed=True)
# Create an object user with the current logged in user name
r = self.client.user_info.whoami()
self.object_user = r['common_name']
try:
self.client.object_user.create(self.object_user, self.namespace_1)
self.client.object_user.create(self.object_user, self.namespace_2)
self.object_user_created = True
except ECSClientException:
pass
Expand Down Expand Up @@ -71,18 +79,61 @@ def tearDown(self):
def test_bucket_list(self):
response = self.client.bucket.list(self.namespace_1)
self.assertValidSchema(response, schemas.BUCKET_LIST)

def test_bucket_create(self):
response = self.client.bucket.create(self.bucket_2,
# create bucket with stale_allowed=True on namespace(default ADO setting)
response_create_2 = self.client.bucket.create(self.bucket_2,
namespace=self.namespace_1,
replication_group=self.replication_group_1_id,
filesystem_enabled=False,
head_type='s3',
stale_allowed=True,
encryption_enabled=False
)
self.assertValidSchema(response, schemas.BUCKET_SHORT)
self.assertEqual(response['name'], self.bucket_2)
self.assertValidSchema(response_create_2, schemas.BUCKET_SHORT)
self.assertEqual(response_create_2['name'], self.bucket_2)
response_get_2 = self.client.bucket.get(self.bucket_2, namespace=self.namespace_1)
self.assertEqual(True, response_get_2['is_stale_allowed'])

# create bucket with default stale_allowed on namespace(default ADO setting)
response_create_3 = self.client.bucket.create(self.bucket_3,
namespace=self.namespace_1,
replication_group=self.replication_group_1_id,
filesystem_enabled=False,
head_type='s3',
encryption_enabled=False
)
self.assertValidSchema(response_create_3, schemas.BUCKET_SHORT)
self.assertEqual(response_create_3['name'], self.bucket_3)
response_get_3 = self.client.bucket.get(self.bucket_3, namespace=self.namespace_1)
self.assertEqual(False, response_get_3['is_stale_allowed'])

# create bucket with stale_allowed=True on namespace(ADO turned on)
response_create_4 = self.client.bucket.create(self.bucket_4,
namespace=self.namespace_2,
replication_group=self.replication_group_1_id,
filesystem_enabled=False,
head_type='s3',
stale_allowed=True,
encryption_enabled=False
)
self.assertValidSchema(response_create_4, schemas.BUCKET_SHORT)
self.assertEqual(response_create_4['name'], self.bucket_4)
response_get_4 = self.client.bucket.get(self.bucket_4, namespace=self.namespace_2)
self.assertEqual(True, response_get_4['is_stale_allowed'])

# # create bucket with default stale_allowed on namespace(ADO turned on)
response_create_5 = self.client.bucket.create(self.bucket_5,
namespace=self.namespace_2,
replication_group=self.replication_group_1_id,
filesystem_enabled=False,
head_type='s3',
encryption_enabled=False
)
self.assertValidSchema(response_create_5, schemas.BUCKET_SHORT)
self.assertEqual(response_create_5['name'], self.bucket_5)
response_get_5 = self.client.bucket.get(self.bucket_5, namespace=self.namespace_2)
self.assertEqual(False, response_get_5['is_stale_allowed'])

def test_bucket_get(self):
response = self.client.bucket.get(self.bucket_1, namespace=self.namespace_1)
Expand Down

0 comments on commit 906f776

Please sign in to comment.