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

Method runTemplateImportParse

provisionerd/runner/runner.go:632–679  ·  view source on GitHub ↗

Parses template variables and README from source.

(ctx context.Context)

Source from the content-addressed store, hash-verified

630
631// Parses template variables and README from source.
632func (r *Runner) runTemplateImportParse(ctx context.Context) (
633 workspaceTags map[string]string, vars []*sdkproto.TemplateVariable, readme []byte, err error,
634) {
635 ctx, span := r.startTrace(ctx, tracing.FuncName())
636 defer span.End()
637
638 err = r.session.Send(&sdkproto.Request{Type: &sdkproto.Request_Parse{Parse: &sdkproto.ParseRequest{}}})
639 if err != nil {
640 return nil, nil, nil, xerrors.Errorf("parse source: %w", err)
641 }
642 for {
643 msg, err := r.session.Recv()
644 if err != nil {
645 return nil, nil, nil, xerrors.Errorf("recv parse source: %w", err)
646 }
647 switch msgType := msg.Type.(type) {
648 case *sdkproto.Response_Log:
649 r.logProvisionerJobLog(context.Background(), msgType.Log.Level, "parse job logged",
650 slog.F("level", msgType.Log.Level),
651 slog.F("output", msgType.Log.Output),
652 )
653
654 r.queueLog(ctx, &proto.Log{
655 Source: proto.LogSource_PROVISIONER,
656 Level: msgType.Log.Level,
657 CreatedAt: time.Now().UnixMilli(),
658 Output: msgType.Log.Output,
659 Stage: "Parse parameters",
660 })
661 case *sdkproto.Response_Parse:
662 pc := msgType.Parse
663 r.logger.Debug(context.Background(), "parse complete",
664 slog.F("workspace_tags", pc.WorkspaceTags),
665 slog.F("template_variables", pc.TemplateVariables),
666 slog.F("readme_len", len(pc.Readme)),
667 slog.F("error", pc.Error),
668 )
669 if pc.Error != "" {
670 return nil, nil, nil, xerrors.Errorf("parse error: %s", pc.Error)
671 }
672
673 return msgType.Parse.WorkspaceTags, msgType.Parse.TemplateVariables, msgType.Parse.Readme, nil
674 default:
675 return nil, nil, nil, xerrors.Errorf("invalid message type %q received from provisioner",
676 reflect.TypeOf(msg.Type).String())
677 }
678 }
679}
680
681type templateImportProvision struct {
682 Resources []*sdkproto.Resource

Callers 1

runTemplateImportMethod · 0.95

Calls 8

startTraceMethod · 0.95
logProvisionerJobLogMethod · 0.95
queueLogMethod · 0.95
FuncNameFunction · 0.92
SendMethod · 0.65
RecvMethod · 0.65
ErrorfMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected