v0.21.3: Push infra backup after config apply, fix double-v in events
After successful config apply, immediately push infra backup to Hub so the config sync status updates right away. Also fix startup event message that showed "vv0.21.2" instead of "v0.21.3". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -569,6 +569,11 @@ func main() {
|
||||
|
||||
// --- Initialize API router ---
|
||||
apiRouter := api.NewRouter(cfg, *configPath, sett, stackMgr, syncer, cpuCollector, backupMgr, crossDriveRunner, metricsStore, updater, notifier, logger)
|
||||
if hubPusher != nil {
|
||||
apiRouter.OnConfigApplied = func() {
|
||||
pushInfraBackup(cfg, sett, stackProv, hubPusher, logger)
|
||||
}
|
||||
}
|
||||
|
||||
// --- Initialize web server ---
|
||||
webServer := web.NewServer(cfg, stackMgr, cpuCollector, backupMgr, crossDriveRunner, sched, sett, alertMgr, notifier, updater, logger, Version)
|
||||
|
||||
@@ -38,6 +38,9 @@ type Router struct {
|
||||
updater *selfupdate.Updater
|
||||
notifier *notify.Notifier
|
||||
logger *log.Logger
|
||||
|
||||
// OnConfigApplied is called after a successful config apply (e.g., to push infra backup).
|
||||
OnConfigApplied func()
|
||||
}
|
||||
|
||||
func NewRouter(cfg *config.Config, configPath string, sett *settings.Settings, stackMgr *stacks.Manager, syncer *catalogsync.Syncer, cpuCollector *system.CPUCollector, backupMgr *backup.Manager, crossDrive *backup.CrossDriveRunner, metricsStore *metrics.MetricsStore, updater *selfupdate.Updater, notif *notify.Notifier, logger *log.Logger) *Router {
|
||||
@@ -976,6 +979,11 @@ func (r *Router) configApply(w http.ResponseWriter, req *http.Request) {
|
||||
|
||||
r.logger.Printf("[API] Config applied from Hub (%d bytes), restart needed to take effect", len(body))
|
||||
writeJSON(w, http.StatusOK, apiResponse{OK: true, Message: "Config applied. Restart controller to apply changes."})
|
||||
|
||||
// Push updated infra backup so Hub has fresh config data immediately
|
||||
if r.OnConfigApplied != nil {
|
||||
go r.OnConfigApplied()
|
||||
}
|
||||
}
|
||||
|
||||
func (r *Router) configHash(w http.ResponseWriter, _ *http.Request) {
|
||||
|
||||
@@ -286,7 +286,7 @@ func (n *Notifier) NotifyControllerUpdated(fromVer, toVer string, success bool)
|
||||
// NotifyControllerStarted sends a controller startup event.
|
||||
func (n *Notifier) NotifyControllerStarted(version string) {
|
||||
n.PushEvent("controller_started", "info",
|
||||
fmt.Sprintf("Controller elindult (v%s)", version), nil)
|
||||
fmt.Sprintf("Controller elindult (%s)", version), nil)
|
||||
}
|
||||
|
||||
// NotifyStorageDisconnected sends a drive disconnection event.
|
||||
|
||||
Reference in New Issue
Block a user