mirror of
https://github.com/BOSWatch/BW3-Core.git
synced 2025-12-06 07:12:04 +01:00
add resource and name to route point
This commit is contained in:
parent
39aeb6c93a
commit
5dcd71eb8d
|
|
@ -28,7 +28,7 @@ class Router:
|
||||||
@param name: name of the router"""
|
@param name: name of the router"""
|
||||||
self._name = name
|
self._name = name
|
||||||
self._routeList = []
|
self._routeList = []
|
||||||
logging.debug("[%s] new router", self._name)
|
logging.debug("[%s] add new router", self._name)
|
||||||
|
|
||||||
def addRoute(self, route):
|
def addRoute(self, route):
|
||||||
"""!Adds a route point to the router
|
"""!Adds a route point to the router
|
||||||
|
|
@ -46,8 +46,8 @@ class Router:
|
||||||
"""
|
"""
|
||||||
logging.debug("[%s] started", self._name)
|
logging.debug("[%s] started", self._name)
|
||||||
for routeObject in self._routeList:
|
for routeObject in self._routeList:
|
||||||
logging.debug("[%s] -> run route: %s", self._name, routeObject)
|
logging.debug("[%s] -> run route: %s", self._name, routeObject.name)
|
||||||
bwPacket_tmp = routeObject.callback(copy.deepcopy(bwPacket)) # copy bwPacket to prevent edit the original
|
bwPacket_tmp = routeObject.callback._run(copy.deepcopy(bwPacket)) # copy bwPacket to prevent edit the original
|
||||||
|
|
||||||
if bwPacket_tmp is None: # returning None doesnt change the bwPacket
|
if bwPacket_tmp is None: # returning None doesnt change the bwPacket
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
|
|
@ -64,23 +64,25 @@ class RouterManager:
|
||||||
|
|
||||||
for route in router.get("route"):
|
for route in router.get("route"):
|
||||||
routeType = route.get("type")
|
routeType = route.get("type")
|
||||||
routeName = route.get("name")
|
routeRes = route.get("res")
|
||||||
|
routeName = route.get("name", default=routeRes)
|
||||||
|
|
||||||
routeConfig = route.get("config", default=ConfigYAML()) # if no config - build a empty
|
routeConfig = route.get("config", default=ConfigYAML()) # if no config - build a empty
|
||||||
|
|
||||||
if routeType is None or routeName is None:
|
if routeType is None or routeRes is None:
|
||||||
logging.error("type or name not found in route: %s", route)
|
logging.error("type or name not found in route: %s", route)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if routeType == "plugin":
|
if routeType == "plugin":
|
||||||
importedFile = importlib.import_module(routeType + "." + routeName)
|
importedFile = importlib.import_module(routeType + "." + routeRes)
|
||||||
loadedClass = importedFile.BoswatchPlugin(routeConfig)
|
loadedClass = importedFile.BoswatchPlugin(routeConfig)
|
||||||
routerDict_tmp[routerName].addRoute(Route(routeName, loadedClass._run))
|
routerDict_tmp[routerName].addRoute(Route(routeName, loadedClass))
|
||||||
|
|
||||||
elif routeType == "module":
|
elif routeType == "module":
|
||||||
importedFile = importlib.import_module(routeType + "." + routeName)
|
importedFile = importlib.import_module(routeType + "." + routeRes)
|
||||||
loadedClass = importedFile.BoswatchModule(routeConfig)
|
loadedClass = importedFile.BoswatchModule(routeConfig)
|
||||||
routerDict_tmp[routerName].addRoute(Route(routeName, loadedClass._run))
|
routerDict_tmp[routerName].addRoute(Route(routeName, loadedClass))
|
||||||
|
|
||||||
elif routeType == "router":
|
elif routeType == "router":
|
||||||
routerDict_tmp[routerName].addRoute(Route(routeName, routerDict_tmp[routeName].runRouter))
|
routerDict_tmp[routerName].addRoute(Route(routeName, routerDict_tmp[routeName].runRouter))
|
||||||
|
|
@ -91,7 +93,7 @@ class RouterManager:
|
||||||
|
|
||||||
# except ModuleNotFoundError: # only since Py3.6
|
# except ModuleNotFoundError: # only since Py3.6
|
||||||
except ImportError:
|
except ImportError:
|
||||||
logging.error("%s not found: %s", route.get("type"), route.get("name"))
|
logging.error("%s not found: %s", route.get("type"), route.get("res"))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
logging.debug("finished building routers")
|
logging.debug("finished building routers")
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@ router:
|
||||||
- name: Router 1
|
- name: Router 1
|
||||||
route:
|
route:
|
||||||
- type: module
|
- type: module
|
||||||
name: filter.modeFilter
|
res: filter.modeFilter
|
||||||
|
name: Filter Fms/Zvei
|
||||||
config:
|
config:
|
||||||
allowed:
|
allowed:
|
||||||
- fms
|
- fms
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,8 @@ Jeder Router kann eine beliebige Anzahl einzelner Routenpunkte enthalten. Diese
|
||||||
|Feld|Beschreibung|Default|
|
|Feld|Beschreibung|Default|
|
||||||
|----|------------|-------|
|
|----|------------|-------|
|
||||||
|type|Art des Routenpunktes (module, plugin, router)||
|
|type|Art des Routenpunktes (module, plugin, router)||
|
||||||
|name|Zu ladende Resource (Siehe entsprechende Kapitel)||
|
|res|Zu ladende Resource (Siehe entsprechende Kapitel)||
|
||||||
|
|name|Optionaler Name des Routenpunktes|gleich wie Resource|
|
||||||
|config|Konfigurationseinstellungen des Routenpunktes (Siehe entsprechende Kapitel)||
|
|config|Konfigurationseinstellungen des Routenpunktes (Siehe entsprechende Kapitel)||
|
||||||
|
|
||||||
**Beispiel:**
|
**Beispiel:**
|
||||||
|
|
@ -119,7 +120,8 @@ router:
|
||||||
- name: Router 1
|
- name: Router 1
|
||||||
route:
|
route:
|
||||||
- type: module
|
- type: module
|
||||||
name: filter.modeFilter
|
res: filter.modeFilter
|
||||||
|
name: Filter Fms/Zvei
|
||||||
config:
|
config:
|
||||||
allowed:
|
allowed:
|
||||||
- fms
|
- fms
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ Mit diesem Modul ist es Möglich, die Pakete auf bestimmte Modes (FMS, POCSAG, Z
|
||||||
**Beispiel:**
|
**Beispiel:**
|
||||||
```yaml
|
```yaml
|
||||||
- type: module
|
- type: module
|
||||||
name: filter.modeFilter
|
res: filter.modeFilter
|
||||||
config:
|
config:
|
||||||
allowed:
|
allowed:
|
||||||
- fms
|
- fms
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue