Allow specific components to be enabled an disabled

This commit is contained in:
clerie 2023-12-23 22:13:27 +01:00
parent 9571f38965
commit 6d016d272f
3 changed files with 21 additions and 3 deletions

View File

@ -1,12 +1,18 @@
#!/usr/bin/env python3
class ConfigBase:
_DEFAULTS = {}
def __init__(self, c):
self._c = c
def __getattr__(self, name):
# check if key is in config
if name in self._c.keys():
return self._c.get(name)
# check if key is in default config
elif name in self._DEFAULTS.keys():
return self._DEFAULTS.get(name)
else:
raise AttributeError()
@ -20,6 +26,10 @@ class DatabaseConfig(ConfigBase):
class DectConfig(ConfigBase):
_DEFAULTS = {
"enabled": True,
}
def __init__(self, c):
self._c = c
@ -30,7 +40,9 @@ class ExtensionsConfig(ConfigBase):
pass
class YateConfig(ConfigBase):
pass
_DEFAULTS = {
"enabled": True,
}
class Config:

View File

@ -42,13 +42,15 @@ class FieldPOC:
logger.info("initialising threads")
self.threads = {
"controller": threading.Thread(target=self._controller.run),
"dect": threading.Thread(target=self._dect.run),
"dect": threading.Thread(target=self._dect.run) if self.config.dect.enabled == True else None,
"routing": threading.Thread(target=self._routing.run),
"ywsd": threading.Thread(target=self._ywsd.run, daemon=True),
"ywsd": threading.Thread(target=self._ywsd.run, daemon=True) if self.config.yate.enabled == True else None,
}
# Set thread names
for name, thread in self.threads.items():
if thread is None:
continue
thread.name = name
def queue_all(self, msg):
@ -79,6 +81,8 @@ class FieldPOC:
logger.info("starting threads")
for name, thread in self.threads.items():
if thread is None:
continue
thread.start()
logger.info("started threads")

View File

@ -7,12 +7,14 @@
"port": 9437
},
"dect": {
"enabled": false,
"host": "10.222.222.11",
"username": "omm",
"password": "xxx",
"sipsecret": "51df84aace052b0e75b8c1da5a6da9e2"
},
"yate": {
"enabled": false,
"host": "127.0.0.1",
"port": 5039
},