controller v0.267.0: tests off DooPlex's Docker, cut-off copies refused, two pages true
gates / gates (push) Successful in 26s

R-650: internal/dockerexec — every docker exec routed through it; under
go test a real docker is refused (opt-in FELHOM_TEST_REAL_DOCKER=1; a stub
under the temp dir is allowed). api/stacks/web tests run under a silent
stub (TestMain). TestR650_NoBareDockerExec pins it repo-wide.
R-640: a dump without its engine's completion marker is refused before
the first mutation (unit + off-site restore) and again before any load.
R-499: the Tier-2 page's system-disk sentence has four true branches.
R-518: the backup button states the measured ~8 min stop.
R-626: measured on 9202, not reproduced.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-23 20:25:28 +02:00
parent 15e630aa02
commit 80e6ad8c47
55 changed files with 2510 additions and 125 deletions
+2 -2
View File
@@ -3,7 +3,7 @@ package stacks
import (
"encoding/json"
"fmt"
"os/exec"
"gitea.dooplex.hu/admin/felhom-controller/internal/dockerexec"
"regexp"
"strings"
)
@@ -46,7 +46,7 @@ func (m *Manager) ReadInitialCredentials(stackName string) (*ExtractedCreds, err
return &ExtractedCreds{Available: false}, nil
}
out, err := exec.Command("docker", "exec", container, "cat", spec.File).Output()
out, err := dockerexec.Command("docker", "exec", container, "cat", spec.File).Output()
if err != nil {
// File missing / container not exec-able yet — expected during early boot or after the
// customer deletes the file. Not an error worth surfacing; hide the card.