Merge "Ensure python3-hvac is installed for charms with encypt option"

This commit is contained in:
Zuul 2020-02-20 12:13:07 +00:00 committed by Gerrit Code Review
commit 76855185be
2 changed files with 14 additions and 2 deletions

View File

@ -37,7 +37,19 @@ class VaultKVContext(context.OSContextGenerator):
) )
def __call__(self): 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 = {} ctxt = {}
# NOTE(hopem): see https://bugs.launchpad.net/charm-helpers/+bug/1849323 # NOTE(hopem): see https://bugs.launchpad.net/charm-helpers/+bug/1849323
db = unitdata.kv() db = unitdata.kv()

View File

@ -259,7 +259,7 @@ def config_changed():
def install_vaultlocker(): def install_vaultlocker():
"""Determine whether vaultlocker is required and install""" """Determine whether vaultlocker is required and install"""
if config('encrypt'): if config('encrypt'):
pkgs = ['vaultlocker', 'python-hvac'] pkgs = ['vaultlocker']
installed = len(filter_installed_packages(pkgs)) == 0 installed = len(filter_installed_packages(pkgs)) == 0
if not installed: if not installed:
apt_install(pkgs, fatal=True) apt_install(pkgs, fatal=True)