fix(proxmox): vorübergehende Störungen wiederholen statt abbrechen

Der Feldtest auf einem ausgelasteten pve-demo scheiterte an Verbindungswacklern, nicht an Proxmox: pveproxy meldete „Broken pipe“ (Backend weg), schloss Keep-Alive-Verbindungen, Storage-Abfragen dauerten 15 s. GET wird bis zu dreimal wiederholt, Schreibendes nur bei sicher nicht angekommener Anfrage; Schreibaufrufe dürfen 120 s dauern, Keep-Alive 2 s.

Refs #020

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 14:14:47 +02:00
co-authored by Claude Opus 5.5
parent 420aca3994
commit 64859b3637
6 changed files with 162 additions and 26 deletions
+16 -4
View File
@@ -1,6 +1,7 @@
package befehle
import (
"bytes"
"errors"
"fmt"
"os"
@@ -189,11 +190,22 @@ func (u *umgebung) batchBefehl() *cobra.Command {
fehlgeschlagen := 0
if trocken {
for nr, e := range eintraege {
if nr > 0 && !u.opt.json {
fmt.Fprintln(u.aus)
ausgegeben := false
for _, e := range eintraege {
// Leerzeile nur zwischen Blöcken, die auch etwas ausgeben (mit --quiet bleiben gute stumm).
puffer := &bytes.Buffer{}
ziel := u.aus
u.aus = puffer
err := u.trockenlauf(ctx, c, e.anfrage, e.name)
u.aus = ziel
if puffer.Len() > 0 {
if ausgegeben && !u.opt.json {
fmt.Fprintln(u.aus)
}
_, _ = u.aus.Write(puffer.Bytes())
ausgegeben = true
}
if err := u.trockenlauf(ctx, c, e.anfrage, e.name); err != nil {
if err != nil {
var ef *exitFehler
if !errors.As(err, &ef) || !ef.gemeldet {
u.fehlerMelden(err)