diff --git a/config/sample/sample-development.engine-api.ini b/config/sample/sample-development.engine-api.ini index 61f25461d2ee80389687f186501d12c4b46e34d9..eff6651cc6ad9309cb06d3bbcf7ecf35d84cd9c2 100644 --- a/config/sample/sample-development.engine-api.ini +++ b/config/sample/sample-development.engine-api.ini @@ -23,6 +23,8 @@ api_port=8008 [federation] +enable_federation="false" + # Defines the engine number id for identification of record sources. Default values are: # # 1 ... Engine 1 (main node) diff --git a/config/sample/sample-docker.engine-api.ini b/config/sample/sample-docker.engine-api.ini index e039e809b27afe5a13670add7dc4081f29b07aa3..28e2d221133ee83fa9730ac465012c2871c9501b 100644 --- a/config/sample/sample-docker.engine-api.ini +++ b/config/sample/sample-docker.engine-api.ini @@ -23,6 +23,8 @@ api_port=8008 [federation] +enable_federation="false" + # Defines the engine number id for identification of record sources. Default values are: # # 1 ... Engine 1 (main node) diff --git a/config/sample/sample-production.engine-api.ini b/config/sample/sample-production.engine-api.ini index e039e809b27afe5a13670add7dc4081f29b07aa3..28e2d221133ee83fa9730ac465012c2871c9501b 100644 --- a/config/sample/sample-production.engine-api.ini +++ b/config/sample/sample-production.engine-api.ini @@ -23,6 +23,8 @@ api_port=8008 [federation] +enable_federation="false" + # Defines the engine number id for identification of record sources. Default values are: # # 1 ... Engine 1 (main node) diff --git a/src/app.py b/src/app.py index c70122f162a4a3b5db77b6202b3da2bf7bdba7cd..29cecd1660ffc573ca9067f1e54c0150bab17c30 100644 --- a/src/app.py +++ b/src/app.py @@ -95,8 +95,11 @@ with app.app_context(): # Run sync job only in SYNC NODE mode if node_type == NodeType.SYNC: - sync_job = SyncJob(config, logger, app) - sync_job.start() + if config.get("enable_federation") == "false": + logger.info("Node synchronization disabled") + else: + sync_job = SyncJob(config, logger, app) + sync_job.start() atexit.register(shutdown) logger.info("Engine API server initialized.") diff --git a/src/service.py b/src/service.py index 3e1ea49489a1c23579901c6d4d93e4b53d856005..234809eb9758123a57ed32ed7dc7a08096dc8ccb 100644 --- a/src/service.py +++ b/src/service.py @@ -150,6 +150,9 @@ class ApiService(): if not data.log_source: data.log_source = self.config.get("host_id") + if self.config.get("enable_federation") == "false": + return + # Main Node: Alway log entry, independed of the source # Sync Node: Only log entry when it's coming from an active source if self.node_type == NodeType.MAIN or \ @@ -205,6 +208,9 @@ class ApiService(): clock_info = ClockInfo(body.engine_source, body.current_playlist, body.current_schedule, body.next_schedule) clock_info.merge() + if self.config.get("enable_federation") == "false": + return + # Main Node: Push to Sync Node, if enabled if self.node_type == NodeType.MAIN and self.sync_host and self.api_clockinfo: try: @@ -215,7 +221,7 @@ class ApiService(): else: self.logger.error("HTTP %s | Error while pushing clock info to sync-node: " % (r.status_code, str(r.json()))) except Exception as e: - self.logger.error("Error while putting clock info to sync-node API '%s'!\n%s" % (api_url, str(e))) + self.logger.error("Error while putting clock info to sync-node API '%s'!\n%s" % (api_url, str(e))) def set_default_source(self, source_number): @@ -287,6 +293,9 @@ class ApiService(): if not data.log_source: data.log_source = self.host_id + if self.config.get("enable_federation") == "false": + return + # Main Node: Alway log entry, independed of the source # Sync Node: Only log entry when it's coming from an active source if self.node_type == NodeType.MAIN or \ diff --git a/src/sync.py b/src/sync.py index e2c0cb15b6deab6c3eba4bcc73cda7dddf46455b..52b5224312ff806a6346c01a36825ec66d4e4dc7 100644 --- a/src/sync.py +++ b/src/sync.py @@ -73,7 +73,7 @@ class SyncJob(threading.Thread): def run(self): """ Starts the Job. - """ + """ self.synchronize() while not self.exit_event.wait(self.sync_interval): try: diff --git a/test/config/engine-0-api.ini b/test/config/engine-0-api.ini index 67018e4e0643d608208f9b397cf33cd32f3ddc06..00b71d0911bdb2ce74ab676f661cff1b6a4a9556 100644 --- a/test/config/engine-0-api.ini +++ b/test/config/engine-0-api.ini @@ -23,6 +23,8 @@ api_port=8010 [federation] +enable_federation="false" + # Defines the engine number id for identification of record sources. Default values are: # # 1 ... Engine 1 (main node) diff --git a/test/config/engine-1-api.ini b/test/config/engine-1-api.ini index a42c19809f897280a113b7c5629bead0a288a793..5b1f60f6f2e0f310de92f0d5ae590648cb9b7271 100644 --- a/test/config/engine-1-api.ini +++ b/test/config/engine-1-api.ini @@ -23,6 +23,8 @@ api_port=8008 [federation] +enable_federation="false" + # Defines the engine number id for identification of record sources. Default values are: # # 1 ... Engine 1 (main node) diff --git a/test/config/engine-2-api.ini b/test/config/engine-2-api.ini index 3feb1d089e957a8f88bbc58b175557f6792beaf6..30c3c08d3c506e114c95d5a500fcc8a32f08e841 100644 --- a/test/config/engine-2-api.ini +++ b/test/config/engine-2-api.ini @@ -23,6 +23,8 @@ api_port=8009 [federation] +enable_federation="false" + # Defines the engine number id for identification of record sources. Default values are: # # 1 ... Engine 1 (main node)