Skip to content

Commit 3db3e6b

Browse files
committed
bring back logging
1 parent bc69d1e commit 3db3e6b

File tree

3 files changed

+48
-14
lines changed

3 files changed

+48
-14
lines changed

provisioner/terraform/parse.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func (s *server) Parse(sess *provisionersdk.Session, _ *proto.ParseRequest, _ <-
2626
return provisionersdk.ParseErrorf("load module: %s", formatDiagnostics(sess.WorkDirectory, diags))
2727
}
2828

29-
workspaceTags, err := tfparse.WorkspaceTags(nil, module)
29+
workspaceTags, err := tfparse.WorkspaceTags(ctx, s.logger, nil, module)
3030
if err != nil {
3131
return provisionersdk.ParseErrorf("can't load workspace tags: %v", err)
3232
}

provisioner/terraform/tfparse/tfextract.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,15 @@ type Parser interface {
4343
// Note that this only returns the lexical values of the data source, and does not
4444
// evaluate variables and such. To do this, see evalProvisionerTags below.
4545
// If the provided Parser is nil, a new instance of hclparse.Parser will be used instead.
46-
func WorkspaceTags(parser Parser, module *tfconfig.Module) (map[string]string, error) {
46+
func WorkspaceTags(ctx context.Context, logger slog.Logger, parser Parser, module *tfconfig.Module) (map[string]string, error) {
4747
if parser == nil {
4848
parser = hclparse.NewParser()
4949
}
5050
tags := map[string]string{}
51-
51+
var skipped []string
5252
for _, dataResource := range module.DataResources {
5353
if dataResource.Type != "coder_workspace_tags" {
54+
skipped = append(skipped, strings.Join([]string{"data", dataResource.Type, dataResource.Name}, "."))
5455
continue
5556
}
5657

@@ -118,6 +119,7 @@ func WorkspaceTags(parser Parser, module *tfconfig.Module) (map[string]string, e
118119
}
119120
}
120121
}
122+
logger.Debug(ctx, "found workspace tags", slog.F("tags", maps.Keys(tags)), slog.F("skipped", skipped))
121123
return tags, nil
122124
}
123125

@@ -145,18 +147,18 @@ func WorkspaceTagDefaultsFromFile(ctx context.Context, logger slog.Logger, file
145147

146148
// This only gets us the expressions. We need to evaluate them.
147149
// Example: var.region -> "us"
148-
tags, err = WorkspaceTags(parser, module)
150+
tags, err = WorkspaceTags(ctx, logger, parser, module)
149151
if err != nil {
150152
return nil, xerrors.Errorf("extract workspace tags: %w", err)
151153
}
152154

153155
// To evaluate the expressions, we need to load the default values for
154156
// variables and parameters.
155-
varsDefaults, err := loadVarsDefaults(maps.Values(module.Variables))
157+
varsDefaults, err := loadVarsDefaults(ctx, logger, maps.Values(module.Variables))
156158
if err != nil {
157159
return nil, xerrors.Errorf("load variable defaults: %w", err)
158160
}
159-
paramsDefaults, err := loadParamsDefaults(parser, maps.Values(module.DataResources))
161+
paramsDefaults, err := loadParamsDefaults(ctx, logger, parser, maps.Values(module.DataResources))
160162
if err != nil {
161163
return nil, xerrors.Errorf("load parameter defaults: %w", err)
162164
}
@@ -176,8 +178,6 @@ func WorkspaceTagDefaultsFromFile(ctx context.Context, logger slog.Logger, file
176178
}
177179
return nil, xerrors.Errorf("provisioner tag %q evaluated to an empty value, please set a default value", k)
178180
}
179-
logger.Info(ctx, "found workspace tags", slog.F("tags", evalTags))
180-
181181
return evalTags, nil
182182
}
183183

@@ -224,7 +224,7 @@ func loadModuleFromFile(file []byte, mimetype string) (module *tfconfig.Module,
224224
}
225225

226226
// loadVarsDefaults returns the default values for all variables passed to it.
227-
func loadVarsDefaults(variables []*tfconfig.Variable) (map[string]string, error) {
227+
func loadVarsDefaults(ctx context.Context, logger slog.Logger, variables []*tfconfig.Variable) (map[string]string, error) {
228228
// iterate through vars to get the default values for all
229229
// variables.
230230
m := make(map[string]string)
@@ -238,18 +238,21 @@ func loadVarsDefaults(variables []*tfconfig.Variable) (map[string]string, error)
238238
}
239239
m[v.Name] = strings.Trim(sv, `"`)
240240
}
241+
logger.Debug(ctx, "found default values for variables", slog.F("defaults", m))
241242
return m, nil
242243
}
243244

