diff --git a/.github/workflows/run_pytest.yml b/.github/workflows/run_pytest.yml index a047d48..8eac1d9 100644 --- a/.github/workflows/run_pytest.yml +++ b/.github/workflows/run_pytest.yml @@ -1,6 +1,8 @@ name: pytest -on: [push, pull_request] +on: + push: + pull_request: jobs: build: @@ -8,11 +10,11 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] runs-on: ${{matrix.os}} steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Set up Python ${{matrix.python-version}} at ${{matrix.os}} uses: actions/setup-python@v3 @@ -23,14 +25,14 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt - mkdir log/ + mkdir -p log/ - name: Test with pytest run: | pytest -c 'test/pytest.ini' - name: Save artifacts - uses: actions/upload-artifact@master + uses: actions/upload-artifact@v4 with: - name: test.log + name: test-${{ matrix.python-version }}.log path: log/test.log diff --git a/boswatch/router/routerManager.py b/boswatch/router/routerManager.py index 0f503d9..c78f112 100644 --- a/boswatch/router/routerManager.py +++ b/boswatch/router/routerManager.py @@ -30,7 +30,8 @@ class RouterManager: r"""!Class to manage all routers""" def __init__(self): - r"""!Create new router""" + """!Create new router""" + self.config = None self._routerDict = {} self._startTime = int(time.time()) @@ -40,6 +41,7 @@ class RouterManager: @param config: instance of ConfigYaml class @return True or False""" + self.config = config self._routerDict = {} # all routers and instances of modules/plugins would be destroyed routerDict_tmp = {} logging.debug("build routers") @@ -116,7 +118,8 @@ class RouterManager: else: logging.warning("unknown router: %s", routerName) - self._saveStats() # write stats to stats file + if self.config.get("server", "logging", default=False): + self._saveStats() # write stats to stats file def cleanup(self): r"""!Run cleanup routines for all loaded route points""" diff --git a/config/logger_client.ini b/config/logger_client.ini index fc97d55..bdaacbe 100644 --- a/config/logger_client.ini +++ b/config/logger_client.ini @@ -33,7 +33,7 @@ class=handlers.TimedRotatingFileHandler interval=midnight backupCount=7 formatter=complex -level=DEBUG +level=ERROR args=('log/client.log',) [handler_screen] diff --git a/config/logger_server.ini b/config/logger_server.ini index faf2f45..b0c591e 100644 --- a/config/logger_server.ini +++ b/config/logger_server.ini @@ -33,7 +33,7 @@ class=handlers.TimedRotatingFileHandler interval=midnight backupCount=7 formatter=complex -level=DEBUG +level=ERROR args=('log/server.log',) [handler_screen] diff --git a/config/server.yaml b/config/server.yaml index 03e260d..57c9f0b 100644 --- a/config/server.yaml +++ b/config/server.yaml @@ -11,6 +11,7 @@ server: port: 8080 name: BW3 Server # name of the BW3 Server instance useBroadcast: no # serve server ip on broadcast request + logging: False # enable log file alarmRouter: - Router 1 diff --git a/docu/docs/config.md b/docu/docs/config.md index 08a761f..5ab376f 100644 --- a/docu/docs/config.md +++ b/docu/docs/config.md @@ -157,15 +157,16 @@ decoder: ``` --- -## Server -Nachfolgend alle Paramater der Server Konfiguration +

Server

+Nachfolgend alle Parameter der Server Konfiguration ### `server:` |Feld|Beschreibung|Default| |----|------------|-------| -|port|Port auf dem der Server lauscht|8080 +|port|Port auf dem der Server lauscht| 8080 |name|Name zur Identifizierung der Server Instanz|| |useBroadcast|Verbindungsdaten per Broadcast Server bereitstellen|no| +|logging|Aktivieren / Deaktivieren des Schreibens von Statistik-Dateien|False| --- ### `alarmRouter:` @@ -215,3 +216,16 @@ router: ## Module/Plugins Die möglichen Einstellungen der einzelnen Module und Plugins sind im jeweiligen Kapitel aufgelistet. + +--- +## Logging + +Um den Datenträger, auf dem Boswatch läuft, zu schützen ist das Logging in +Dateien standartmäßig auf Fehlermeldungen begrenzt. +In den Dateien `logger_client.ini` bzw `logger_server.ini` kann dies +entsprechend im Bereich `handler_file` unter `level=` angepasst werden. + +Das Schreiben einer Statistik-Datei, welche die Durchläufe aller Module +und Plugins dokumentiert, kann in der Server-Konfiguration über den Parameter +`logging` aktiviert werden. +(siehe [Server-Konfiguration](#server-configuration)) diff --git a/docu/docs/modul/regex_filter.md b/docu/docs/modul/regex_filter.md index 9e69db2..6501428 100644 --- a/docu/docs/modul/regex_filter.md +++ b/docu/docs/modul/regex_filter.md @@ -51,6 +51,10 @@ Vereinfacht kann man sagen, dass einzelnen Router ODER-verknüpft und die jeweil regex: "fms" # check if mode is fms - field: status regex: "3" # check if status is 3 + - name: "Allowed RICs" + checks: + - field: ric + regex: "(0000001|0000002|0000003)" # check if RIC is in the list ``` --- @@ -67,4 +71,4 @@ Vereinfacht kann man sagen, dass einzelnen Router ODER-verknüpft und die jeweil --- ## Zusätzliche Wildcards -- keine \ No newline at end of file +- keine diff --git a/install.sh b/install.sh index 0e02751..3667f2e 100644 --- a/install.sh +++ b/install.sh @@ -113,7 +113,7 @@ tput cup 13 15 echo "[ 2/9] [##-------]" tput cup 15 5 echo "-> download GIT and other stuff.........." -apt-get -y install git cmake build-essential libusb-1.0 qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qt5-default libpulse-dev libx11-dev sox >> ${boswatch_install_path}/setup_log.txt 2>&1 +apt-get -y install git cmake build-essential libusb-1.0 qmake6 qt6-base-dev libpulse-dev libx11-dev sox >> ${boswatch_install_path}/setup_log.txt 2>&1 exitcodefunction $? download stuff tput cup 13 15 @@ -166,7 +166,7 @@ tput cup 15 5 echo "-> compile multimon-ng................." mkdir -p build cd build -qmake -qt=qt5 ../multimon-ng.pro >> ${boswatch_install_path}/setup_log.txt 2>&1 +qmake6 ../multimon-ng.pro >> ${boswatch_install_path}/setup_log.txt 2>&1 exitcodefunction $? qmake multimonNG make >> ${boswatch_install_path}/setup_log.txt 2>&1 diff --git a/requirements.txt b/requirements.txt index 0cca07d..8316ed1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,7 @@ mkdocs # for develope only pytest pytest-cov -flake8==4.0.1 +flake8==6.1.0 pytest-flake8 pytest-flakes pytest-randomly