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

Method doInTX

coderd/database/dbfake/dbfake.go:294–593  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

292}
293
294func (b WorkspaceBuildBuilder) doInTX() WorkspaceResponse {
295 b.t.Helper()
296 jobID := uuid.New()
297 b.seed.ID = uuid.New()
298 b.seed.JobID = jobID
299
300 if b.taskAppID != uuid.Nil {
301 b.seed.HasAITask = sql.NullBool{
302 Bool: true,
303 Valid: true,
304 }
305 }
306
307 resp := WorkspaceResponse{
308 AgentToken: b.agentToken,
309 Agents: make([]database.WorkspaceAgent, 0),
310 }
311 if b.ws.TemplateID == uuid.Nil {
312 b.logger.Debug(context.Background(), "creating template and version")
313 resp.TemplateVersionResponse = TemplateVersion(b.t, b.db).
314 Resources(b.resources...).
315 Pubsub(b.ps).
316 Seed(database.TemplateVersion{
317 OrganizationID: b.ws.OrganizationID,
318 CreatedBy: b.ws.OwnerID,
319 }).
320 Do()
321 b.ws.TemplateID = resp.Template.ID
322 b.seed.TemplateVersionID = resp.TemplateVersion.ID
323 }
324
325 // If no template version is set assume the active version.
326 if b.seed.TemplateVersionID == uuid.Nil {
327 b.logger.Debug(context.Background(), "assuming active template version")
328 template, err := b.db.GetTemplateByID(ownerCtx, b.ws.TemplateID)
329 require.NoError(b.t, err)
330 require.NotNil(b.t, template.ActiveVersionID, "active version ID unexpectedly nil")
331 b.seed.TemplateVersionID = template.ActiveVersionID
332 }
333
334 // No ID on the workspace implies we should generate an entry.
335 if b.ws.ID == uuid.Nil {
336 // nolint: revive
337 b.ws = dbgen.Workspace(b.t, b.db, b.ws)
338 b.logger.Debug(context.Background(), "created workspace",
339 slog.F("name", b.ws.Name),
340 slog.F("workspace_id", b.ws.ID))
341 }
342 resp.Workspace = b.ws
343 b.seed.WorkspaceID = b.ws.ID
344 b.seed.InitiatorID = takeFirst(b.seed.InitiatorID, b.ws.OwnerID)
345
346 // If a task was requested, ensure it exists and is associated with this
347 // workspace.
348 if b.taskAppID != uuid.Nil {
349 b.logger.Debug(context.Background(), "creating or updating task", slog.F("task_id", b.taskSeed.ID))
350 b.taskSeed.OrganizationID = takeFirst(b.taskSeed.OrganizationID, b.ws.OrganizationID)
351 b.taskSeed.OwnerID = takeFirst(b.taskSeed.OwnerID, b.ws.OwnerID)

Callers 1

DoMethod · 0.95

Calls 15

WorkspaceFunction · 0.92
TaskFunction · 0.92
NowFunction · 0.92
WorkspaceBuildFunction · 0.92
WorkspaceBuildParametersFunction · 0.92
WorkspaceEventChannelFunction · 0.92
WorkspaceSubAgentFunction · 0.92
takeFirstTimeFunction · 0.85
ProvisionerJobResourcesFunction · 0.85
ResourcesMethod · 0.80
TemplateVersionFunction · 0.70

Tested by

no test coverage detected