244245
// loadParamsDefaults returns the default values of all coder_parameter data sources data sources provided.
245-
func loadParamsDefaults(parser Parser, dataSources []*tfconfig.Resource) (map[string]string, error) {
246+
func loadParamsDefaults(ctx context.Context, logger slog.Logger, parser Parser, dataSources []*tfconfig.Resource) (map[string]string, error) {
246247
defaultsM := make(map[string]string)
248+
var skipped []string
247249
for _, dataResource := range dataSources {
248250
if dataResource == nil {
249251
continue
250252
}
251253

252254
if dataResource.Type != "coder_parameter" {
255+
skipped = append(skipped, strings.Join([]string{"data", dataResource.Type, dataResource.Name}, "."))
253256
continue
254257
}
255258

@@ -296,6 +299,7 @@ func loadParamsDefaults(parser Parser, dataSources []*tfconfig.Resource) (map[st
296299
}
297300
}
298301
}
302+
logger.Debug(ctx, "found default values for parameters", slog.F("defaults", defaultsM), slog.F("skipped", skipped))
299303
return defaultsM, nil
300304
}
301305

provisioner/terraform/tfparse/tfparse_test.go

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
5252
type = string
5353
default = "us"
5454
}
55+
data "base" "ours" {
56+
all = true
57+
}
5558
data "coder_parameter" "az" {
5659
name = "az"
5760
type = "string"
@@ -71,6 +74,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
7174
type = string
7275
default = "us"
7376
}
77+
data "base" "ours" {
78+
all = true
79+
}
7480
data "coder_parameter" "az" {
7581
name = "az"
7682
type = "string"
@@ -91,6 +97,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
9197
type = string
9298
default = "us"
9399
}
100+
data "base" "ours" {
101+
all = true
102+
}
94103
data "coder_parameter" "az" {
95104
name = "az"
96105
type = "string"
@@ -122,6 +131,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
122131
type = string
123132
default = "eu"
124133
}
134+
data "base" "ours" {
135+
all = true
136+
}
125137
data "coder_parameter" "az" {
126138
name = "az"
127139
type = "string"
@@ -159,6 +171,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
159171
type = string
160172
default = "us"
161173
}
174+
data "base" "ours" {
175+
all = true
176+
}
162177
data "coder_parameter" "az" {
163178
name = "az"
164179
type = "string"
@@ -184,6 +199,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
184199
type = string
185200
default = "us"
186201
}
202+
data "base" "ours" {
203+
all = true
204+
}
187205
data "coder_parameter" "az" {
188206
name = "az"
189207
type = "string"
@@ -218,6 +236,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
218236
variable "notregion" {
219237
type = string
220238
}
239+
data "base" "ours" {
240+
all = true
241+
}
221242
data "coder_parameter" "az" {
222243
name = "az"
223244
type = "string"
@@ -247,6 +268,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
247268
type = string
248269
default = "us"
249270
}
271+
data "base" "ours" {
272+
all = true
273+
}
250274
data "coder_parameter" "az" {
251275
name = "az"
252276
type = "string"
@@ -280,6 +304,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
280304
type = string
281305
default = "us"
282306
}
307+
data "base" "ours" {
308+
all = true
309+
}
283310
data "coder_parameter" "az" {
284311
name = "az"
285312
type = "string"
@@ -311,6 +338,9 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
311338
type = string
312339
default = "region.us"
313340
}
341+
data "base" "ours" {
342+
all = true
343+
}
314344
data "coder_parameter" "az" {
315345
name = "az"
316346
type = "string"
@@ -334,7 +364,7 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
334364
t.Parallel()
335365
ctx := testutil.Context(t, testutil.WaitShort)
336366
tar := createTar(t, tc.files)
337-
logger := slogtest.Make(t, nil)
367+
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
338368
tags, err := tfparse.WorkspaceTagDefaultsFromFile(ctx, logger, tar, "application/x-tar")
339369
if tc.expectError != "" {
340370
require.NotNil(t, err)
@@ -348,7 +378,7 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
348378
t.Parallel()
349379
ctx := testutil.Context(t, testutil.WaitShort)
350380
zip := createZip(t, tc.files)
351-
logger := slogtest.Make(t, nil)
381+
logger := slogtest.Make(t, nil).Leveled(slog.LevelDebug)
352382
tags, err := tfparse.WorkspaceTagDefaultsFromFile(ctx, logger, zip, "application/zip")
353383
if tc.expectError != "" {
354384
require.Contains(t, err.Error(), tc.expectError)
@@ -395,8 +425,8 @@ func createZip(t testing.TB, files map[string]string) []byte {
395425
// goarch: amd64
396426
// pkg: github.com/coder/coder/v2/provisioner/terraform/tfparse
397427
// cpu: AMD EPYC 7502P 32-Core Processor
398-
// BenchmarkWorkspaceTagDefaultsFromFile/Tar-16 1077 1081951 ns/op 200754 B/op 1312 allocs/op
399-
// BenchmarkWorkspaceTagDefaultsFromFile/Zip-16 984 1187299 ns/op 249574 B/op 1369 allocs/op
428+
// BenchmarkWorkspaceTagDefaultsFromFile/Tar-16 1770 1064920 ns/op 197638 B/op 1312 allocs/op
429+
// BenchmarkWorkspaceTagDefaultsFromFile/Zip-16 954 1197070 ns/op 246819 B/op 1369 allocs/op
400430
// PASS
401431
func BenchmarkWorkspaceTagDefaultsFromFile(b *testing.B) {
402432
files := map[string]string{

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy