summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorramishra <ramishra@redhat.com>2021-03-16 12:19:26 +0530
committerTakashi Kajinami <tkajinam@redhat.com>2023-01-19 14:26:01 +0000
commit23a6768ab11ec04e698b4e0cc7ab8c094f4616e8 (patch)
treedbc3fa978e3b760c6bed97cb20f003fbcda92473
parent8d609ba98c9365fb089d5a98e3980ad9f5214946 (diff)
downloadheat-23a6768ab11ec04e698b4e0cc7ab8c094f4616e8.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)
-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 b79d2e30d..174bf9293 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