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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user