mirror of
https://github.com/TheNetworkGuy/netbox-zabbix-sync.git
synced 2025-07-13 15:24:48 -06:00
Fixed bug in which custom config.py module was not accessed
This commit is contained in:
parent
940f2d6afb
commit
dec2cf6996
@ -3,7 +3,7 @@ Module for parsing configuration from the top level config.py file
|
|||||||
"""
|
"""
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from importlib import util
|
from importlib import util
|
||||||
from os import environ
|
from os import environ, path
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
logger = getLogger(__name__)
|
logger = getLogger(__name__)
|
||||||
@ -104,18 +104,25 @@ def load_env_variable(config_environvar):
|
|||||||
|
|
||||||
def load_config_file(config_default, config_file="config.py"):
|
def load_config_file(config_default, config_file="config.py"):
|
||||||
"""Returns config from config.py file"""
|
"""Returns config from config.py file"""
|
||||||
# Check if config.py exists and load it
|
# Find the script path and config file next to it.
|
||||||
# If it does not exist, return the default config
|
script_dir = path.dirname(path.dirname(path.abspath(__file__)))
|
||||||
config_path = Path(config_file)
|
config_path = Path(path.join(script_dir, config_file))
|
||||||
if config_path.exists():
|
|
||||||
dconf = config_default.copy()
|
# If the script directory is not found, try the current working directory
|
||||||
# Dynamically import the config module
|
if not config_path.exists():
|
||||||
spec = util.spec_from_file_location("config", config_path)
|
config_path = Path(config_file)
|
||||||
config_module = util.module_from_spec(spec)
|
|
||||||
spec.loader.exec_module(config_module)
|
# If both checks fail then fallback to the default config
|
||||||
# Update DEFAULT_CONFIG with variables from the config module
|
if not config_path.exists():
|
||||||
for key in dconf:
|
return config_default
|
||||||
if hasattr(config_module, key):
|
|
||||||
dconf[key] = getattr(config_module, key)
|
dconf = config_default.copy()
|
||||||
return dconf
|
# Dynamically import the config module
|
||||||
return config_default
|
spec = util.spec_from_file_location("config", config_path)
|
||||||
|
config_module = util.module_from_spec(spec)
|
||||||
|
spec.loader.exec_module(config_module)
|
||||||
|
# Update DEFAULT_CONFIG with variables from the config module
|
||||||
|
for key in dconf:
|
||||||
|
if hasattr(config_module, key):
|
||||||
|
dconf[key] = getattr(config_module, key)
|
||||||
|
return dconf
|
||||||
|
Loading…
Reference in New Issue
Block a user