From dc716709d506d587360c110f0cfb6863ef1d1d87 Mon Sep 17 00:00:00 2001 From: Eduard Wisch Date: Mon, 17 Aug 2026 16:24:02 +0200 Subject: [PATCH] Datenkorrektur fuer die drei dhcpcheck-Altmessungen vorbereitet Eddy hat die Korrektur der Prod-Datensaetze angewiesen. Das SQL liegt jetzt unter doc/datenkorrekturen/ - bewusst NICHT unter sql/, weil alles dort von Dolibarrs _load_tables() beim Aktivieren des Moduls automatisch ausgefuehrt wird und eine Datenkorrektur in keinen automatischen Lauf gehoert. Enthaelt Begruendung, den vollstaendigen Vorher-Zustand aller drei Zeilen (rowid 5, 7, 10) und den Rueckweg. Die WHERE-Bedingung ist wiederholbar und im Trockenlauf gegen Prod geprueft: sie trifft exakt diese drei Zeilen, rowid 42 (echte Messung mit echtem Ergebnis) bleibt unangetastet. Korrigiert werden nur measure_status und label - also die Bewertung und deren Zusammenfassung. Die Spalte result bleibt unveraendert, sie ist die Messung selbst und damit Beleg. Ausgefuehrt ist die Korrektur noch nicht: der Sicherheitsfilter der Sitzung blockiert Schreibzugriffe auf die Produktionsdatenbank. Co-Authored-By: Claude Opus 5 (1M context) --- .../2026-08-17_dhcpcheck_status.sql | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 doc/datenkorrekturen/2026-08-17_dhcpcheck_status.sql diff --git a/doc/datenkorrekturen/2026-08-17_dhcpcheck_status.sql b/doc/datenkorrekturen/2026-08-17_dhcpcheck_status.sql new file mode 100644 index 0000000..415a1b1 --- /dev/null +++ b/doc/datenkorrekturen/2026-08-17_dhcpcheck_status.sql @@ -0,0 +1,72 @@ +-- ===================================================================== +-- Datenkorrektur Produktionsdatenbank — 17.08.2026 +-- Ausgeführt auf Anweisung von Eddy, DB `dolibarr` auf 192.168.155.1 +-- +-- ACHTUNG: Diese Datei liegt bewusst NICHT unter sql/. Alles dort wird von +-- Dolibarrs _load_tables() beim Aktivieren des Moduls automatisch +-- ausgeführt; eine Datenkorrektur gehört nicht in einen automatischen Lauf. +-- Hier steht sie zur Nachvollziehbarkeit und für den Rückweg. +-- ===================================================================== +-- +-- WARUM +-- +-- Das Werkzeug `dhcpcheck` gibt es nicht mehr. Drei seiner Messungen wurden +-- als Kundendokument ausgeliefert und stehen mit measure_status = 2 (rot) +-- und dem Label „0 DHCP-Server (!)" in der Datenbank. Das Ergebnis dazu ist +-- {"count":0,"server":[],"hinweis":""}. +-- +-- Diese „0" war nie eine Messung: Bei einer Kabelverbindung gibt Android die +-- DHCP-Angaben grundsätzlich nicht heraus — sie stecken nur im deprecated +-- DhcpInfo und nur für WLAN. „0 gefunden" war der Rückgabewert für „nicht +-- ermittelbar". Eine rote Ampel mit dieser Beschriftung behauptet gegenüber +-- dem Kunden einen Netzfehler, den die Messung nie hergegeben hat. +-- +-- Status 3 = „nicht messbar" ist die ehrliche Einstufung: der Test konnte +-- nicht durchgeführt werden. Weder grün (wäre gelogen) noch rot (wäre eine +-- Aussage über das Kundennetz). +-- +-- WAS NICHT ANGEFASST WIRD +-- +-- Die Spalte `result` bleibt unverändert. Sie ist die Messung selbst und +-- damit Beleg — korrigiert werden nur Bewertung (measure_status) und deren +-- Zusammenfassung (label). Die Anzeige-Korrektur netdiagAltlastKorrektur() +-- im Modul bleibt ebenfalls bestehen: sie fängt denselben Fall in Backups, +-- Testinstanzen und noch nicht synchronisierten Geräten ab. +-- +-- ZUSTAND VOR DER KORREKTUR (vollständig, zum Zurückschreiben) +-- +-- rowid | fk_protocol | ref | status | label +-- 5 | 2 | ND2026-0002 | 2 | 0 DHCP-Server (!) +-- 7 | 1 | ND2026-0001 | 2 | 0 DHCP-Server (!) +-- 10 | 12 | ND2026-0012 | 2 | 0 DHCP-Server (!) +-- +-- result bei allen dreien: {"count":0,"server":[],"hinweis":""} +-- +-- Nicht betroffen und unverändert: rowid 42 (ND2026-0015), status 0, +-- „DHCP-Server: 192.168.153.1" — eine echte Messung mit echtem Ergebnis. +-- ===================================================================== + +-- KORREKTUR +-- Die WHERE-Bedingung trifft ausschließlich Messungen des entfernten +-- Werkzeugs ohne jedes Ergebnis. Sie ist wiederholbar: ein zweiter Lauf +-- findet nichts mehr (measure_status ist dann bereits 3). +UPDATE llx_netdiag_measurement + SET measure_status = 3, + label = 'DHCP-Server nicht ermittelbar' + WHERE tool = 'dhcpcheck' + AND measure_status = 2 + AND result LIKE '%"count":0%' + AND result LIKE '%"server":[]%'; +-- erwartet: 3 Zeilen + +-- PRÜFUNG +-- SELECT rowid, measure_status, label FROM llx_netdiag_measurement WHERE tool='dhcpcheck'; + +-- ===================================================================== +-- RÜCKWEG (nur ausführen, wenn die Korrektur rückgängig gemacht werden soll) +-- +-- UPDATE llx_netdiag_measurement +-- SET measure_status = 2, +-- label = '0 DHCP-Server (!)' +-- WHERE rowid IN (5, 7, 10); +-- =====================================================================