Skip to content

Commit 2da916a

Browse files
authored
Check for unsupported config options (bakwc#24)
1 parent 15f57ce commit 2da916a

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

mysql_ch_replicator/config.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,16 +99,18 @@ def load(self, settings_file):
9999
data = yaml.safe_load(data)
100100

101101
self.settings_file = settings_file
102-
self.mysql = MysqlSettings(**data['mysql'])
103-
self.clickhouse = ClickhouseSettings(**data['clickhouse'])
104-
self.databases = data['databases']
105-
self.tables = data.get('tables', '*')
106-
self.exclude_databases = data.get('exclude_databases', '')
107-
self.exclude_tables = data.get('exclude_tables', '')
108-
self.log_level = data.get('log_level', 'info')
102+
self.mysql = MysqlSettings(**data.pop('mysql'))
103+
self.clickhouse = ClickhouseSettings(**data.pop('clickhouse'))
104+
self.databases = data.pop('databases')
105+
self.tables = data.pop('tables', '*')
106+
self.exclude_databases = data.pop('exclude_databases', '')
107+
self.exclude_tables = data.pop('exclude_tables', '')
108+
self.log_level = data.pop('log_level', 'info')
109109
assert isinstance(self.databases, str) or isinstance(self.databases, list)
110110
assert isinstance(self.tables, str) or isinstance(self.tables, list)
111-
self.binlog_replicator = BinlogReplicatorSettings(**data['binlog_replicator'])
111+
self.binlog_replicator = BinlogReplicatorSettings(**data.pop('binlog_replicator'))
112+
if data:
113+
raise Exception(f'Unsupported config options: {list(data.keys())}')
112114
self.validate()
113115

114116
@classmethod

0 commit comments

Comments
 (0)