MCPcopy Index your code
hub / github.com/coder/coder / GetWorkspaceAgentsByInstanceID

Method GetWorkspaceAgentsByInstanceID

coderd/database/dbauthz/dbauthz.go:4993–5018  ·  view source on GitHub ↗
(ctx context.Context, authInstanceID string)

Source from the content-addressed store, hash-verified

4991}
4992
4993func (q *querier) GetWorkspaceAgentsByInstanceID(ctx context.Context, authInstanceID string) ([]database.WorkspaceAgent, error) {
4994 if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceSystem); err == nil {
4995 return q.db.GetWorkspaceAgentsByInstanceID(ctx, authInstanceID)
4996 }
4997
4998 agents, err := q.db.GetWorkspaceAgentsByInstanceID(ctx, authInstanceID)
4999 if err != nil {
5000 return nil, err
5001 }
5002 // Filter to agents whose workspace is accessible. Template-version
5003 // agents can share the same instance ID but do not belong to a
5004 // workspace, so GetWorkspaceByAgentID returns sql.ErrNoRows for
5005 // them. Exclude those agents rather than failing the entire lookup.
5006 filtered := make([]database.WorkspaceAgent, 0, len(agents))
5007 for _, agent := range agents {
5008 _, err = q.GetWorkspaceByAgentID(ctx, agent.ID)
5009 if err != nil {
5010 if errors.Is(err, sql.ErrNoRows) {
5011 continue
5012 }
5013 return nil, err
5014 }
5015 filtered = append(filtered, agent)
5016 }
5017 return filtered, nil
5018}
5019
5020func (q *querier) GetWorkspaceAgentsByParentID(ctx context.Context, parentID uuid.UUID) ([]database.WorkspaceAgent, error) {
5021 workspace, err := q.db.GetWorkspaceByAgentID(ctx, parentID)

Callers

nothing calls this directly

Calls 4

authorizeContextMethod · 0.95
GetWorkspaceByAgentIDMethod · 0.95
IsMethod · 0.45

Tested by

no test coverage detected