Anmeldung fehlgeschlagen: sagen, woran es liegt

Die Meldung nannte bisher nur die aufgerufene Adresse. Antwort,
HTTP-Code und curls eigene Fehlermeldung wurden weggeworfen - also
genau das, woran man es erkennt. Uebrig blieb Raten.

Jetzt werden alle drei eingesammelt und ausgewertet:

  HTTP 400/401  Der Proxy Manager hat geantwortet und abgelehnt. Damit
                ist auch gesagt, dass Port, Netz und Proxy stimmen. Die
                Meldung der Schnittstelle steht dabei ("Invalid email or
                password"), dazu der Hinweis auf npm-reset, falls das
                Konto nie angelegt wurde.
  HTTP 000      Gar keine Antwort. Der Reihe nach wird geprueft und
                benannt: NPM_ENABLED=off, Container laeuft nicht, auf
                dem Port lauscht nichts, oder er antwortet nur nicht.
  HTTP 5xx      Es hat etwas geantwortet, aber nicht wie erwartet.

Dazu: ist die Antwort HTML statt JSON, wird das ausdruecklich gesagt und
die erste Zeile gezeigt. Damit ist auf einen Blick erkennbar, dass ein
HTTP-Proxy geantwortet hat und nicht der Proxy Manager - im Test
"<html><head><title>502 Proxy Error</title>...".

Beim Pruefen der Faelle ist ein Fehler aufgefallen: container_running
benutzt RUNTIME ohne Absicherung. War die Runtime nicht erkannt, brach
die Fehlerdiagnose unter "set -u" mit "RUNTIME ist nicht gesetzt" ab -
ausgerechnet die Ausgabe, die helfen soll. Ohne erkannte Runtime lautet
die Antwort jetzt schlicht "nein".

Nebenbei korrigiert: NPM antwortet bei falschen Zugangsdaten mit 400,
nicht mit 401 - der erste Entwurf fing den haeufigsten Fall nicht.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-20 23:56:49 +02:00
co-authored by Claude Opus 5
parent eb29db0130
commit 62ccafbbd1
4 changed files with 204 additions and 22 deletions
+7 -2
View File
@@ -148,8 +148,13 @@ npm_enabled() {
esac
}
container_exists() { $RUNTIME container inspect "$1" >/dev/null 2>&1; }
container_running() { [ "$($RUNTIME container inspect -f '{{.State.Running}}' "$1" 2>/dev/null)" = "true" ]; }
# Ohne erkannte Runtime laesst sich nichts sagen - dann schlicht "nein"
# statt unter "set -u" mitten in einer Fehlerdiagnose abzubrechen.
container_exists() { [ -n "${RUNTIME:-}" ] && $RUNTIME container inspect "$1" >/dev/null 2>&1; }
container_running() {
[ -n "${RUNTIME:-}" ] || return 1
[ "$($RUNTIME container inspect -f '{{.State.Running}}' "$1" 2>/dev/null)" = "true" ]
}
require_cmk_running() {
container_exists "$CMK_CONTAINER_NAME" \