If eyaml is not installed or misconfigured, we should output raw
encrypted data and throw a warn/error accordingly, instead of
bailing out completely.
Needed for Fuel deploys on PODs that do not use PDF encryption, e.g.
lf-pod2.
Change-Id: I2905df11a3cf2f2eb1ab9bfd8bd88619af2cab04
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
try:
DICT = yaml.safe_load(check_output(['eyaml', 'decrypt', '-f', ARGS.yaml]))
except CalledProcessError as ex:
- pass
-if not DICT:
- logging.warn('PDF decryption failed, fallback to using raw data.')
+ logging.error('eyaml decryption failed, keys might be missing')
+except OSError as ex:
+ logging.warn('eyaml not found, skipping decryption')
+try:
+ DICT
+except NameError as ex:
+ logging.warn('PDF decryption skipped, fallback to using raw data.')
with open(ARGS.yaml) as _:
DICT = yaml.safe_load(_)