Merge "Fix create container method"
This commit is contained in:
@@ -106,7 +106,7 @@ class BaseObjectTest(tempest.test.BaseTestCase):
|
|||||||
def create_container(cls):
|
def create_container(cls):
|
||||||
# wrapper that returns a test container
|
# wrapper that returns a test container
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
cls.container_client.create_container(container_name)
|
cls.container_client.update_container(container_name)
|
||||||
cls.containers.append(container_name)
|
cls.containers.append(container_name)
|
||||||
|
|
||||||
return container_name
|
return container_name
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class AccountTest(base.BaseObjectTest):
|
|||||||
super(AccountTest, cls).resource_setup()
|
super(AccountTest, cls).resource_setup()
|
||||||
for i in range(ord('a'), ord('f') + 1):
|
for i in range(ord('a'), ord('f') + 1):
|
||||||
name = data_utils.rand_name(name='%s-' % six.int2byte(i))
|
name = data_utils.rand_name(name='%s-' % six.int2byte(i))
|
||||||
cls.container_client.create_container(name)
|
cls.container_client.update_container(name)
|
||||||
cls.containers.append(name)
|
cls.containers.append(name)
|
||||||
cls.containers_count = len(cls.containers)
|
cls.containers_count = len(cls.containers)
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ class ObjectACLsNegativeTest(base.BaseObjectTest):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(ObjectACLsNegativeTest, self).setUp()
|
super(ObjectACLsNegativeTest, self).setUp()
|
||||||
self.container_name = data_utils.rand_name(name='TestContainer')
|
self.container_name = data_utils.rand_name(name='TestContainer')
|
||||||
self.container_client.create_container(self.container_name)
|
self.container_client.update_container(self.container_name)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.delete_containers([self.container_name])
|
self.delete_containers([self.container_name])
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
@decorators.idempotent_id('92139d73-7819-4db1-85f8-3f2f22a8d91f')
|
@decorators.idempotent_id('92139d73-7819-4db1-85f8-3f2f22a8d91f')
|
||||||
def test_create_container(self):
|
def test_create_container(self):
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
resp, _ = self.container_client.create_container(container_name)
|
resp, _ = self.container_client.update_container(container_name)
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
self.assertHeaders(resp, 'Container', 'PUT')
|
self.assertHeaders(resp, 'Container', 'PUT')
|
||||||
|
|
||||||
@@ -35,20 +35,20 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
def test_create_container_overwrite(self):
|
def test_create_container_overwrite(self):
|
||||||
# overwrite container with the same name
|
# overwrite container with the same name
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
self.container_client.create_container(container_name)
|
self.container_client.update_container(container_name)
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
|
|
||||||
resp, _ = self.container_client.create_container(container_name)
|
resp, _ = self.container_client.update_container(container_name)
|
||||||
self.assertHeaders(resp, 'Container', 'PUT')
|
self.assertHeaders(resp, 'Container', 'PUT')
|
||||||
|
|
||||||
@decorators.idempotent_id('c2ac4d59-d0f5-40d5-ba19-0635056d48cd')
|
@decorators.idempotent_id('c2ac4d59-d0f5-40d5-ba19-0635056d48cd')
|
||||||
def test_create_container_with_metadata_key(self):
|
def test_create_container_with_metadata_key(self):
|
||||||
# create container with the blank value of metadata
|
# create container with the blank value of metadata
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata = {'test-container-meta': ''}
|
headers = {'X-Container-Meta-test-container-meta': ''}
|
||||||
resp, _ = self.container_client.create_container(
|
resp, _ = self.container_client.update_container(
|
||||||
container_name,
|
container_name,
|
||||||
metadata=metadata)
|
**headers)
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
self.assertHeaders(resp, 'Container', 'PUT')
|
self.assertHeaders(resp, 'Container', 'PUT')
|
||||||
|
|
||||||
@@ -64,10 +64,10 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
|
|
||||||
# metadata name using underscores should be converted to hyphens
|
# metadata name using underscores should be converted to hyphens
|
||||||
metadata = {'test_container_meta': 'Meta1'}
|
headers = {'X-Container-Meta-test_container_meta': 'Meta1'}
|
||||||
resp, _ = self.container_client.create_container(
|
resp, _ = self.container_client.update_container(
|
||||||
container_name,
|
container_name,
|
||||||
metadata=metadata)
|
**headers)
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
self.assertHeaders(resp, 'Container', 'PUT')
|
self.assertHeaders(resp, 'Container', 'PUT')
|
||||||
|
|
||||||
@@ -75,22 +75,20 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
container_name)
|
container_name)
|
||||||
self.assertIn('x-container-meta-test-container-meta', resp)
|
self.assertIn('x-container-meta-test-container-meta', resp)
|
||||||
self.assertEqual(resp['x-container-meta-test-container-meta'],
|
self.assertEqual(resp['x-container-meta-test-container-meta'],
|
||||||
metadata['test_container_meta'])
|
headers['X-Container-Meta-test_container_meta'])
|
||||||
|
|
||||||
@decorators.idempotent_id('24d16451-1c0c-4e4f-b59c-9840a3aba40e')
|
@decorators.idempotent_id('24d16451-1c0c-4e4f-b59c-9840a3aba40e')
|
||||||
def test_create_container_with_remove_metadata_key(self):
|
def test_create_container_with_remove_metadata_key(self):
|
||||||
# create container with the blank value of remove metadata
|
# create container with the blank value of remove metadata
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata_1 = {'test-container-meta': 'Meta1'}
|
headers = {'X-Container-Meta-test-container-meta': 'Meta1'}
|
||||||
self.container_client.create_container(
|
self.container_client.update_container(container_name, **headers)
|
||||||
container_name,
|
|
||||||
metadata=metadata_1)
|
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
|
|
||||||
metadata_2 = {'test-container-meta': ''}
|
headers = {'X-Remove-Container-Meta-test-container-meta': ''}
|
||||||
resp, _ = self.container_client.create_container(
|
resp, _ = self.container_client.update_container(
|
||||||
container_name,
|
container_name,
|
||||||
remove_metadata=metadata_2)
|
**headers)
|
||||||
self.assertHeaders(resp, 'Container', 'PUT')
|
self.assertHeaders(resp, 'Container', 'PUT')
|
||||||
|
|
||||||
resp, _ = self.container_client.list_container_metadata(
|
resp, _ = self.container_client.list_container_metadata(
|
||||||
@@ -101,14 +99,13 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
def test_create_container_with_remove_metadata_value(self):
|
def test_create_container_with_remove_metadata_value(self):
|
||||||
# create container with remove metadata
|
# create container with remove metadata
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata = {'test-container-meta': 'Meta1'}
|
headers = {'X-Container-Meta-test-container-meta': 'Meta1'}
|
||||||
self.container_client.create_container(container_name,
|
self.container_client.update_container(container_name, **headers)
|
||||||
metadata=metadata)
|
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
|
headers = {'X-Remove-Container-Meta-test-container-meta': 'Meta1'}
|
||||||
resp, _ = self.container_client.create_container(
|
resp, _ = self.container_client.update_container(
|
||||||
container_name,
|
container_name,
|
||||||
remove_metadata=metadata)
|
**headers)
|
||||||
self.assertHeaders(resp, 'Container', 'PUT')
|
self.assertHeaders(resp, 'Container', 'PUT')
|
||||||
|
|
||||||
resp, _ = self.container_client.list_container_metadata(
|
resp, _ = self.container_client.list_container_metadata(
|
||||||
@@ -301,9 +298,8 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
def test_update_container_metadata_with_create_and_delete_metadata(self):
|
def test_update_container_metadata_with_create_and_delete_metadata(self):
|
||||||
# Send one request of adding and deleting metadata
|
# Send one request of adding and deleting metadata
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata_1 = {'test-container-meta1': 'Meta1'}
|
metadata_1 = {'X-Container-Meta-test-container-meta1': 'Meta1'}
|
||||||
self.container_client.create_container(container_name,
|
self.container_client.update_container(container_name, **metadata_1)
|
||||||
metadata=metadata_1)
|
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
|
|
||||||
metadata_2 = {'test-container-meta2': 'Meta2'}
|
metadata_2 = {'test-container-meta2': 'Meta2'}
|
||||||
@@ -311,7 +307,7 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
self.container_client.create_update_or_delete_container_metadata(
|
self.container_client.create_update_or_delete_container_metadata(
|
||||||
container_name,
|
container_name,
|
||||||
create_update_metadata=metadata_2,
|
create_update_metadata=metadata_2,
|
||||||
delete_metadata=metadata_1))
|
delete_metadata={'test-container-meta1': 'Meta1'}))
|
||||||
self.assertHeaders(resp, 'Container', 'POST')
|
self.assertHeaders(resp, 'Container', 'POST')
|
||||||
|
|
||||||
resp, _ = self.container_client.list_container_metadata(
|
resp, _ = self.container_client.list_container_metadata(
|
||||||
@@ -343,15 +339,14 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
def test_update_container_metadata_with_delete_metadata(self):
|
def test_update_container_metadata_with_delete_metadata(self):
|
||||||
# update container metadata using delete metadata
|
# update container metadata using delete metadata
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata = {'test-container-meta1': 'Meta1'}
|
metadata = {'X-Container-Meta-test-container-meta1': 'Meta1'}
|
||||||
self.container_client.create_container(container_name,
|
self.container_client.update_container(container_name, **metadata)
|
||||||
metadata=metadata)
|
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
|
|
||||||
resp, _ = (
|
resp, _ = (
|
||||||
self.container_client.create_update_or_delete_container_metadata(
|
self.container_client.create_update_or_delete_container_metadata(
|
||||||
container_name,
|
container_name,
|
||||||
delete_metadata=metadata))
|
delete_metadata={'test-container-meta1': 'Meta1'}))
|
||||||
self.assertHeaders(resp, 'Container', 'POST')
|
self.assertHeaders(resp, 'Container', 'POST')
|
||||||
|
|
||||||
resp, _ = self.container_client.list_container_metadata(
|
resp, _ = self.container_client.list_container_metadata(
|
||||||
@@ -378,9 +373,8 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
def test_update_container_metadata_with_delete_metadata_key(self):
|
def test_update_container_metadata_with_delete_metadata_key(self):
|
||||||
# update container metadata with a blank value of metadata
|
# update container metadata with a blank value of metadata
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata = {'test-container-meta1': 'Meta1'}
|
headers = {'X-Container-Meta-test-container-meta1': 'Meta1'}
|
||||||
self.container_client.create_container(container_name,
|
self.container_client.update_container(container_name, **headers)
|
||||||
metadata=metadata)
|
|
||||||
self.containers.append(container_name)
|
self.containers.append(container_name)
|
||||||
|
|
||||||
metadata = {'test-container-meta1': ''}
|
metadata = {'test-container-meta1': ''}
|
||||||
|
|||||||
@@ -45,9 +45,10 @@ class ContainerNegativeTest(base.BaseObjectTest):
|
|||||||
max_length = self.constraints['max_container_name_length']
|
max_length = self.constraints['max_container_name_length']
|
||||||
# create a container with long name
|
# create a container with long name
|
||||||
container_name = data_utils.arbitrary_string(size=max_length + 1)
|
container_name = data_utils.arbitrary_string(size=max_length + 1)
|
||||||
ex = self.assertRaises(exceptions.BadRequest,
|
ex = self.assertRaises(
|
||||||
self.container_client.create_container,
|
exceptions.BadRequest,
|
||||||
container_name)
|
self.container_client.update_container,
|
||||||
|
container_name)
|
||||||
self.assertIn('Container name length of ' + str(max_length + 1) +
|
self.assertIn('Container name length of ' + str(max_length + 1) +
|
||||||
' longer than ' + str(max_length), str(ex))
|
' longer than ' + str(max_length), str(ex))
|
||||||
|
|
||||||
@@ -61,11 +62,13 @@ class ContainerNegativeTest(base.BaseObjectTest):
|
|||||||
# that is longer than max.
|
# that is longer than max.
|
||||||
max_length = self.constraints['max_meta_name_length']
|
max_length = self.constraints['max_meta_name_length']
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata_name = data_utils.arbitrary_string(size=max_length + 1)
|
metadata_name = 'X-Container-Meta-' + data_utils.arbitrary_string(
|
||||||
|
size=max_length + 1)
|
||||||
metadata = {metadata_name: 'penguin'}
|
metadata = {metadata_name: 'penguin'}
|
||||||
ex = self.assertRaises(exceptions.BadRequest,
|
ex = self.assertRaises(
|
||||||
self.container_client.create_container,
|
exceptions.BadRequest,
|
||||||
container_name, metadata=metadata)
|
self.container_client.update_container,
|
||||||
|
container_name, **metadata)
|
||||||
self.assertIn('Metadata name too long', str(ex))
|
self.assertIn('Metadata name too long', str(ex))
|
||||||
|
|
||||||
@decorators.attr(type=["negative"])
|
@decorators.attr(type=["negative"])
|
||||||
@@ -79,10 +82,11 @@ class ContainerNegativeTest(base.BaseObjectTest):
|
|||||||
max_length = self.constraints['max_meta_value_length']
|
max_length = self.constraints['max_meta_value_length']
|
||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata_value = data_utils.arbitrary_string(size=max_length + 1)
|
metadata_value = data_utils.arbitrary_string(size=max_length + 1)
|
||||||
metadata = {'animal': metadata_value}
|
metadata = {'X-Container-Meta-animal': metadata_value}
|
||||||
ex = self.assertRaises(exceptions.BadRequest,
|
ex = self.assertRaises(
|
||||||
self.container_client.create_container,
|
exceptions.BadRequest,
|
||||||
container_name, metadata=metadata)
|
self.container_client.update_container,
|
||||||
|
container_name, **metadata)
|
||||||
self.assertIn('Metadata value longer than ' + str(max_length), str(ex))
|
self.assertIn('Metadata value longer than ' + str(max_length), str(ex))
|
||||||
|
|
||||||
@decorators.attr(type=["negative"])
|
@decorators.attr(type=["negative"])
|
||||||
@@ -97,11 +101,12 @@ class ContainerNegativeTest(base.BaseObjectTest):
|
|||||||
container_name = data_utils.rand_name(name='TestContainer')
|
container_name = data_utils.rand_name(name='TestContainer')
|
||||||
metadata = {}
|
metadata = {}
|
||||||
for i in range(max_count + 1):
|
for i in range(max_count + 1):
|
||||||
metadata['animal-' + str(i)] = 'penguin'
|
metadata['X-Container-Meta-animal-' + str(i)] = 'penguin'
|
||||||
|
|
||||||
ex = self.assertRaises(exceptions.BadRequest,
|
ex = self.assertRaises(
|
||||||
self.container_client.create_container,
|
exceptions.BadRequest,
|
||||||
container_name, metadata=metadata)
|
self.container_client.update_container,
|
||||||
|
container_name, **metadata)
|
||||||
self.assertIn('Too many metadata items; max ' + str(max_count),
|
self.assertIn('Too many metadata items; max ' + str(max_count),
|
||||||
str(ex))
|
str(ex))
|
||||||
|
|
||||||
|
|||||||
@@ -786,12 +786,12 @@ class ObjectTest(base.BaseObjectTest):
|
|||||||
def test_copy_object_across_containers(self):
|
def test_copy_object_across_containers(self):
|
||||||
# create a container to use as a source container
|
# create a container to use as a source container
|
||||||
src_container_name = data_utils.rand_name(name='TestSourceContainer')
|
src_container_name = data_utils.rand_name(name='TestSourceContainer')
|
||||||
self.container_client.create_container(src_container_name)
|
self.container_client.update_container(src_container_name)
|
||||||
self.containers.append(src_container_name)
|
self.containers.append(src_container_name)
|
||||||
# create a container to use as a destination container
|
# create a container to use as a destination container
|
||||||
dst_container_name = data_utils.rand_name(
|
dst_container_name = data_utils.rand_name(
|
||||||
name='TestDestinationContainer')
|
name='TestDestinationContainer')
|
||||||
self.container_client.create_container(dst_container_name)
|
self.container_client.update_container(dst_container_name)
|
||||||
self.containers.append(dst_container_name)
|
self.containers.append(dst_container_name)
|
||||||
# create object in source container
|
# create object in source container
|
||||||
object_name = data_utils.rand_name(name='Object')
|
object_name = data_utils.rand_name(name='Object')
|
||||||
@@ -977,7 +977,7 @@ class PublicObjectTest(base.BaseObjectTest):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(PublicObjectTest, self).setUp()
|
super(PublicObjectTest, self).setUp()
|
||||||
self.container_name = data_utils.rand_name(name='TestContainer')
|
self.container_name = data_utils.rand_name(name='TestContainer')
|
||||||
self.container_client.create_container(self.container_name)
|
self.container_client.update_container(self.container_name)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.delete_containers([self.container_name])
|
self.delete_containers([self.container_name])
|
||||||
|
|||||||
@@ -51,18 +51,16 @@ class ContainerTest(base.BaseObjectTest):
|
|||||||
def test_versioned_container(self):
|
def test_versioned_container(self):
|
||||||
# create container
|
# create container
|
||||||
vers_container_name = data_utils.rand_name(name='TestVersionContainer')
|
vers_container_name = data_utils.rand_name(name='TestVersionContainer')
|
||||||
resp, _ = self.container_client.create_container(
|
resp, _ = self.container_client.update_container(vers_container_name)
|
||||||
vers_container_name)
|
|
||||||
self.containers.append(vers_container_name)
|
self.containers.append(vers_container_name)
|
||||||
self.assertHeaders(resp, 'Container', 'PUT')
|
self.assertHeaders(resp, 'Container', 'PUT')
|
||||||
self.assertContainer(vers_container_name, '0', '0', 'Missing Header')
|
self.assertContainer(vers_container_name, '0', '0', 'Missing Header')
|
||||||
|
|
||||||
base_container_name = data_utils.rand_name(name='TestBaseContainer')
|
base_container_name = data_utils.rand_name(name='TestBaseContainer')
|
||||||
headers = {'X-versions-Location': vers_container_name}
|
headers = {'X-versions-Location': vers_container_name}
|
||||||
resp, _ = self.container_client.create_container(
|
resp, _ = self.container_client.update_container(
|
||||||
base_container_name,
|
base_container_name,
|
||||||
metadata=headers,
|
**headers)
|
||||||
metadata_prefix='')
|
|
||||||
self.containers.append(base_container_name)
|
self.containers.append(base_container_name)
|
||||||
self.assertHeaders(resp, 'Container', 'PUT')
|
self.assertHeaders(resp, 'Container', 'PUT')
|
||||||
self.assertContainer(base_container_name, '0', '0',
|
self.assertContainer(base_container_name, '0', '0',
|
||||||
|
|||||||
@@ -1278,7 +1278,7 @@ class ObjectStorageScenarioTest(ScenarioTest):
|
|||||||
def create_container(self, container_name=None):
|
def create_container(self, container_name=None):
|
||||||
name = container_name or data_utils.rand_name(
|
name = container_name or data_utils.rand_name(
|
||||||
'swift-scenario-container')
|
'swift-scenario-container')
|
||||||
self.container_client.create_container(name)
|
self.container_client.update_container(name)
|
||||||
# look for the container to assure it is created
|
# look for the container to assure it is created
|
||||||
self.list_and_check_container_objects(name)
|
self.list_and_check_container_objects(name)
|
||||||
LOG.debug('Container %s created', name)
|
LOG.debug('Container %s created', name)
|
||||||
|
|||||||
@@ -24,30 +24,25 @@ from tempest.lib.common import rest_client
|
|||||||
|
|
||||||
class ContainerClient(rest_client.RestClient):
|
class ContainerClient(rest_client.RestClient):
|
||||||
|
|
||||||
def create_container(
|
def update_container(self, container_name, **headers):
|
||||||
self, container_name,
|
"""Creates or Updates a container
|
||||||
metadata=None,
|
|
||||||
remove_metadata=None,
|
|
||||||
metadata_prefix='X-Container-Meta-',
|
|
||||||
remove_metadata_prefix='X-Remove-Container-Meta-'):
|
|
||||||
"""Creates a container
|
|
||||||
|
|
||||||
with optional metadata passed in as a dictionary
|
with optional metadata passed in as a dictionary.
|
||||||
|
Full list of allowed headers or value, please refer to the
|
||||||
|
official API reference:
|
||||||
|
https://developer.openstack.org/api-ref/object-store/#create-container
|
||||||
"""
|
"""
|
||||||
url = str(container_name)
|
url = str(container_name)
|
||||||
headers = {}
|
|
||||||
|
|
||||||
if metadata is not None:
|
|
||||||
for key in metadata:
|
|
||||||
headers[metadata_prefix + key] = metadata[key]
|
|
||||||
if remove_metadata is not None:
|
|
||||||
for key in remove_metadata:
|
|
||||||
headers[remove_metadata_prefix + key] = remove_metadata[key]
|
|
||||||
|
|
||||||
resp, body = self.put(url, body=None, headers=headers)
|
resp, body = self.put(url, body=None, headers=headers)
|
||||||
self.expected_success([201, 202], resp.status)
|
self.expected_success([201, 202], resp.status)
|
||||||
return resp, body
|
return resp, body
|
||||||
|
|
||||||
|
# NOTE: This alias is for the usability because PUT can be used for both
|
||||||
|
# updating/creating a resource and this PUT is mainly used for creating
|
||||||
|
# on Swift container API.
|
||||||
|
create_container = update_container
|
||||||
|
|
||||||
def delete_container(self, container_name):
|
def delete_container(self, container_name):
|
||||||
"""Deletes the container (if it's empty)."""
|
"""Deletes the container (if it's empty)."""
|
||||||
url = str(container_name)
|
url = str(container_name)
|
||||||
|
|||||||
Reference in New Issue
Block a user