dolibarr.netdiag/doc/datenkorrekturen/2026-08-17_dhcpcheck_status.sql
Eduard Wisch dc716709d5
All checks were successful
Deploy netdiag / deploy (push) Has been skipped
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) <noreply@anthropic.com>
2026-08-17 16:24:02 +02:00

72 lines
3.3 KiB
SQL

-- =====================================================================
-- 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);
-- =====================================================================