Ensure python3-hvac is installed for charms with encypt option

The referenced bug is essentially: make vault:secrets relation to vault
but keep the 'encrypt' option as False. In this case, the Context
handling code in charm-helpers is expecting python3-hvac to be
available, but it is only installed if the encrypt option is set to
True.  Hence the charm crashes.  This resolves that crash.

Note the related charm-helpers fix [1].

[1]: https://github.com/juju/charm-helpers/pull/431

Change-Id: Ic02d4d4d3c3b423fa28cd171b126ed4a444fc646
Closes-bug: #1862085
This commit is contained in:
Alex Kavanagh 2020-02-13 16:06:38 +00:00
parent 0120c59499
commit 65d162aff2
1 changed files with 13 additions and 1 deletions

View File

@ -37,7 +37,19 @@ class VaultKVContext(context.OSContextGenerator):
)
def __call__(self):
import hvac
try:
import hvac
except ImportError:
# BUG: #1862085 - if the relation is made to vault, but the
# 'encrypt' option is not made, then the charm errors with an
# import warning. This catches that, logs a warning, and returns
# with an empty context.
hookenv.log("VaultKVContext: trying to use hvac pythong module "
"but it's not available. Is secrets-stroage relation "
"made, but encrypt option not set?",
level=hookenv.WARNING)
# return an emptry context on hvac import error
return {}
ctxt = {}
# NOTE(hopem): see https://bugs.launchpad.net/charm-helpers/+bug/1849323
db = unitdata.kv()