summaryrefslogtreecommitdiff
path: root/glance_store/tests
diff options
context:
space:
mode:
authorErno Kuvaja <jokke@usr.fi>2021-07-09 14:08:59 +0100
committerErno Kuvaja <jokke@usr.fi>2021-08-16 12:20:08 +0100
commit6a241a20c9c17ede1985e5c1f4c63fcaf2a2dbc7 (patch)
tree6ced78e2b4c2e45239883ade4d1d11617c00a155 /glance_store/tests
parent04e5ead7c000211a4c10104ed2bb65c9df7681ae (diff)
downloadglance_store-6a241a20c9c17ede1985e5c1f4c63fcaf2a2dbc7.tar.gz
Raise correct exception from "Quota full"
Swift driver reraises the client exception causing glance-api to return 500. Lets raise g_s StoreFull correctly instead. Change-Id: I5be151afe242a75142e74d488c4787a35929e189 Closes-bug: #1926404
Diffstat (limited to 'glance_store/tests')
-rw-r--r--glance_store/tests/unit/test_swift_store.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/glance_store/tests/unit/test_swift_store.py b/glance_store/tests/unit/test_swift_store.py
index 809d50e..9018ccd 100644
--- a/glance_store/tests/unit/test_swift_store.py
+++ b/glance_store/tests/unit/test_swift_store.py
@@ -479,6 +479,33 @@ class SwiftTests(object):
expected_image_id, image_swift, expected_swift_size, HASH_ALGO)
self.assertEqual(expected_location, location)
+ def test_add_raises_storage_full(self):
+
+ conf = copy.deepcopy(SWIFT_CONF)
+ conf['default_swift_reference'] = 'store_2'
+ self.config(**conf)
+ moves.reload_module(swift)
+ self.mock_keystone_client()
+ self.store = Store(self.conf)
+ self.store.configure()
+
+ def fake_put_object_entity_too_large(*args, **kwargs):
+ msg = "Test Out of Quota"
+ raise swiftclient.ClientException(
+ msg, http_status=http_client.REQUEST_ENTITY_TOO_LARGE)
+
+ self.useFixture(fixtures.MockPatch(
+ 'swiftclient.client.put_object', fake_put_object_entity_too_large))
+
+ expected_swift_size = FIVE_KB
+ expected_swift_contents = b"*" * expected_swift_size
+ expected_image_id = str(uuid.uuid4())
+ image_swift = six.BytesIO(expected_swift_contents)
+
+ self.assertRaises(exceptions.StorageFull, self.store.add,
+ expected_image_id, image_swift,
+ expected_swift_size, HASH_ALGO)
+
@mock.patch('glance_store._drivers.swift.utils'
'.is_multiple_swift_store_accounts_enabled',
mock.Mock(return_value=False))