Remove dependency on dns-manager and use dnspython directly instead
This commit is contained in:
@@ -145,11 +145,32 @@ def load_config(config_path):
|
||||
cfg["database"].setdefault("backend", "sqlite")
|
||||
|
||||
cfg.setdefault("dns_service", {})
|
||||
cfg["dns_service"].setdefault("manager_config_file", "/etc/dns-manager/config.yml")
|
||||
cfg["dns_service"].setdefault("dns_server", "localhost")
|
||||
cfg["dns_service"].setdefault("dns_port", 53)
|
||||
cfg["dns_service"].setdefault("dns_timeout", 5)
|
||||
cfg["dns_service"].setdefault("cleanup_interval", 60)
|
||||
if cfg["dns_service"]["cleanup_interval"] < 1:
|
||||
cfg["dns_service"]["cleanup_interval"] = 1
|
||||
|
||||
# Validate dns_server
|
||||
if not cfg["dns_service"]["dns_server"]:
|
||||
raise ConfigError("dns_service.dns_server cannot be empty")
|
||||
|
||||
# Validate ddns_default_key_file if provided
|
||||
default_key = cfg["dns_service"].get("ddns_default_key_file")
|
||||
if default_key and not os.path.isfile(default_key):
|
||||
raise ConfigError(f"ddns_default_key_file not found: {default_key}")
|
||||
|
||||
# Validate zone_keys if provided
|
||||
zone_keys = cfg["dns_service"].get("zone_keys", {})
|
||||
if not isinstance(zone_keys, dict):
|
||||
raise ConfigError("dns_service.zone_keys must be a table")
|
||||
for zone, key_path in zone_keys.items():
|
||||
if not isinstance(key_path, str):
|
||||
raise ConfigError(f"dns_service.zone_keys.{zone} must be a string path")
|
||||
if not os.path.isfile(key_path):
|
||||
raise ConfigError(f"Zone key file not found for {zone}: {key_path}")
|
||||
|
||||
cfg.setdefault("defaults", {})
|
||||
cfg["defaults"].setdefault("dns_ttl", 60)
|
||||
cfg["defaults"].setdefault("expiry_ttl", 3600)
|
||||
|
||||
Reference in New Issue
Block a user