Skip to content

Commit 8704db2

Browse files
authored
tgc-revival: Set the fields to state and then read state to hcl data during cai2hcl (#15975)
1 parent 9cc210e commit 8704db2

File tree

5 files changed

+14
-46
lines changed

5 files changed

+14
-46
lines changed

mmv1/products/compute/BackendService.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ custom_code:
5555
decoder: 'templates/terraform/decoders/backend_service.go.tmpl'
5656
post_create: 'templates/terraform/post_create/compute_backend_service_security_policy.go.tmpl'
5757
post_update: 'templates/terraform/post_create/compute_backend_service_security_policy.go.tmpl'
58-
tgc_decoder: 'templates/tgc_next/decoders/compute_backend_service.go.tmpl'
5958
schema_version: 1
6059
examples:
6160
- name: 'backend_service_basic'

mmv1/templates/tgc_next/cai2hcl/resource_converter.go.tmpl

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,6 @@ func (c *{{ $.ResourceName -}}Cai2hclConverter) convertResourceData(asset caiass
143143
}
144144
{{ end}}
145145

146-
{{/* Attempt to parse all self-link parameters from asset name. */}}
147-
outputFields := {{ $.OutputFieldSetStr }}
148-
utils.ParseUrlParamValuesFromAssetName(asset.Name, "{{ $.Cai2hclAssetNameTemplate }}", outputFields, hclData)
149146
{{ range $prop := $.ReadPropertiesForTgc }}
150147
{{ if $prop.FlattenObject -}}
151148
if flattenedProp := flatten{{ if $.NestedQuery -}}Nested{{end}}{{ $.ResourceName -}}{{ camelize $prop.Name "upper" -}}(res["{{ $prop.ApiName -}}"], d, config); flattenedProp != nil {
@@ -154,10 +151,22 @@ func (c *{{ $.ResourceName -}}Cai2hclConverter) convertResourceData(asset caiass
154151
}
155152
}
156153
{{- else -}}
157-
hclData["{{ underscore $prop.Name -}}"] = flatten{{ if $.NestedQuery -}}Nested{{end}}{{ $.ResourceName -}}{{ camelize $prop.Name "upper" -}}(res["{{ $prop.ApiName -}}"], d, config)
154+
if err := d.Set("{{ underscore $prop.Name -}}", flatten{{ if $.NestedQuery -}}Nested{{end}}{{ $.ResourceName -}}{{ camelize $prop.Name "upper" -}}(res["{{ $prop.ApiName -}}"], d, config)); err != nil {
155+
return nil, fmt.Errorf("Error reading {{ $.Name -}}: %s", err)
156+
}
158157
{{- end}}
159158
{{- end}}
160159

160+
for key, sch := range c.schema {
161+
if val, ok := d.GetOk(key); ok || sch.Required {
162+
hclData[key] = val
163+
}
164+
}
165+
166+
{{/* Attempt to parse all self-link parameters from asset name. */}}
167+
outputFields := {{ $.OutputFieldSetStr }}
168+
utils.ParseUrlParamValuesFromAssetName(asset.Name, "{{ $.Cai2hclAssetNameTemplate }}", outputFields, hclData)
169+
161170
ctyVal, err := utils.MapToCtyValWithSchema(hclData, c.schema)
162171
if err != nil {
163172
return nil, err
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// billing_project is the required url_param_only property, but is not in CAI asset name or data
22
// TODO: handle it in a generic way
3-
hclData["billing_project"] = "null"
3+
d.Set("billing_project", "null")
44
return res, hclData, nil

mmv1/templates/tgc_next/decoders/compute_backend_service.go.tmpl

Lines changed: 0 additions & 31 deletions
This file was deleted.

mmv1/templates/tgc_next/decoders/compute_route.tmpl

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,3 @@
1-
if v, ok := res["nextHopInstance"]; ok {
2-
val, err := tpgresource.ParseZonalFieldValue("instances", v.(string), "project", "next_hop_instance_zone", d, meta.(*transport_tpg.Config), true)
3-
if err != nil {
4-
return nil, nil, err
5-
}
6-
hclData["next_hop_instance_zone"] = val.Zone
7-
res["nextHopInstance"] = val.RelativeLink()
8-
}
9-
101
// next_hop_ip is Computed + Optional and conflict with next_hop_ilb
112
if _, ok := res["nextHopIp"]; ok {
123
if _, ok := res["nextHopIlb"]; ok {

0 commit comments

Comments
 (0)