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

Function WorkspaceBuild

coderd/database/dbgen/dbgen.go:848–906  ·  view source on GitHub ↗
(t testing.TB, db database.Store, orig database.WorkspaceBuild)

Source from the content-addressed store, hash-verified

846}
847
848func WorkspaceBuild(t testing.TB, db database.Store, orig database.WorkspaceBuild) database.WorkspaceBuild {
849 t.Helper()
850
851 buildID := takeFirst(orig.ID, uuid.New())
852 jobID := takeFirst(orig.JobID, uuid.New())
853 hasAITask := takeFirst(orig.HasAITask, sql.NullBool{})
854 hasExternalAgent := takeFirst(orig.HasExternalAgent, sql.NullBool{})
855 var build database.WorkspaceBuild
856 err := db.InTx(func(db database.Store) error {
857 err := db.InsertWorkspaceBuild(genCtx, database.InsertWorkspaceBuildParams{
858 ID: buildID,
859 CreatedAt: takeFirst(orig.CreatedAt, dbtime.Now()),
860 UpdatedAt: takeFirst(orig.UpdatedAt, dbtime.Now()),
861 WorkspaceID: takeFirst(orig.WorkspaceID, uuid.New()),
862 TemplateVersionID: takeFirst(orig.TemplateVersionID, uuid.New()),
863 BuildNumber: takeFirst(orig.BuildNumber, 1),
864 Transition: takeFirst(orig.Transition, database.WorkspaceTransitionStart),
865 InitiatorID: takeFirst(orig.InitiatorID, uuid.New()),
866 JobID: jobID,
867 ProvisionerState: []byte{},
868 Deadline: takeFirst(orig.Deadline, dbtime.Now().Add(time.Hour)),
869 MaxDeadline: takeFirst(orig.MaxDeadline, time.Time{}),
870 Reason: takeFirst(orig.Reason, database.BuildReasonInitiator),
871 TemplateVersionPresetID: takeFirst(orig.TemplateVersionPresetID, uuid.NullUUID{
872 UUID: uuid.UUID{},
873 Valid: false,
874 }),
875 })
876 if err != nil {
877 return err
878 }
879
880 if orig.DailyCost > 0 {
881 err = db.UpdateWorkspaceBuildCostByID(genCtx, database.UpdateWorkspaceBuildCostByIDParams{
882 ID: buildID,
883 DailyCost: orig.DailyCost,
884 })
885 require.NoError(t, err)
886 }
887
888 if hasAITask.Valid || hasExternalAgent.Valid {
889 require.NoError(t, db.UpdateWorkspaceBuildFlagsByID(genCtx, database.UpdateWorkspaceBuildFlagsByIDParams{
890 ID: buildID,
891 HasAITask: hasAITask,
892 HasExternalAgent: hasExternalAgent,
893 UpdatedAt: dbtime.Now(),
894 }))
895 }
896
897 build, err = db.GetWorkspaceBuildByID(genCtx, buildID)
898 if err != nil {
899 return err
900 }
901 return nil
902 }, nil)
903 require.NoError(t, err, "insert workspace build")
904
905 return build

Callers 15

TestProvisionerDaemonsFunction · 0.92
TestProvisionerJobsFunction · 0.92
TestWorkspaceTimingsFunction · 0.92
TestWorkspaceBuildParamFunction · 0.92
TestWorkspaceAgentParamFunction · 0.92
TestWorkspaceAgentFunction · 0.92
setupFunction · 0.92

Calls 10

NowFunction · 0.92
takeFirstFunction · 0.70
HelperMethod · 0.65
NewMethod · 0.65
InTxMethod · 0.65
InsertWorkspaceBuildMethod · 0.65
AddMethod · 0.65
GetWorkspaceBuildByIDMethod · 0.65

Tested by 15

TestProvisionerDaemonsFunction · 0.74
TestProvisionerJobsFunction · 0.74
TestWorkspaceTimingsFunction · 0.74
TestWorkspaceBuildParamFunction · 0.74
TestWorkspaceAgentParamFunction · 0.74
TestWorkspaceAgentFunction · 0.74
setupFunction · 0.74