From 15bb068a69d98ad5e018cf95c8d2cd783c647da9 Mon Sep 17 00:00:00 2001 From: Chris <christoph.pastl@fro.at> Date: Tue, 19 Sep 2023 18:53:55 +0200 Subject: [PATCH] fix: config naming and nesting --- config/sample.engine.docker.yaml | 5 ++--- config/sample.engine.yaml | 9 ++++----- src/aura_engine/base/config.py | 3 ++- src/aura_engine/core/channels.py | 2 +- src/aura_engine/core/client.py | 2 +- src/aura_engine/engine.py | 7 +++---- src/aura_engine/plugins/monitor.py | 13 +++++++------ src/aura_engine/scheduling/scheduler.py | 6 +++--- 8 files changed, 23 insertions(+), 24 deletions(-) diff --git a/config/sample.engine.docker.yaml b/config/sample.engine.docker.yaml index 036d9427..33392359 100644 --- a/config/sample.engine.docker.yaml +++ b/config/sample.engine.docker.yaml @@ -9,9 +9,8 @@ general: cache_dir: /tmp # Details for the Station Fallback - fallback: - show_name: ${AURA_ENGINE_FALLBACK_SHOW_NAME} - show_id: ${AURA_ENGINE_FALLBACK_SHOW_ID} + fallback_show_name: ${AURA_ENGINE_FALLBACK_SHOW_NAME} + fallback_show_id: ${AURA_ENGINE_FALLBACK_SHOW_ID} log: # Directory where the log file resides diff --git a/config/sample.engine.yaml b/config/sample.engine.yaml index 24639558..8fcb2c34 100644 --- a/config/sample.engine.yaml +++ b/config/sample.engine.yaml @@ -9,9 +9,8 @@ general: cache_dir: ./.cache # Details for the Station Fallback - fallback: - show_name: Random Music - show_id: -1 + fallback_show_name: Random Music + fallback_show_id: -1 log: # Directory where the log file resides @@ -87,10 +86,10 @@ api: scheduler: # Database settings: Use 'postgresql', 'sqlite' or 'mysql'. In case of SQLite the "db_name" is the name of the file. db: - type: sqlite + type: postgresql name: aura_engine user: aura_engine - pwd: ---SECRET--PASSWORD--- + pwd: "1234" host: localhost charset: utf8 diff --git a/src/aura_engine/base/config.py b/src/aura_engine/base/config.py index a575d855..e9ee8081 100644 --- a/src/aura_engine/base/config.py +++ b/src/aura_engine/base/config.py @@ -35,7 +35,8 @@ template = { "general": { "socket_dir": str, "cache_dir": str, - "fallback": {"show_name": str, "show_id": int}, + "fallback_show_name": str, + "fallback_show_id": int, }, "log": { "directory": str, diff --git a/src/aura_engine/core/channels.py b/src/aura_engine/core/channels.py index e18bc36e..8f7a70f0 100644 --- a/src/aura_engine/core/channels.py +++ b/src/aura_engine/core/channels.py @@ -148,7 +148,7 @@ class GenericChannel: mixer (Mixer): The mixer instance """ - self.config = AuraConfig.config().config + self.config = AuraConfig.instance.config self.logger = logging.getLogger("engine") self.mixer = mixer self.name = channel_name diff --git a/src/aura_engine/core/client.py b/src/aura_engine/core/client.py index 39eac6fe..927b14c4 100644 --- a/src/aura_engine/core/client.py +++ b/src/aura_engine/core/client.py @@ -236,7 +236,7 @@ class CoreConnection: Initialize the connection. """ self.logger = logging.getLogger("engine") - config = AuraConfig.config().config + config = AuraConfig.instance socket_path = config.config.general.socket_dir + "/engine.sock" self.socket_path = config.to_abs_path(socket_path) self.logger.debug(f"Using socket at '{self.socket_path}'") diff --git a/src/aura_engine/engine.py b/src/aura_engine/engine.py index 8cd0273c..01dfca24 100644 --- a/src/aura_engine/engine.py +++ b/src/aura_engine/engine.py @@ -179,9 +179,8 @@ class Engine: ctrl_version = toml_file["tool"]["poetry"]["version"] versions = self.playout.get_version() versions = DotDict(json.loads(versions)) - self.config.set("version_control", ctrl_version) - self.config.set("version_core", versions.core) - self.config.set("version_liquidsoap", versions.liquidsoap) + versions.control = ctrl_version + AuraConfig.instance.init_version(versions) @staticmethod def engine_time(): @@ -261,7 +260,7 @@ class Player: event_dispatcher (EventDispather): Dispatcher for issuing events """ - self.config = AuraConfig.config().config + self.config = AuraConfig.instance.config self.logger = logging.getLogger("engine") self.event_dispatcher = event_dispatcher self.resource_map = ResourceMapping() diff --git a/src/aura_engine/plugins/monitor.py b/src/aura_engine/plugins/monitor.py index 190cd244..84b1ef30 100644 --- a/src/aura_engine/plugins/monitor.py +++ b/src/aura_engine/plugins/monitor.py @@ -230,10 +230,9 @@ class AuraMonitor: Request the current status of all components. """ self.engine.init_version() - ctrl_version = self.config.version.control - core_version = self.config.version.core - liq_version = self.config.version.liquidsoap - + ctrl_version = AuraConfig.instance.confuse_config["version_control"].get() + core_version = AuraConfig.instance.confuse_config["version_core"].get() + liq_version = AuraConfig.instance.confuse_config["version_liquidsoap"].get() self.status["engine"]["version"] = ctrl_version self.status["lqs"]["version"] = {"core": core_version, "liquidsoap": liq_version} self.status["lqs"]["outputs"] = self.engine.player.mixer.get_outputs() @@ -260,7 +259,9 @@ class AuraMonitor: """ self.status["lqs"]["status"] = self.engine.update_playout_state() self.status["lqs"]["available"] = self.status["lqs"]["status"] is not None - self.status["audio_source"] = self.validate_directory(self.config.abs_audio_store_path()) + self.status["audio_source"] = self.validate_directory( + AuraConfig.instance.abs_audio_store_path() + ) # After first update start the Heartbeat Monitor if not self.heartbeat_running: @@ -276,7 +277,7 @@ class AuraMonitor: """ if self.has_valid_status(True): # Always check status, but only send heartbeat if wanted so - if self.config.monitoring.heartbeat.server != "": + if self.config.monitoring.heartbeat.host != "": self.heartbeat_socket.sendto( str.encode("OK"), (self.heartbeat_server, self.heartbeat_port) ) diff --git a/src/aura_engine/scheduling/scheduler.py b/src/aura_engine/scheduling/scheduler.py index 91131e71..04c49f3d 100644 --- a/src/aura_engine/scheduling/scheduler.py +++ b/src/aura_engine/scheduling/scheduler.py @@ -54,7 +54,7 @@ class AuraScheduler(threading.Thread): """ - config: AuraConfig = None + config = None logger = None engine: Engine = None exit_event: threading.Event = None @@ -100,7 +100,7 @@ class AuraScheduler(threading.Thread): """ while not self.exit_event.is_set(): try: - self.config.load_config() + AuraConfig.instance.load_config() seconds_to_wait = self.config.scheduler.fetching_frequency msg = f"== start fetching new timeslots (every {seconds_to_wait} seconds) ==" self.logger.info(SU.cyan(msg)) @@ -441,7 +441,7 @@ class TimeslotCommand(EngineExecutor): engine (Engine): The engine timeslot (Timeslot): The timeslot which is starting at this time """ - self.config = AuraConfig.instance + self.config = AuraConfig.instance.config self.engine = engine now_unix = SU.timestamp() -- GitLab