summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorramishra <ramishra@redhat.com>2021-03-16 12:19:26 +0530
committerRabi Mishra <ramishra@redhat.com>2023-01-19 04:26:28 +0000
commit83a983678cdfde938e42db15c17fbc775cb88cac (patch)
tree1ef3670f1580f207965562d8176b2bcc105c3761
parentc3a8e3d64ebb37ab83b3cebb868cd68d4135f59d (diff)
downloadheat-83a983678cdfde938e42db15c17fbc775cb88cac.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 (cherry picked from commit 9407b4897e77db24bf1948153afbb1479d5dad42) (cherry picked from commit af617facc5d6a63f416c1a047c91a66008ee4364)
-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 619ca7cc2..185ce8300 100644
--- a/heat/db/sqlalchemy/api.py
+++ b/heat/db/sqlalchemy/api.py
@@ -385,9 +385,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