Files
Loki/internal/loki/facade_update.go
T
Claude 25e31c1c26 Lot 21 : mise à jour de Loki tenue par la façade (LOKI_UPDATE=rust)
En conteneur, l'image se met à jour par Docker : /api/update rend la
version du Go sans mise à jour disponible et la note Docker,
/api/update/apply la refuse (409). La façade sert ces deux routes quand
LOKI_UPDATE=rust et LOKI_CONTAINER=1 (sysupdate.rs) ; hors conteneur,
loki-rs ne passe pas la variable et le Go garde le remplacement du
binaire.

Parité : parity_update_test.go tire du Go les quatre réponses en
conteneur, rejouées par tests/sysupdate.rs ; TestFacadeMiseAJour côté Go.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
2026-10-15 20:01:37 +00:00

27 lines
857 B
Go

package loki
import (
"os"
"strings"
)
// facade_update.go — mise à jour de Loki tenue par la façade Rust
// (LOKI_UPDATE=rust, lot 21 de la migration ; expérimental, le Go reste le
// défaut) : /api/update et /api/update/apply. La façade ne tourne qu'en
// conteneur, où l'image se met à jour par Docker : les deux routes le disent
// (containerUpdateNote). Hors conteneur, loki-rs ne passe pas la variable.
const facadeUpdateEnv = "LOKI_UPDATE"
// facadeUpdate : la façade tient-elle la mise à jour ?
func facadeUpdate() bool {
return strings.EqualFold(strings.TrimSpace(os.Getenv(facadeUpdateEnv)), "rust") &&
facadeAddr() != "" && internalToken() != ""
}
// facadeUpdateRoutes : les routes que la façade sert alors (sysupdate.rs).
var facadeUpdateRoutes = map[string]bool{
"/api/update": true,
"/api/update/apply": true,
}