Skip to content

Commit eefd631

Browse files
committed
Fix ErrNoRows
1 parent d4132ec commit eefd631

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

coderd/database/dbauthz/querier.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1558,7 +1558,7 @@ func (q *querier) InsertWorkspaceAgentStat(ctx context.Context, arg database.Ins
15581558
func (q *querier) InsertWorkspaceAgentMetadata(ctx context.Context, arg database.InsertWorkspaceAgentMetadataParams) error {
15591559
workspace, err := q.db.GetWorkspaceByAgentID(ctx, arg.WorkspaceAgentID)
15601560
if err != nil {
1561-
return err
1561+
return xerrors.Errorf("find workspace by agent %v: %v", arg.WorkspaceAgentID, err)
15621562
}
15631563

15641564
err = q.authorizeContext(ctx, rbac.ActionUpdate, workspace)

coderd/provisionerdserver/provisionerdserver.go

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,20 +1276,27 @@ func InsertWorkspaceResource(ctx context.Context, db database.Store, jobID uuid.
12761276
}
12771277
snapshot.WorkspaceAgents = append(snapshot.WorkspaceAgents, telemetry.ConvertWorkspaceAgent(dbAgent))
12781278

1279-
for _, md := range prAgent.Metadata {
1280-
err := db.InsertWorkspaceAgentMetadata(ctx, database.InsertWorkspaceAgentMetadataParams{
1281-
WorkspaceAgentID: agentID,
1282-
DisplayName: md.DisplayName,
1283-
Script: md.Script,
1284-
Key: md.Key,
1285-
Timeout: md.Timeout,
1286-
Interval: md.Interval,
1287-
})
1288-
if err != nil {
1289-
return xerrors.Errorf("insert agent metadata: %w", err)
1279+
// We don't need to insert metadata if the agent is not for a workspace.
1280+
// This is probably an agent made during the provisioning process.
1281+
_, err = db.GetWorkspaceByAgentID(ctx, agentID)
1282+
if err == nil {
1283+
for _, md := range prAgent.Metadata {
1284+
p := database.InsertWorkspaceAgentMetadataParams{
1285+
WorkspaceAgentID: agentID,
1286+
DisplayName: md.DisplayName,
1287+
Script: md.Script,
1288+
Key: md.Key,
1289+
Timeout: md.Timeout,
1290+
Interval: md.Interval,
1291+
}
1292+
err := db.InsertWorkspaceAgentMetadata(ctx, p)
1293+
if err != nil {
1294+
return xerrors.Errorf("insert agent metadata: %w, params: %+v", err, p)
1295+
}
12901296
}
1297+
} else if !errors.Is(err, sql.ErrNoRows) {
1298+
return xerrors.Errorf("get workspace by agent ID: %w", err)
12911299
}
1292-
12931300
for _, app := range prAgent.Apps {
12941301
slug := app.Slug
12951302
if slug == "" {

0 commit comments

Comments
 (0)