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

Method do

provisionerd/runner/runner.go:423–460  ·  view source on GitHub ↗

do actually does the work of running the job

(ctx context.Context)

Source from the content-addressed store, hash-verified

421
422// do actually does the work of running the job
423func (r *Runner) do(ctx context.Context) (*proto.CompletedJob, *proto.FailedJob) {
424 ctx, span := r.startTrace(ctx, tracing.FuncName())
425 defer span.End()
426
427 r.queueLog(ctx, &proto.Log{
428 Source: proto.LogSource_PROVISIONER_DAEMON,
429 Level: sdkproto.LogLevel_INFO,
430 Stage: "Setting up",
431 CreatedAt: time.Now().UnixMilli(),
432 })
433
434 switch jobType := r.job.Type.(type) {
435 case *proto.AcquiredJob_TemplateImport_:
436 r.logger.Debug(context.Background(), "acquired job is template import",
437 slog.F("user_variable_values", redactVariableValues(jobType.TemplateImport.UserVariableValues)),
438 )
439
440 return r.runTemplateImport(ctx)
441 case *proto.AcquiredJob_TemplateDryRun_:
442 r.logger.Debug(context.Background(), "acquired job is template dry-run",
443 slog.F("workspace_name", jobType.TemplateDryRun.Metadata.WorkspaceName),
444 slog.F("rich_parameter_values", jobType.TemplateDryRun.RichParameterValues),
445 slog.F("variable_values", redactVariableValues(jobType.TemplateDryRun.VariableValues)),
446 )
447 return r.runTemplateDryRun(ctx)
448 case *proto.AcquiredJob_WorkspaceBuild_:
449 r.logger.Debug(context.Background(), "acquired job is workspace provision",
450 slog.F("workspace_name", jobType.WorkspaceBuild.WorkspaceName),
451 slog.F("state_length", len(jobType.WorkspaceBuild.State)),
452 slog.F("rich_parameter_values", jobType.WorkspaceBuild.RichParameterValues),
453 slog.F("variable_values", redactVariableValues(jobType.WorkspaceBuild.VariableValues)),
454 )
455 return r.runWorkspaceBuild(ctx)
456 default:
457 return nil, r.failedJobf("unknown job type %q; ensure your provisioner daemon is up-to-date",
458 reflect.TypeOf(r.job.Type).String())
459 }
460}
461
462func (r *Runner) configure(config *sdkproto.Config) *proto.FailedJob {
463 err := r.session.Send(&sdkproto.Request{Type: &sdkproto.Request_Config{Config: config}})

Callers 1

doCleanFinishMethod · 0.95

Calls 9

startTraceMethod · 0.95
queueLogMethod · 0.95
runTemplateImportMethod · 0.95
runTemplateDryRunMethod · 0.95
runWorkspaceBuildMethod · 0.95
failedJobfMethod · 0.95
FuncNameFunction · 0.92
redactVariableValuesFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected