Revert "Url quoting of swift object names when deleting"
This reverts commit fc73a2e881
.
Change-Id: I7d0d0d4f6af53dec2cf96e1bbc8de70d5f6c7ba3
This commit is contained in:
parent
0f517cf361
commit
a7b9786f4a
|
@ -9,9 +9,6 @@
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from six.moves import urllib_parse
|
|
||||||
|
|
||||||
from ospurge.resources import base
|
from ospurge.resources import base
|
||||||
from ospurge.resources.base import BaseServiceResource
|
from ospurge.resources.base import BaseServiceResource
|
||||||
from ospurge.resources import glance
|
from ospurge.resources import glance
|
||||||
|
@ -20,9 +17,7 @@ from ospurge.resources import glance
|
||||||
class ListObjectsMixin(BaseServiceResource):
|
class ListObjectsMixin(BaseServiceResource):
|
||||||
def list_objects(self):
|
def list_objects(self):
|
||||||
for container in self.cloud.list_containers():
|
for container in self.cloud.list_containers():
|
||||||
for obj in self.cloud.list_objects(
|
for obj in self.cloud.list_objects(container['name']):
|
||||||
urllib_parse.quote(container['name'])
|
|
||||||
):
|
|
||||||
obj['container_name'] = container['name']
|
obj['container_name'] = container['name']
|
||||||
yield obj
|
yield obj
|
||||||
|
|
||||||
|
@ -39,10 +34,7 @@ class Objects(base.ServiceResource, glance.ListImagesMixin, ListObjectsMixin):
|
||||||
yield item
|
yield item
|
||||||
|
|
||||||
def delete(self, resource):
|
def delete(self, resource):
|
||||||
self.cloud.delete_object(
|
self.cloud.delete_object(resource['container_name'], resource['name'])
|
||||||
urllib_parse.quote(resource['container_name']),
|
|
||||||
urllib_parse.quote(resource['name'])
|
|
||||||
)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def to_str(resource):
|
def to_str(resource):
|
||||||
|
@ -60,14 +52,13 @@ class Containers(base.ServiceResource, ListObjectsMixin):
|
||||||
return self.cloud.list_containers()
|
return self.cloud.list_containers()
|
||||||
|
|
||||||
def delete(self, resource):
|
def delete(self, resource):
|
||||||
self.cloud.delete_container(urllib_parse.quote(resource['name']))
|
self.cloud.delete_container(resource['name'])
|
||||||
|
|
||||||
def disable(self, resource):
|
def disable(self, resource):
|
||||||
# There is no disable for the swift container just removing the
|
# There is no disable for the swift container just removing the
|
||||||
# write/read access to the conatianer, so only admin can access
|
# write/read access to the container, so only admin can access
|
||||||
self.cloud.object_store.set_container_metadata(
|
self.cloud.object_store.set_container_metadata(
|
||||||
urllib_parse.quote(resource['name']),
|
resource['name'], write_acl=None, read_acl=None
|
||||||
write_acl=None, read_acl=None
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import openstack.connection
|
import openstack.connection
|
||||||
from six.moves import urllib_parse
|
|
||||||
|
|
||||||
from ospurge.resources import swift
|
from ospurge.resources import swift
|
||||||
from ospurge.tests import mock
|
from ospurge.tests import mock
|
||||||
|
@ -79,14 +78,15 @@ class TestObjects(unittest.TestCase):
|
||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
objects = [
|
objects = [
|
||||||
{'name': 'toto', 'container_name': 'foo'},
|
{'name': 'toto', 'container_name': 'foo'},
|
||||||
{'name': 'tata%20foo', 'container_name': 'baz%20bar'},
|
{'name': 'tata foo', 'container_name': 'baz bar'},
|
||||||
{'name': 'titi#1', 'container_name': 'bar#2'},
|
{'name': 'titi#1', 'container_name': 'bar#2'},
|
||||||
|
{'name': 'hihi♫', 'container_name': 'bar♫'},
|
||||||
]
|
]
|
||||||
for obj in objects:
|
for obj in objects:
|
||||||
self.assertIsNone(swift.Objects(self.creds_manager).delete(obj))
|
self.assertIsNone(swift.Objects(self.creds_manager).delete(obj))
|
||||||
self.cloud.delete_object.assert_called_with(
|
self.cloud.delete_object.assert_called_with(
|
||||||
urllib_parse.quote(obj['container_name']),
|
obj['container_name'],
|
||||||
urllib_parse.quote(obj['name'])
|
obj['name']
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_disable(self):
|
def test_disable(self):
|
||||||
|
@ -130,7 +130,7 @@ class TestContainers(unittest.TestCase):
|
||||||
'name': 'Pouet éêù #'}
|
'name': 'Pouet éêù #'}
|
||||||
self.assertIsNone(swift.Containers(self.creds_manager).delete(cont))
|
self.assertIsNone(swift.Containers(self.creds_manager).delete(cont))
|
||||||
self.cloud.delete_container.assert_called_once_with(
|
self.cloud.delete_container.assert_called_once_with(
|
||||||
urllib_parse.quote(cont['name'])
|
cont['name']
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_disable(self):
|
def test_disable(self):
|
||||||
|
@ -140,7 +140,7 @@ class TestContainers(unittest.TestCase):
|
||||||
'name': 'Pouet éêù #'}
|
'name': 'Pouet éêù #'}
|
||||||
self.assertIsNone(swift.Containers(self.creds_manager).disable(cont))
|
self.assertIsNone(swift.Containers(self.creds_manager).disable(cont))
|
||||||
self.cloud.object_store.set_container_metadata.assert_called_once_with(
|
self.cloud.object_store.set_container_metadata.assert_called_once_with(
|
||||||
urllib_parse.quote(cont['name']),
|
cont['name'],
|
||||||
read_acl=None, write_acl=None
|
read_acl=None, write_acl=None
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue