(ctx context.Context, workspace database.Workspace, workspaceAgent database.WorkspaceAgent, workspaceBuild database.WorkspaceBuild, mux *yamux.Session, )
| 243 | } |
| 244 | |
| 245 | func (api *API) startAgentYamuxMonitor(ctx context.Context, |
| 246 | workspace database.Workspace, |
| 247 | workspaceAgent database.WorkspaceAgent, |
| 248 | workspaceBuild database.WorkspaceBuild, |
| 249 | mux *yamux.Session, |
| 250 | ) *agentConnectionMonitor { |
| 251 | monitor := &agentConnectionMonitor{ |
| 252 | apiCtx: api.ctx, |
| 253 | workspace: workspace, |
| 254 | workspaceAgent: workspaceAgent, |
| 255 | workspaceBuild: workspaceBuild, |
| 256 | |
| 257 | conn: &yamuxPingerCloser{mux: mux}, |
| 258 | pingPeriod: api.AgentConnectionUpdateFrequency, |
| 259 | db: api.Database, |
| 260 | replicaID: api.ID, |
| 261 | updater: api, |
| 262 | disconnectTimeout: api.AgentInactiveDisconnectTimeout, |
| 263 | metrics: api.workspaceAgentRPCMetrics, |
| 264 | logger: api.Logger.With( |
| 265 | slog.F("workspace_id", workspaceBuild.WorkspaceID), |
| 266 | slog.F("agent_id", workspaceAgent.ID), |
| 267 | ), |
| 268 | } |
| 269 | monitor.init() |
| 270 | monitor.start(ctx) |
| 271 | |
| 272 | return monitor |
| 273 | } |
| 274 | |
| 275 | type workspaceUpdater interface { |
| 276 | publishWorkspaceUpdate(ctx context.Context, ownerID uuid.UUID, event wspubsub.WorkspaceEvent) |
no test coverage detected