diff --git a/config/sample.engine.docker.yaml b/config/sample.engine.docker.yaml index 036d9427352e7b6aab3eed498f408978a7d6752b..333923591f32958148fe55934be8f1a4eb86cc6a 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 24639558d6e970fac8aec95f634f7a6a285c0bcb..8fcb2c34b290ddeac40e0da3e76979788e1ab202 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 a575d8555f93ce17d57d9e750d9c6f5fc5e1cb57..e9ee8081d3be1432e04c6b7a4b2ade604a3eff44 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 e18bc36e887d2a469b36a5394321b6ed20eeddbf..8f7a70f079f9c59b67e28157ed95664332aa6e00 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 39eac6fedfebfba76cf521c3cb12dbe47acd4aee..927b14c4c755bfeb60b9f1dac8cbafa41e2ab3b7 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 8cd0273c2a2a8d8fc5294882ae07c9c29721d9af..01dfca2476efc209b28145161a1fdfaf40b9f87b 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 190cd244cab52ea9559dba75b2924a03163f4dea..84b1ef30ab21af36d5784d19e65b9a03c68e0c7e 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 91131e71cba074438c7c3c55e800762ef97de52f..04c49f3dcc3695c2e1f79c01680c508c914bd6ef 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()