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

Function WorkspaceAgentScriptTiming

coderd/database/dbgen/dbgen.go:721–745  ·  view source on GitHub ↗
(t testing.TB, db database.Store, orig database.WorkspaceAgentScriptTiming)

Source from the content-addressed store, hash-verified

719}
720
721func WorkspaceAgentScriptTiming(t testing.TB, db database.Store, orig database.WorkspaceAgentScriptTiming) database.WorkspaceAgentScriptTiming {
722 // retry a few times in case of a unique constraint violation
723 for i := 0; i < 10; i++ {
724 timing, err := db.InsertWorkspaceAgentScriptTimings(genCtx, database.InsertWorkspaceAgentScriptTimingsParams{
725 StartedAt: takeFirst(orig.StartedAt, dbtime.Now()),
726 EndedAt: takeFirst(orig.EndedAt, dbtime.Now()),
727 Stage: takeFirst(orig.Stage, database.WorkspaceAgentScriptTimingStageStart),
728 ScriptID: takeFirst(orig.ScriptID, uuid.New()),
729 ExitCode: takeFirst(orig.ExitCode, 0),
730 Status: takeFirst(orig.Status, database.WorkspaceAgentScriptTimingStatusOk),
731 })
732 if err == nil {
733 return timing
734 }
735 // Some tests run WorkspaceAgentScriptTiming in a loop and run into
736 // a unique violation - 2 rows get the same started_at value.
737 if (database.IsUniqueViolation(err, database.UniqueWorkspaceAgentScriptTimingsScriptIDStartedAtKey) && orig.StartedAt == time.Time{}) {
738 // Wait 1 millisecond so dbtime.Now() changes
739 time.Sleep(time.Millisecond * 1)
740 continue
741 }
742 require.NoError(t, err, "insert workspace agent script")
743 }
744 panic("failed to insert workspace agent script timing")
745}
746
747func WorkspaceAgentDevcontainer(t testing.TB, db database.Store, orig database.WorkspaceAgentDevcontainer) database.WorkspaceAgentDevcontainer {
748 devcontainers, err := db.InsertWorkspaceAgentDevcontainers(genCtx, database.InsertWorkspaceAgentDevcontainersParams{

Callers 2

Calls 5

NowFunction · 0.92
IsUniqueViolationFunction · 0.92
takeFirstFunction · 0.70
NewMethod · 0.65

Tested by 1