From 0729913a806fde5d9d159b49b7ff77c040ff4e5d Mon Sep 17 00:00:00 2001 From: Massimiliano Adamo <maxadamo@gmail.com> Date: Mon, 17 Feb 2025 16:35:36 +0100 Subject: [PATCH] refactor: update keys function to use configparser for CA file retrieval --- wile_coyote/bin/anvil | 7 ++++--- wile_coyote/common/combine.py | 11 +++++------ wile_coyote/tools/__init__.py | 3 ++- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/wile_coyote/bin/anvil b/wile_coyote/bin/anvil index f8990c8..8d90a49 100755 --- a/wile_coyote/bin/anvil +++ b/wile_coyote/bin/anvil @@ -145,7 +145,6 @@ if __name__ == "__main__": log.handler(constants.GIVEUP, LOGFILE, True) sys_kit.coyote_exit(LOGFILE, START_TIMEDATE, 1) - ACME_PROVIDERS = wile_coyote.tools.ACME_PROVIDERS REDIS_HOST = wile_coyote.tools.REDIS_HOST REDIS_TOKEN = wile_coyote.tools.REDIS_TOKEN VAULT_HOST = wile_coyote.tools.VAULT_HOST @@ -154,6 +153,8 @@ if __name__ == "__main__": CONSUL_LEADER, _, __ = wile_coyote.tools.consul_kit.get_leader(LOGFILE) MOUNT_POINTS_V1 = wile_coyote.tools.MOUNT_POINTS_V1 MOUNT_POINTS_V2 = wile_coyote.tools.MOUNT_POINTS_V2 + ACME_PROVIDERS = wile_coyote.tools.ACME_PROVIDERS + acme_providers_list = ACME_PROVIDERS.replace(' ', '').split(',') # keys define in .acme.ini REDIS_KEYS = wile_coyote.tools.REDIS_KEYS @@ -163,11 +164,11 @@ if __name__ == "__main__": # prune certificates locally if PRUNE: if "all" in PRUNE: - prune = ACME_PROVIDERS + prune = acme_providers_list else: prune = PRUNE for prov in prune: - if prov not in ACME_PROVIDERS: + if prov not in acme_providers_list: log.handler(f"{prov} is not a valid provider", LOGFILE, True) log.handler(constants.GIVEUP, LOGFILE, True) sys_kit.coyote_exit(LOGFILE, START_TIMEDATE, 1) diff --git a/wile_coyote/common/combine.py b/wile_coyote/common/combine.py index 7c27452..f570e5c 100644 --- a/wile_coyote/common/combine.py +++ b/wile_coyote/common/combine.py @@ -4,7 +4,7 @@ import os import wile_coyote.tools -def keys(certpath, provider, keypath, outpath): +def keys(cert_path, provider, key_path, outpath): """combine certificate, CA and private key""" if os.path.isdir("/etc/ssl/certs"): ssl_dir = "/etc/ssl/certs" @@ -13,13 +13,12 @@ def keys(certpath, provider, keypath, outpath): else: raise NotImplementedError("OS not supported") - # providers and CAs are mapped in acme.ini - acme_providers = wile_coyote.tools.ACME_PROVIDERS - capath = os.path.join(ssl_dir, acme_providers[provider]) - filenames = [certpath, capath, keypath] + ca_file = wile_coyote.tools.PROVIDERS_CA[provider] + ca_path = os.path.join(ssl_dir, ca_file) + file_names = [cert_path, ca_path, key_path] with open(outpath, "w", encoding="utf-8") as outfile: - for fname in filenames: + for fname in file_names: with open(fname, "r", encoding="utf-8") as infile: outfile.write(infile.read()) outfile.close() diff --git a/wile_coyote/tools/__init__.py b/wile_coyote/tools/__init__.py index 56dfb2b..644327a 100644 --- a/wile_coyote/tools/__init__.py +++ b/wile_coyote/tools/__init__.py @@ -21,7 +21,8 @@ for loader, module_name, is_pkg in pkgutil.walk_packages(__path__): CONSUL_SERVERS = config.get('acme', 'consul_servers') CONSUL_TOKEN = config.get('acme', 'consul_token') WEB_BASE = config.get('acme', 'web_base') - ACME_PROVIDERS = l_eval(config.get('acme', 'acme_providers')) + ACME_PROVIDERS = config.get('acme', 'acme_providers') + PROVIDERS_CA = l_eval(config.get('acme', 'providers_ca')) # these parameters only work in test if 'unit-test' not in config.sections(): -- GitLab