Browse Source

fix: apply maintenance script defaults in gRPC handler

The gRPC handler for GetMasterConfiguration read maintenance scripts
from viper without calling SetDefault, relying on startAdminScripts
having run first. If the admin server calls GetMasterConfiguration
before startAdminScripts sets the defaults, viper returns empty
strings and the seeding is silently skipped.

Apply SetDefault in the gRPC handler itself so it is self-contained.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pull/8509/head
Chris Lu 5 days ago
parent
commit
068a506330
  1. 4
      weed/server/master_grpc_server.go

4
weed/server/master_grpc_server.go

@ -456,7 +456,11 @@ func (ms *MasterServer) GetMasterConfiguration(ctx context.Context, req *master_
leader, _ := ms.Topo.Leader() leader, _ := ms.Topo.Leader()
// MIGRATION: expose maintenance scripts for admin server seeding. Remove after March 2027. // MIGRATION: expose maintenance scripts for admin server seeding. Remove after March 2027.
// Apply defaults here rather than relying on startAdminScripts having called SetDefault,
// since this gRPC handler can be reached before startAdminScripts runs.
v := util.GetViper() v := util.GetViper()
v.SetDefault("master.maintenance.scripts", maintenance.DefaultMasterMaintenanceScripts)
v.SetDefault("master.maintenance.sleep_minutes", maintenance.DefaultMaintenanceSleepMinutes)
maintenanceScripts := v.GetString("master.maintenance.scripts") maintenanceScripts := v.GetString("master.maintenance.scripts")
maintenanceSleepMinutes := v.GetInt("master.maintenance.sleep_minutes") maintenanceSleepMinutes := v.GetInt("master.maintenance.sleep_minutes")
if maintenanceSleepMinutes <= 0 { if maintenanceSleepMinutes <= 0 {

Loading…
Cancel
Save