agent+server: apply host bandwidth caps to restic invocations
P2R-13a. restic.Env gains LimitUploadKBps/LimitDownloadKBps which are
emitted as global --limit-upload/--limit-download flags before the
subcommand on every invocation. Agent dispatcher tracks host-wide
caps received via config.update; server pushes them on hello and
after PUT /api/hosts/{id}/bandwidth.
Also extends api.CommandRunPayload with optional per-job overrides
(BandwidthUpKBps/Down + PreHook/PostHook); the override consumers
land in T2/T6.
This commit is contained in:
@@ -399,6 +399,10 @@ func (s *Server) pushAdminCredsToAgent(ctx context.Context, hostID string) error
|
||||
// don't race a brand-new register against an old still-closing conn.
|
||||
func (s *Server) onAgentHello(ctx context.Context, hostID string, conn *ws.Conn) {
|
||||
s.pushRepoCredsOnHello(ctx, hostID, conn)
|
||||
// Bandwidth caps are sent unconditionally so an agent that
|
||||
// reconnects after a cap edit picks up the new state without
|
||||
// waiting for the next bandwidth PUT.
|
||||
s.pushBandwidthOnHello(ctx, hostID, conn)
|
||||
// Push the current schedule set in the same on-hello window so
|
||||
// the agent's local cron is in sync before any command.run lands.
|
||||
// An empty schedule list is a valid push: it tells the agent to
|
||||
|
||||
Reference in New Issue
Block a user