Circumvent utf-8 decode error by logging it

Change-Id: I39a880a777841e3687de926a5b0d45482c03dbee
Closes-Bug: #1467965
This commit is contained in:
Sirushti Murugesan 2015-07-02 08:55:24 +05:30
parent 08637b5e1c
commit 8fea9a6e65
1 changed files with 7 additions and 2 deletions

View File

@ -18,6 +18,7 @@ import sys
from oslo_config import cfg
from oslo_db.sqlalchemy import session as db_session
from oslo_db.sqlalchemy import utils
from oslo_log import log as logging
from oslo_utils import encodeutils
from oslo_utils import timeutils
import osprofiler.sqlalchemy
@ -30,6 +31,7 @@ from sqlalchemy.orm import session as orm_session
from heat.common import crypt
from heat.common import exception
from heat.common.i18n import _
from heat.common.i18n import _LW
from heat.db.sqlalchemy import filters as db_filters
from heat.db.sqlalchemy import migration
from heat.db.sqlalchemy import models
@ -40,6 +42,8 @@ CONF.import_opt('hidden_stack_tags', 'heat.common.config')
CONF.import_opt('max_events_per_stack', 'heat.common.config')
CONF.import_group('profiler', 'heat.common.config')
LOG = logging.getLogger(__name__)
_facade = None
@ -1186,10 +1190,11 @@ def db_decrypt_parameters_and_properties(ctxt, encryption_key):
try:
parameters[param_name] = encodeutils.safe_decode(
decrypted_val)
except UnicodeDecodeError:
except UnicodeDecodeError as ex:
# if the incorrect encryption_key was used then we can get
# total gibberish here and safe_decode() will freak out.
parameters[param_name] = decrypted_val
LOG.warn(_LW("Couldn't decrypt parameters %s"), ex)
parameters[param_name] = ""
environment = raw_template.environment.copy()
environment['encrypted_param_names'] = []
raw_template_update(ctxt, raw_template.id,