package localapi import "context" // R-1006: the half-written vzdump cleanup's two needs from the Server, and its start-up sweep. The cleaner itself is // internal/vzpartial; the root helper is configs/felhom-vzdump-partial-clean. // VzdumpInFlight is the one in-flight answer (staleLockController.BackupRunning, R-1008) for the cleanup. No stale-lock // controller wired → true: fail safe, nothing is removed. func (s *Server) VzdumpInFlight(ctx context.Context, vmid int) (bool, error) { if s.staleLock == nil { return true, nil } return s.staleLock.BackupRunning(ctx, vmid) } // SetPartialSweep sets the start-up sweep: called with every owned guest (the felhom pool, ownership proven). func (s *Server) SetPartialSweep(fn func(ctx context.Context, vmid int)) { s.partialSweep = fn } // SweepVzdumpPartials runs the sweep once for every owned guest. No-op when unwired. func (s *Server) SweepVzdumpPartials(ctx context.Context) { if s.partialSweep == nil || s.staleLock == nil { return } guests, err := s.staleLock.Guests(ctx) if err != nil { s.logger.Warn("vzdump-partial: guest list unavailable — skipping the start-up sweep", "err", err) return } for _, g := range guests { s.partialSweep(ctx, g.VMID) } }