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

Method loadData

coderd/dynamicparameters/render.go:93–146  ·  view source on GitHub ↗
(ctx context.Context, db database.Store)

Source from the content-addressed store, hash-verified

91}
92
93func (r *loader) loadData(ctx context.Context, db database.Store) error {
94 if r.templateVersion == nil {
95 tv, err := db.GetTemplateVersionByID(ctx, r.templateVersionID)
96 if err != nil {
97 return xerrors.Errorf("template version: %w", err)
98 }
99 r.templateVersion = &tv
100 }
101
102 if r.job == nil {
103 job, err := db.GetProvisionerJobByID(ctx, r.templateVersion.JobID)
104 if err != nil {
105 return xerrors.Errorf("provisioner job: %w", err)
106 }
107 r.job = &job
108 }
109
110 if !r.job.CompletedAt.Valid {
111 return ErrTemplateVersionNotReady
112 }
113
114 if r.terraformValues == nil {
115 values, err := db.GetTemplateVersionTerraformValues(ctx, r.templateVersion.ID)
116 if err != nil && !xerrors.Is(err, sql.ErrNoRows) {
117 return xerrors.Errorf("template version terraform values: %w", err)
118 }
119
120 if xerrors.Is(err, sql.ErrNoRows) {
121 // If the row does not exist, return zero values.
122 //
123 // Older template versions (prior to dynamic parameters) will be missing
124 // this row, and we can assume the 'ProvisionerdVersion' "" (unknown).
125 values = database.TemplateVersionTerraformValue{
126 TemplateVersionID: r.templateVersionID,
127 UpdatedAt: time.Time{},
128 CachedPlan: nil,
129 CachedModuleFiles: uuid.NullUUID{},
130 ProvisionerdVersion: "",
131 }
132 }
133
134 r.terraformValues = &values
135 }
136
137 if r.templateVariableValues == nil {
138 vals, err := db.GetTemplateVersionVariables(ctx, r.templateVersion.ID)
139 if err != nil && !xerrors.Is(err, sql.ErrNoRows) {
140 return xerrors.Errorf("template version variables: %w", err)
141 }
142 r.templateVariableValues = &vals
143 }
144
145 return nil
146}
147
148// Renderer returns a Renderer that can be used to render the template version's
149// parameters. It automatically determines whether to use a static or dynamic

Callers 1

RendererMethod · 0.95

Calls 6

GetProvisionerJobByIDMethod · 0.65
ErrorfMethod · 0.45
IsMethod · 0.45

Tested by

no test coverage detected