Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9c8ecb8

Browse files
feat(coderd): return agent script timings (#14923)
Add the agent script timings into the`/workspacebuilds/:workspacebuild/timings` response.Close#14876
1 parent79d24d2 commit9c8ecb8

File tree

23 files changed

+978
-292
lines changed

23 files changed

+978
-292
lines changed

‎coderd/agentapi/scripts.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func (s *ScriptsAPI) ScriptCompleted(ctx context.Context, req *agentproto.Worksp
4747

4848
//nolint:gocritic // We need permissions to write to the DB here and we are in the context of the agent.
4949
ctx=dbauthz.AsProvisionerd(ctx)
50-
err=s.Database.InsertWorkspaceAgentScriptTimings(ctx, database.InsertWorkspaceAgentScriptTimingsParams{
50+
_,err=s.Database.InsertWorkspaceAgentScriptTimings(ctx, database.InsertWorkspaceAgentScriptTimingsParams{
5151
ScriptID:scriptID,
5252
Stage:stage,
5353
Status:status,

‎coderd/apidoc/docs.go

Lines changed: 78 additions & 12 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/apidoc/swagger.json

Lines changed: 74 additions & 12 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/coderd.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,6 +1173,7 @@ func New(options *Options) *API {
11731173
r.Get("/parameters",api.workspaceBuildParameters)
11741174
r.Get("/resources",api.workspaceBuildResourcesDeprecated)
11751175
r.Get("/state",api.workspaceBuildState)
1176+
r.Get("/timings",api.workspaceBuildTimings)
11761177
})
11771178
r.Route("/authcheck",func(r chi.Router) {
11781179
r.Use(apiKeyMiddleware)

‎coderd/database/dbauthz/dbauthz.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2421,6 +2421,13 @@ func (q *querier) GetWorkspaceAgentPortShare(ctx context.Context, arg database.G
24212421
returnq.db.GetWorkspaceAgentPortShare(ctx,arg)
24222422
}
24232423

2424+
func (q*querier)GetWorkspaceAgentScriptTimingsByBuildID(ctx context.Context,id uuid.UUID) ([]database.GetWorkspaceAgentScriptTimingsByBuildIDRow,error) {
2425+
iferr:=q.authorizeContext(ctx,policy.ActionRead,rbac.ResourceSystem);err!=nil {
2426+
returnnil,err
2427+
}
2428+
returnq.db.GetWorkspaceAgentScriptTimingsByBuildID(ctx,id)
2429+
}
2430+
24242431
func (q*querier)GetWorkspaceAgentScriptsByAgentIDs(ctx context.Context,ids []uuid.UUID) ([]database.WorkspaceAgentScript,error) {
24252432
iferr:=q.authorizeContext(ctx,policy.ActionRead,rbac.ResourceSystem);err!=nil {
24262433
returnnil,err
@@ -3034,9 +3041,9 @@ func (q *querier) InsertWorkspaceAgentMetadata(ctx context.Context, arg database
30343041
returnq.db.InsertWorkspaceAgentMetadata(ctx,arg)
30353042
}
30363043

3037-
func (q*querier)InsertWorkspaceAgentScriptTimings(ctx context.Context,arg database.InsertWorkspaceAgentScriptTimingsParams)error {
3044+
func (q*querier)InsertWorkspaceAgentScriptTimings(ctx context.Context,arg database.InsertWorkspaceAgentScriptTimingsParams)(database.WorkspaceAgentScriptTiming,error) {
30383045
iferr:=q.authorizeContext(ctx,policy.ActionCreate,rbac.ResourceSystem);err!=nil {
3039-
returnerr
3046+
returndatabase.WorkspaceAgentScriptTiming{},err
30403047
}
30413048
returnq.db.InsertWorkspaceAgentScriptTimings(ctx,arg)
30423049
}

‎coderd/database/dbauthz/dbauthz_test.go

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -551,26 +551,6 @@ func (s *MethodTestSuite) TestProvisionerJob() {
551551
check.Args(database.UpdateProvisionerJobWithCancelByIDParams{ID:j.ID}).
552552
Asserts(v.RBACObject(tpl), []policy.Action{policy.ActionRead,policy.ActionUpdate}).Returns()
553553
}))
554-
s.Run("GetProvisionerJobTimingsByJobID",s.Subtest(func(db database.Store,check*expects) {
555-
w:=dbgen.Workspace(s.T(),db, database.Workspace{})
556-
j:=dbgen.ProvisionerJob(s.T(),db,nil, database.ProvisionerJob{
557-
Type:database.ProvisionerJobTypeWorkspaceBuild,
558-
})
559-
_=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{JobID:j.ID,WorkspaceID:w.ID})
560-
t:=dbgen.ProvisionerJobTimings(s.T(),db, database.InsertProvisionerJobTimingsParams{
561-
JobID:j.ID,
562-
StartedAt: []time.Time{dbtime.Now(),dbtime.Now()},
563-
EndedAt: []time.Time{dbtime.Now(),dbtime.Now()},
564-
Stage: []database.ProvisionerJobTimingStage{
565-
database.ProvisionerJobTimingStageInit,
566-
database.ProvisionerJobTimingStagePlan,
567-
},
568-
Source: []string{"source1","source2"},
569-
Action: []string{"action1","action2"},
570-
Resource: []string{"resource1","resource2"},
571-
})
572-
check.Args(j.ID).Asserts(w,policy.ActionRead).Returns(t)
573-
}))
574554
s.Run("GetProvisionerJobsByIDs",s.Subtest(func(db database.Store,check*expects) {
575555
a:=dbgen.ProvisionerJob(s.T(),db,nil, database.ProvisionerJob{})
576556
b:=dbgen.ProvisionerJob(s.T(),db,nil, database.ProvisionerJob{})
@@ -2867,6 +2847,46 @@ func (s *MethodTestSuite) TestSystemFunctions() {
28672847
LastGeneratedAt:dbtime.Now(),
28682848
}).Asserts(rbac.ResourceSystem,policy.ActionCreate)
28692849
}))
2850+
s.Run("GetProvisionerJobTimingsByJobID",s.Subtest(func(db database.Store,check*expects) {
2851+
w:=dbgen.Workspace(s.T(),db, database.Workspace{})
2852+
j:=dbgen.ProvisionerJob(s.T(),db,nil, database.ProvisionerJob{
2853+
Type:database.ProvisionerJobTypeWorkspaceBuild,
2854+
})
2855+
b:=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{JobID:j.ID,WorkspaceID:w.ID})
2856+
t:=dbgen.ProvisionerJobTimings(s.T(),db,b,2)
2857+
check.Args(j.ID).Asserts(w,policy.ActionRead).Returns(t)
2858+
}))
2859+
s.Run("GetWorkspaceAgentScriptTimingsByBuildID",s.Subtest(func(db database.Store,check*expects) {
2860+
workspace:=dbgen.Workspace(s.T(),db, database.Workspace{})
2861+
job:=dbgen.ProvisionerJob(s.T(),db,nil, database.ProvisionerJob{
2862+
Type:database.ProvisionerJobTypeWorkspaceBuild,
2863+
})
2864+
build:=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{JobID:job.ID,WorkspaceID:workspace.ID})
2865+
resource:=dbgen.WorkspaceResource(s.T(),db, database.WorkspaceResource{
2866+
JobID:build.JobID,
2867+
})
2868+
agent:=dbgen.WorkspaceAgent(s.T(),db, database.WorkspaceAgent{
2869+
ResourceID:resource.ID,
2870+
})
2871+
script:=dbgen.WorkspaceAgentScript(s.T(),db, database.WorkspaceAgentScript{
2872+
WorkspaceAgentID:agent.ID,
2873+
})
2874+
timing:=dbgen.WorkspaceAgentScriptTiming(s.T(),db, database.WorkspaceAgentScriptTiming{
2875+
ScriptID:script.ID,
2876+
})
2877+
rows:= []database.GetWorkspaceAgentScriptTimingsByBuildIDRow{
2878+
{
2879+
StartedAt:timing.StartedAt,
2880+
EndedAt:timing.EndedAt,
2881+
Stage:timing.Stage,
2882+
ScriptID:timing.ScriptID,
2883+
ExitCode:timing.ExitCode,
2884+
Status:timing.Status,
2885+
DisplayName:script.DisplayName,
2886+
},
2887+
}
2888+
check.Args(build.ID).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(rows)
2889+
}))
28702890
}
28712891

28722892
func (s*MethodTestSuite)TestNotifications() {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp