Coverage for savcfg / bootstrap.py: 100%
29 statements
« prev ^ index » next coverage.py v7.12.0, created at 2025-12-10 15:30 +0100
« prev ^ index » next coverage.py v7.12.0, created at 2025-12-10 15:30 +0100
1"""Config service cons"""
3from typing import Literal
4from azure.identity import DefaultAzureCredential
5from savcfg.keyvault import KeyVaultVars
6from .read import ConfigService
7from .edit import ConfigEditor
10def get_savia_config_service(
11 env: Literal["prod", "pre", "devel"], app_name: str
12) -> ConfigService:
13 """Construct the config service for"""
14 readers = []
15 credential = DefaultAzureCredential()
16 match env:
17 case "prod":
18 readers = [
19 KeyVaultVars("savia-production", credential),
20 KeyVaultVars("savia-common", credential),
21 ]
22 case "pre":
23 readers = [
24 KeyVaultVars("savia-preproduction", credential),
25 KeyVaultVars("savia-common", credential),
26 ]
27 case "devel":
28 readers = [KeyVaultVars("savia-development", credential)]
30 return ConfigService(app_name, *readers)
33def get_savia_config_editor(key: Literal["prod", "pre", "devel", "common"]):
34 var_editor = None
35 credential = DefaultAzureCredential()
36 match key:
37 case "prod":
38 var_editor = KeyVaultVars("savia-production", credential)
39 case "pre":
40 var_editor = KeyVaultVars("savia-preproduction", credential)
41 case "common":
42 var_editor = KeyVaultVars("savia-common", credential)
43 case "devel":
44 var_editor = KeyVaultVars("savia-development", credential)
46 return ConfigEditor(var_editor)