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

View File

@ -42,13 +42,15 @@ class FieldPOC:
logger.info("initialising threads") logger.info("initialising threads")
self.threads = { self.threads = {
"controller": threading.Thread(target=self._controller.run), "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), "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 # Set thread names
for name, thread in self.threads.items(): for name, thread in self.threads.items():
if thread is None:
continue
thread.name = name thread.name = name
def queue_all(self, msg): def queue_all(self, msg):
@ -79,6 +81,8 @@ class FieldPOC:
logger.info("starting threads") logger.info("starting threads")
for name, thread in self.threads.items(): for name, thread in self.threads.items():
if thread is None:
continue
thread.start() thread.start()
logger.info("started threads") logger.info("started threads")

View File

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