summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorramishra <ramishra@redhat.com>2021-03-16 12:19:26 +0530
committerTakashi Kajinami <tkajinam@redhat.com>2023-01-23 04:01:25 +0000
commit77830ba28a009b5db61518d7abdd54231acd421f (patch)
treee6038971775aa23c6c9b70332d6b2460625dda48
parent15667ccb3da902f1a653b14c81719446436214a6 (diff)
downloadheat-77830ba28a009b5db61518d7abdd54231acd421f.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) (cherry picked from commit 83a983678cdfde938e42db15c17fbc775cb88cac) (cherry picked from commit b135a99575ed42882d17b4bef2006a10cfe8afaa) (cherry picked from commit 23a6768ab11ec04e698b4e0cc7ab8c094f4616e8)
-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 6e434589c..85bb9f023 100644
--- a/heat/db/sqlalchemy/api.py
+++ b/heat/db/sqlalchemy/api.py
@@ -377,9 +377,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