| 277 | } |
| 278 | |
| 279 | func (a *API) Serve(ctx context.Context, l net.Listener) error { |
| 280 | server, err := a.Server(ctx) |
| 281 | if err != nil { |
| 282 | return xerrors.Errorf("create agent API server: %w", err) |
| 283 | } |
| 284 | |
| 285 | if err := a.ResourcesMonitoringAPI.InitMonitors(ctx); err != nil { |
| 286 | return xerrors.Errorf("initialize resource monitoring: %w", err) |
| 287 | } |
| 288 | |
| 289 | return server.Serve(ctx, l) |
| 290 | } |
| 291 | |
| 292 | func (a *API) agent(ctx context.Context) (database.WorkspaceAgent, error) { |
| 293 | agent, err := a.opts.Database.GetWorkspaceAgentByID(ctx, a.opts.AgentID) |