Skip to content

Commit 961c089

Browse files
committed
feat(codegen): pass sdk client to custom hashing functions
1 parent b22bf32 commit 961c089

File tree

3 files changed

+39
-39
lines changed

3 files changed

+39
-39
lines changed

pkg/translate/terraform_provider/funcs.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,9 @@ const copyToPangoTmpl = `
266266
return diags
267267
}
268268
{{- if eq $.Spec.ModelOrObject "Model" }}
269-
diags.Append(object.CopyToPango(ctx, ancestors, &{{ $result }}_entry, ev)...)
269+
diags.Append(object.CopyToPango(ctx, client, ancestors, &{{ $result }}_entry, ev)...)
270270
{{- else }}
271-
diags.Append(object.CopyToPango(ctx, append(ancestors, o), &{{ $result }}_entry, ev)...)
271+
diags.Append(object.CopyToPango(ctx, client, append(ancestors, o), &{{ $result }}_entry, ev)...)
272272
{{- end }}
273273
if diags.HasError() {
274274
return diags
@@ -295,7 +295,7 @@ const copyToPangoTmpl = `
295295
}
296296
for _, elt := range {{ $tfEntries }} {
297297
var entry *{{ $pangoType }}
298-
diags.Append(elt.CopyToPango(ctx, append(ancestors, elt), &entry, ev)...)
298+
diags.Append(elt.CopyToPango(ctx, client, append(ancestors, elt), &entry, ev)...)
299299
if diags.HasError() {
300300
return diags
301301
}
@@ -341,7 +341,7 @@ const copyToPangoTmpl = `
341341
{{- if eq .Encryption.HashingType "client" }}
342342
stateValue, found := ev.GetPlaintextValue(valueKey)
343343
if !found || stateValue != o.{{ .TerraformName.CamelCase }}.Value{{ CamelCaseType .Type }}() {
344-
hashed, err := {{ .Encryption.HashingFunc }}(o.{{ .TerraformName.CamelCase }}.Value{{ CamelCaseType .Type }}())
344+
hashed, err := {{ .Encryption.HashingFunc }}(ctx, client, o.{{ .TerraformName.CamelCase }}.Value{{ CamelCaseType .Type }}())
345345
if err != nil {
346346
diags.AddError("Failed to hash sensitive value", err.Error())
347347
return diags
@@ -378,7 +378,7 @@ const copyToPangoTmpl = `
378378
379379
{{- range .Specs }}
380380
{{- $spec := . }}
381-
func (o *{{ .TerraformType }}{{ .ModelOrObject }}) CopyToPango(ctx context.Context, ancestors []Ancestor, obj **{{ .PangoReturnType }}, ev *EncryptedValuesManager) diag.Diagnostics {
381+
func (o *{{ .TerraformType }}{{ .ModelOrObject }}) CopyToPango(ctx context.Context, client pangoutil.PangoClient, ancestors []Ancestor, obj **{{ .PangoReturnType }}, ev *EncryptedValuesManager) diag.Diagnostics {
382382
var diags diag.Diagnostics
383383
{{- range .Params }}
384384
{{- $terraformType := printf "%s%s" $spec.TerraformType .TerraformName.CamelCase }}
@@ -531,7 +531,7 @@ var {{ .TerraformName.LowerCamelCase }}_list types.Set
531531
entry = {{ $tfEntries }}[idx]
532532
}
533533
534-
diags.Append(entry.CopyFromPango(ctx, append(ancestors, entry), &elt, ev)...)
534+
diags.Append(entry.CopyFromPango(ctx, client, append(ancestors, entry), &elt, ev)...)
535535
if diags.HasError() {
536536
return diags
537537
}
@@ -612,9 +612,9 @@ var {{ .TerraformName.LowerCamelCase }}_list types.Set
612612
{{ $result }}_object := types.ObjectNull({{ $result }}_obj.AttributeTypes())
613613
if obj.{{ .PangoName.CamelCase }} != nil {
614614
{{- if eq $.Spec.ModelOrObject "Model" }}
615-
diags.Append({{ $result }}_obj.CopyFromPango(ctx, ancestors, obj.{{ .PangoName.CamelCase }}, ev)...)
615+
diags.Append({{ $result }}_obj.CopyFromPango(ctx, client, ancestors, obj.{{ .PangoName.CamelCase }}, ev)...)
616616
{{- else }}
617-
diags.Append({{ $result }}_obj.CopyFromPango(ctx, append(ancestors, o), obj.{{ .PangoName.CamelCase }}, ev)...)
617+
diags.Append({{ $result }}_obj.CopyFromPango(ctx, client, append(ancestors, o), obj.{{ .PangoName.CamelCase }}, ev)...)
618618
{{- end }}
619619
if diags.HasError() {
620620
return diags
@@ -725,7 +725,7 @@ var {{ .TerraformName.LowerCamelCase }}_list types.Set
725725
{{- range .Specs }}
726726
{{- $spec := . }}
727727
{{ $terraformType := printf "%s%s" .TerraformType .ModelOrObject }}
728-
func (o *{{ $terraformType }}) CopyFromPango(ctx context.Context, ancestors []Ancestor, obj *{{ .PangoReturnType }}, ev *EncryptedValuesManager) diag.Diagnostics {
728+
func (o *{{ $terraformType }}) CopyFromPango(ctx context.Context, client pangoutil.PangoClient, ancestors []Ancestor, obj *{{ .PangoReturnType }}, ev *EncryptedValuesManager) diag.Diagnostics {
729729
var diags diag.Diagnostics
730730
731731
{{- template "terraformSetElementsAs" $spec }}

pkg/translate/terraform_provider/template.go

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ entries := make([]*{{ $resourceSDKStructName }}, len(elements))
503503
idx := 0
504504
for name, elt := range elements {
505505
var entry *{{ .resourceSDKName }}.{{ .EntryOrConfig }}
506-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
506+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &entry, ev)...)
507507
if resp.Diagnostics.HasError() {
508508
return
509509
}
@@ -521,7 +521,7 @@ if resp.Diagnostics.HasError() {
521521
entries := make([]*{{ $resourceSDKStructName }}, len(elements))
522522
for idx, elt := range elements {
523523
var entry *{{ .resourceSDKName }}.{{ .EntryOrConfig }}
524-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
524+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &entry, ev)...)
525525
if resp.Diagnostics.HasError() {
526526
return
527527
}
@@ -549,7 +549,7 @@ for _, elt := range created {
549549
}
550550
var object {{ $resourceTFStructName }}
551551
object.name = elt.Name
552-
resp.Diagnostics.Append(object.CopyFromPango(ctx, nil, elt, ev)...)
552+
resp.Diagnostics.Append(object.CopyFromPango(ctx, r.client, nil, elt, ev)...)
553553
if resp.Diagnostics.HasError() {
554554
return
555555
}
@@ -575,7 +575,7 @@ for _, elt := range created {
575575
}
576576
577577
var object {{ $resourceTFStructName }}
578-
resp.Diagnostics.Append(object.CopyFromPango(ctx, nil, elt, ev)...)
578+
resp.Diagnostics.Append(object.CopyFromPango(ctx, r.client, nil, elt, ev)...)
579579
if resp.Diagnostics.HasError() {
580580
return
581581
}
@@ -627,7 +627,7 @@ if resp.Diagnostics.HasError() {
627627
entries := make([]*{{ $resourceSDKStructName }}, len(elements))
628628
for idx, elt := range elements {
629629
var entry *{{ $resourceSDKStructName }}
630-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
630+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &entry, ev)...)
631631
if resp.Diagnostics.HasError() {
632632
return
633633
}
@@ -662,7 +662,7 @@ if err != nil {
662662
objects := make([]{{ $resourceTFStructName }}, len(processed))
663663
for idx, elt := range processed {
664664
var object {{ $resourceTFStructName }}
665-
copy_diags := object.CopyFromPango(ctx, nil, elt, ev)
665+
copy_diags := object.CopyFromPango(ctx, r.client, nil, elt, ev)
666666
resp.Diagnostics.Append(copy_diags...)
667667
if resp.Diagnostics.HasError() {
668668
return
@@ -719,7 +719,7 @@ const resourceCreateFunction = `
719719
720720
// Load the desired config.
721721
var obj *{{ .resourceSDKName }}.{{ .EntryOrConfig }}
722-
resp.Diagnostics.Append(state.CopyToPango(ctx, nil, &obj, ev)...)
722+
resp.Diagnostics.Append(state.CopyToPango(ctx, r.client, nil, &obj, ev)...)
723723
if resp.Diagnostics.HasError() {
724724
return
725725
}
@@ -763,7 +763,7 @@ const resourceCreateFunction = `
763763
{{- end }}
764764
765765
766-
resp.Diagnostics.Append(state.CopyFromPango(ctx, nil, created, ev)...)
766+
resp.Diagnostics.Append(state.CopyFromPango(ctx, r.client, nil, created, ev)...)
767767
if resp.Diagnostics.HasError() {
768768
return
769769
}
@@ -823,7 +823,7 @@ if len(elements) == 0 || resp.Diagnostics.HasError() {
823823
entries := make([]*{{ $resourceSDKStructName }}, 0, len(elements))
824824
for name, elt := range elements {
825825
var entry *{{ $resourceSDKStructName }}
826-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
826+
resp.Diagnostics.Append(elt.CopyToPango(ctx, o.client, nil, &entry, ev)...)
827827
if resp.Diagnostics.HasError() {
828828
return
829829
}
@@ -840,7 +840,7 @@ if resp.Diagnostics.HasError() {
840840
entries := make([]*{{ $resourceSDKStructName }}, 0, len(elements))
841841
for _, elt := range elements {
842842
var entry *{{ $resourceSDKStructName }}
843-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
843+
resp.Diagnostics.Append(elt.CopyToPango(ctx, o.client, nil, &entry, ev)...)
844844
if resp.Diagnostics.HasError() {
845845
return
846846
}
@@ -869,7 +869,7 @@ objects := make(map[string]{{ $resourceTFStructName }})
869869
for _, elt := range readEntries {
870870
var object {{ $resourceTFStructName }}
871871
object.name = elt.Name
872-
resp.Diagnostics.Append(object.CopyFromPango(ctx, nil, elt, ev)...)
872+
resp.Diagnostics.Append(object.CopyFromPango(ctx, o.client, nil, elt, ev)...)
873873
if resp.Diagnostics.HasError() {
874874
return
875875
}
@@ -879,7 +879,7 @@ for _, elt := range readEntries {
879879
objects := make([]{{ $resourceTFStructName }}, len(readEntries))
880880
for idx, elt := range readEntries {
881881
var object {{ $resourceTFStructName }}
882-
resp.Diagnostics.Append(object.CopyFromPango(ctx, nil, elt, ev)...)
882+
resp.Diagnostics.Append(object.CopyFromPango(ctx, o.client, nil, elt, ev)...)
883883
if resp.Diagnostics.HasError() {
884884
return
885885
}
@@ -963,7 +963,7 @@ if resp.Diagnostics.HasError() || len(elements) == 0 {
963963
entries := make([]*{{ $resourceSDKStructName }}, 0, len(elements))
964964
for _, elt := range elements {
965965
var entry *{{ $resourceSDKStructName }}
966-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
966+
resp.Diagnostics.Append(elt.CopyToPango(ctx, o.client, nil, &entry, ev)...)
967967
if resp.Diagnostics.HasError() {
968968
return
969969
}
@@ -1001,7 +1001,7 @@ if err != nil {
10011001
var objects []{{ $resourceTFStructName }}
10021002
for _, elt := range readEntries {
10031003
var object {{ $resourceTFStructName }}
1004-
err := object.CopyFromPango(ctx, nil, elt, ev)
1004+
err := object.CopyFromPango(ctx, o.client, nil, elt, ev)
10051005
resp.Diagnostics.Append(err...)
10061006
if resp.Diagnostics.HasError() {
10071007
return
@@ -1077,7 +1077,7 @@ const resourceReadFunction = `
10771077
return
10781078
}
10791079
1080-
copy_diags := state.CopyFromPango(ctx, nil, object, ev)
1080+
copy_diags := state.CopyFromPango(ctx, o.client, nil, object, ev)
10811081
resp.Diagnostics.Append(copy_diags...)
10821082
10831083
/*
@@ -1135,7 +1135,7 @@ stateEntries := make([]*{{ $resourceSDKStructName }}, len(elements))
11351135
idx := 0
11361136
for name, elt := range elements {
11371137
var entry *{{ .resourceSDKName }}.{{ .EntryOrConfig }}
1138-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
1138+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &entry, ev)...)
11391139
if resp.Diagnostics.HasError() {
11401140
return
11411141
}
@@ -1153,7 +1153,7 @@ if resp.Diagnostics.HasError() {
11531153
stateEntries := make([]*{{ $resourceSDKStructName }}, len(elements))
11541154
for idx, elt := range elements {
11551155
var entry *{{ $resourceSDKStructName }}
1156-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
1156+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &entry, ev)...)
11571157
if resp.Diagnostics.HasError() {
11581158
return
11591159
}
@@ -1200,7 +1200,7 @@ planEntries := make([]*{{ $resourceSDKStructName }}, len(elements))
12001200
idx = 0
12011201
for name, elt := range elements {
12021202
entry, _ := existingEntriesByName[name]
1203-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
1203+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &entry, ev)...)
12041204
if resp.Diagnostics.HasError() {
12051205
return
12061206
}
@@ -1213,7 +1213,7 @@ for name, elt := range elements {
12131213
var planEntries []*{{ $resourceSDKStructName }}
12141214
for _, elt := range elements {
12151215
existingEntry, _ := existingEntriesByName[elt.Name.ValueString()]
1216-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &existingEntry, ev)...)
1216+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &existingEntry, ev)...)
12171217
if resp.Diagnostics.HasError() {
12181218
return
12191219
}
@@ -1233,7 +1233,7 @@ objects := make(map[string]*{{ $resourceTFStructName }}, len(processed))
12331233
for _, elt := range processed {
12341234
var object {{ $resourceTFStructName }}
12351235
object.name = elt.Name
1236-
copy_diags := object.CopyFromPango(ctx, nil, elt, ev)
1236+
copy_diags := object.CopyFromPango(ctx, r.client, nil, elt, ev)
12371237
resp.Diagnostics.Append(copy_diags...)
12381238
if resp.Diagnostics.HasError() {
12391239
return
@@ -1244,7 +1244,7 @@ for _, elt := range processed {
12441244
objects := make([]*{{ $resourceTFStructName }}, len(processed))
12451245
for idx, elt := range processed {
12461246
var object {{ $resourceTFStructName }}
1247-
resp.Diagnostics.Append(object.CopyFromPango(ctx, nil, elt, ev)...)
1247+
resp.Diagnostics.Append(object.CopyFromPango(ctx, r.client, nil, elt, ev)...)
12481248
if resp.Diagnostics.HasError() {
12491249
return
12501250
}
@@ -1301,7 +1301,7 @@ if resp.Diagnostics.HasError() {
13011301
stateEntries := make([]*{{ $resourceSDKStructName }}, len(elements))
13021302
for idx, elt := range elements {
13031303
var entry *{{ $resourceSDKStructName }}
1304-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
1304+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &entry, ev)...)
13051305
if resp.Diagnostics.HasError() {
13061306
return
13071307
}
@@ -1340,7 +1340,7 @@ if resp.Diagnostics.HasError() {
13401340
planEntries := make([]*{{ $resourceSDKStructName }}, len(elements))
13411341
for idx, elt := range elements {
13421342
entry, _ := existingEntriesByName[elt.Name.ValueString()]
1343-
resp.Diagnostics.Append(elt.CopyToPango(ctx, nil, &entry, ev)...)
1343+
resp.Diagnostics.Append(elt.CopyToPango(ctx, r.client, nil, &entry, ev)...)
13441344
if resp.Diagnostics.HasError() {
13451345
return
13461346
}
@@ -1361,7 +1361,7 @@ if err != nil {
13611361
objects := make([]*{{ $resourceTFStructName }}, len(processed))
13621362
for idx, elt := range processed {
13631363
var object {{ $resourceTFStructName }}
1364-
copy_diags := object.CopyFromPango(ctx, nil, elt, ev)
1364+
copy_diags := object.CopyFromPango(ctx, r.client, nil, elt, ev)
13651365
resp.Diagnostics.Append(copy_diags...)
13661366
if resp.Diagnostics.HasError() {
13671367
return
@@ -1424,7 +1424,7 @@ const resourceUpdateFunction = `
14241424
return
14251425
}
14261426
1427-
resp.Diagnostics.Append(plan.CopyToPango(ctx, nil, &obj, ev)...)
1427+
resp.Diagnostics.Append(plan.CopyToPango(ctx, r.client, nil, &obj, ev)...)
14281428
if resp.Diagnostics.HasError() {
14291429
return
14301430
}
@@ -1450,8 +1450,7 @@ const resourceUpdateFunction = `
14501450
state.Timeouts = plan.Timeouts
14511451
*/
14521452
1453-
1454-
copy_diags := plan.CopyFromPango(ctx, nil, updated, ev)
1453+
copy_diags := plan.CopyFromPango(ctx, r.client, nil, updated, ev)
14551454
resp.Diagnostics.Append(copy_diags...)
14561455
if resp.Diagnostics.HasError() {
14571456
return
@@ -1949,7 +1948,7 @@ const resourceImportStateFunctionTmpl = `
19491948
}
19501949
for _, elt := range objectNames {
19511950
object := &{{ .ListStructName }}{}
1952-
resp.Diagnostics.Append(object.CopyFromPango(ctx, nil, &{{ .PangoStructName }}{}, ev)...)
1951+
resp.Diagnostics.Append(object.CopyFromPango(ctx, r.client, nil, &{{ .PangoStructName }}{}, ev)...)
19531952
if resp.Diagnostics.HasError() {
19541953
return
19551954
}
@@ -1972,7 +1971,7 @@ const resourceImportStateFunctionTmpl = `
19721971
}
19731972
for _, elt := range objectNames {
19741973
object := &{{ .ListStructName }}{}
1975-
resp.Diagnostics.Append(object.CopyFromPango(ctx, nil, &{{ .PangoStructName }}{}, ev)...)
1974+
resp.Diagnostics.Append(object.CopyFromPango(ctx, r.client, nil, &{{ .PangoStructName }}{}, ev)...)
19761975
if resp.Diagnostics.HasError() {
19771976
return
19781977
}

pkg/translate/terraform_provider/terraform_provider_file.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,10 +255,10 @@ func (g *GenerateTerraformProvider) GenerateTerraformResource(resourceTyp proper
255255
case properties.TerraformResourceEntry, properties.TerraformResourceUuid:
256256
terraformProvider.ImportManager.AddStandardImport("encoding/base64", "")
257257
terraformProvider.ImportManager.AddOtherImport("github.com/PaloAltoNetworks/terraform-provider-panos/internal/manager", "sdkmanager")
258+
terraformProvider.ImportManager.AddSdkImport("github.com/PaloAltoNetworks/pango/util", "pangoutil")
258259
case properties.TerraformResourceConfig:
259260
terraformProvider.ImportManager.AddOtherImport("github.com/PaloAltoNetworks/terraform-provider-panos/internal/manager", "sdkmanager")
260261
case properties.TerraformResourceCustom:
261-
262262
}
263263

264264
// entry or uuid style resource
@@ -388,6 +388,7 @@ func (g *GenerateTerraformProvider) GenerateTerraformDataSource(resourceTyp prop
388388
if spec.TerraformProviderConfig.ResourceType != properties.TerraformResourceCustom {
389389
terraformProvider.ImportManager.AddStandardImport("errors", "")
390390
terraformProvider.ImportManager.AddOtherImport("github.com/PaloAltoNetworks/terraform-provider-panos/internal/manager", "sdkmanager")
391+
terraformProvider.ImportManager.AddSdkImport("github.com/PaloAltoNetworks/pango/util", "pangoutil")
391392
}
392393

393394
terraformProvider.ImportManager.AddSdkImport("github.com/PaloAltoNetworks/pango", "")

0 commit comments

Comments
 (0)