From 1327602ec3cfe452c4dc621c6a347cdacb8c2433 Mon Sep 17 00:00:00 2001 From: Eric Callahan Date: Sun, 7 Aug 2022 07:38:50 -0400 Subject: [PATCH] secrets: add support for the data folder The secrets module will now look for "moonraker.secrets" in the data folder. If the file does not exist the deprecated "secrets_path" option will be used as a fallback. Signed-off-by: Eric Callahan --- moonraker/components/secrets.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/moonraker/components/secrets.py b/moonraker/components/secrets.py index 578f2e1..f06afdc 100644 --- a/moonraker/components/secrets.py +++ b/moonraker/components/secrets.py @@ -21,16 +21,17 @@ class Secrets: def __init__(self, config: ConfigHelper) -> None: server = config.get_server() self.secrets_file: Optional[pathlib.Path] = None - path: Optional[str] = config.get('secrets_path', None) + path: Optional[str] = config.get("secrets_path", None, deprecate=True) + app_args = server.get_app_args() + alias = app_args["alias"] + data_path = app_args["data_path"] + fpath = pathlib.Path(data_path).joinpath(f"{alias}.secrets") + if not fpath.is_file() and path is not None: + fpath = pathlib.Path(path).expanduser().resolve() self.type = "invalid" self.values: Dict[str, Any] = {} - if path is not None: - self.secrets_file = pathlib.Path(path).expanduser().resolve() - if not self.secrets_file.is_file(): - server.add_warning( - "[secrets]: option 'secrets_path', file does not exist: " - f"'{self.secrets_file}'") - return + if fpath.is_file(): + self.secrets_file = fpath data = self.secrets_file.read_text() vals = self._parse_json(data) if vals is not None: @@ -52,6 +53,10 @@ class Secrets: self.type = "ini" logging.debug(f"[secrets]: Loaded {self.type} file: " f"{self.secrets_file}") + elif path is not None: + server.add_warning( + "[secrets]: option 'secrets_path', file does not exist: " + f"'{self.secrets_file}'") else: logging.debug( "[secrets]: Option `secrets_path` not supplied")