(ctx context.Context, db database.Store)
| 91 | } |
| 92 | |
| 93 | func (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 |
no test coverage detected