chore: assume template versions without tf values to be empty (#18479)

Closes https://github.com/coder/internal/issues/735
This commit is contained in:
Steven Masley
2025-06-20 15:05:22 -05:00
committed by GitHub
parent fae30a00fd
commit 6e4508e29c

View File

@ -2,9 +2,11 @@ package dynamicparameters
import ( import (
"context" "context"
"database/sql"
"io/fs" "io/fs"
"log/slog" "log/slog"
"sync" "sync"
"time"
"github.com/google/uuid" "github.com/google/uuid"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
@ -105,9 +107,24 @@ func (r *loader) loadData(ctx context.Context, db database.Store) error {
if r.terraformValues == nil { if r.terraformValues == nil {
values, err := db.GetTemplateVersionTerraformValues(ctx, r.templateVersion.ID) values, err := db.GetTemplateVersionTerraformValues(ctx, r.templateVersion.ID)
if err != nil { if err != nil && !xerrors.Is(err, sql.ErrNoRows) {
return xerrors.Errorf("template version terraform values: %w", err) return xerrors.Errorf("template version terraform values: %w", err)
} }
if xerrors.Is(err, sql.ErrNoRows) {
// If the row does not exist, return zero values.
//
// Older template versions (prior to dynamic parameters) will be missing
// this row, and we can assume the 'ProvisionerdVersion' "" (unknown).
values = database.TemplateVersionTerraformValue{
TemplateVersionID: r.templateVersionID,
UpdatedAt: time.Time{},
CachedPlan: nil,
CachedModuleFiles: uuid.NullUUID{},
ProvisionerdVersion: "",
}
}
r.terraformValues = &values r.terraformValues = &values
} }