summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorramishra <ramishra@redhat.com>2021-03-16 12:19:26 +0530
committerrabi <ramishra@redhat.com>2022-11-15 09:45:07 +0530
commit9407b4897e77db24bf1948153afbb1479d5dad42 (patch)
tree1d7d4fc7a10d21cbcb65d239f56028120d2006e6
parentceef7869e0aa122d2959f7a74f88dfba2c8f15df (diff)
downloadheat-9407b4897e77db24bf1948153afbb1479d5dad42.tar.gz
Ignore resource_data decryption errors
If the auth_encryption_key changes We can possibly ignore these errors when deleting stacks. Task: 42056 Change-Id: I326e415db194a5b9c67acd038d7d2d993293ecb3
-rw-r--r--heat/db/sqlalchemy/api.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py
index 31e6a5c78..7ca61a756 100644
--- a/heat/db/sqlalchemy/api.py
+++ b/heat/db/sqlalchemy/api.py
@@ -387,9 +387,14 @@ def resource_data_get_all(context, resource_id, data=None):
for res in data:
if res.redact:
- ret[res.key] = crypt.decrypt(res.decrypt_method, res.value)
- else:
- ret[res.key] = res.value
+ try:
+ ret[res.key] = crypt.decrypt(res.decrypt_method, res.value)
+ continue
+ except exception.InvalidEncryptionKey:
+ LOG.exception('Failed to decrypt resource data %(rkey)s '
+ 'for %(rid)s, ignoring.',
+ {'rkey': res.key, 'rid': resource_id})
+ ret[res.key] = res.value
return ret