From 57966828c6ed6549398859a992ac5ef51edb1cbc Mon Sep 17 00:00:00 2001 From: Filipp Ozinov Date: Sat, 16 Nov 2024 13:45:30 +0400 Subject: [PATCH] Check for unsupported config options --- mysql_ch_replicator/config.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mysql_ch_replicator/config.py b/mysql_ch_replicator/config.py index 0fc2d19..b9767bb 100644 --- a/mysql_ch_replicator/config.py +++ b/mysql_ch_replicator/config.py @@ -99,16 +99,18 @@ def load(self, settings_file): data = yaml.safe_load(data) self.settings_file = settings_file - self.mysql = MysqlSettings(**data['mysql']) - self.clickhouse = ClickhouseSettings(**data['clickhouse']) - self.databases = data['databases'] - self.tables = data.get('tables', '*') - self.exclude_databases = data.get('exclude_databases', '') - self.exclude_tables = data.get('exclude_tables', '') - self.log_level = data.get('log_level', 'info') + self.mysql = MysqlSettings(**data.pop('mysql')) + self.clickhouse = ClickhouseSettings(**data.pop('clickhouse')) + self.databases = data.pop('databases') + self.tables = data.pop('tables', '*') + self.exclude_databases = data.pop('exclude_databases', '') + self.exclude_tables = data.pop('exclude_tables', '') + self.log_level = data.pop('log_level', 'info') assert isinstance(self.databases, str) or isinstance(self.databases, list) assert isinstance(self.tables, str) or isinstance(self.tables, list) - self.binlog_replicator = BinlogReplicatorSettings(**data['binlog_replicator']) + self.binlog_replicator = BinlogReplicatorSettings(**data.pop('binlog_replicator')) + if data: + raise Exception(f'Unsupported config options: {list(data.keys())}') self.validate() @classmethod