Skip to content

Commit 74588c0

Browse files
authored
Resolve issue #247 (#282)
1 parent 8f37062 commit 74588c0

File tree

5 files changed

+43
-0
lines changed

5 files changed

+43
-0
lines changed

gen/definitions/feature_templates/cisco_sig_credentials.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,22 @@ attributes:
66
- model_name: organization
77
tf_name: zscaler_organization
88
exclude_ignore: true
9+
requires_const_and_var: true
910
example: org1
1011
- model_name: partner-base-uri
1112
tf_name: zscaler_partner_base_uri
1213
exclude_ignore: true
14+
requires_const_and_var: true
1315
example: abc
1416
- model_name: username
1517
tf_name: zscaler_username
1618
exclude_ignore: true
19+
requires_const_and_var: true
1720
example: user1
1821
- model_name: password
1922
tf_name: zscaler_password
2023
exclude_ignore: true
24+
requires_const_and_var: true
2125
example: password123
2226
- model_name: cloud-gateway
2327
tf_name: zscaler_cloud_name
@@ -26,14 +30,17 @@ attributes:
2630
- model_name: partner-id
2731
tf_name: zscaler_partner_username
2832
exclude_ignore: true
33+
requires_const_and_var: true
2934
example: partner1
3035
- model_name: partner-secret
3136
tf_name: zscaler_partner_password
3237
exclude_ignore: true
38+
requires_const_and_var: true
3339
example: password123
3440
- model_name: partner-key
3541
tf_name: zscaler_partner_api_key
3642
exclude_ignore: true
43+
requires_const_and_var: true
3744
example: key123
3845
- model_name: api-key
3946
tf_name: umbrella_api_key

gen/generator.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ type YamlConfigAttribute struct {
263263
QueryParam bool `yaml:"query_param"`
264264
NoAugmentConfig bool `yaml:"no_augment_config"`
265265
TestTags []string `yaml:"test_tags"`
266+
RequiresConstAndVar bool `yaml:"requires_const_and_var"`
266267
}
267268

268269
type YamlConfigConditionalAttribute struct {

gen/schema/schema.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ attribute:
7676
query_param: bool(required=False) # Set to true if attribute is a query parameter to be included in request url
7777
no_augment_config: bool(required=False) # If true do not augment with model data
7878
test_tags: list(str(), required=False) # List of test tags, attribute is only included in acceptance tests if an environment variable with one of these tags is configured
79+
requires_const_and_var: bool(required=False) # If true will include both constant and variable values in payload
7980

8081
conditional_attribute:
8182
name: str() # Reference to other attribute

gen/templates/feature_templates/model.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ func (data {{camelCase .Name}}) toBody(ctx context.Context) string {
153153
body, _ = sjson.Set(body, path+"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}."+"vipObjectType", "{{.ObjectType}}")
154154
body, _ = sjson.Set(body, path+"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}."+"vipType", "variableName")
155155
body, _ = sjson.Set(body, path+"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}."+"vipVariableName", data.{{toGoName .TfName}}Variable.ValueString())
156+
{{- if .RequiresConstAndVar }}
157+
body, _ = sjson.Set(body, path+"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}."+"vipValue", data.{{toGoName .TfName}}.Value{{.Type}}())
158+
{{end}}
156159
} else
157160
{{- end}} if data.{{toGoName .TfName}}.IsNull() {
158161
{{- if and (not .Mandatory) (not .ExcludeIgnore)}}
@@ -167,6 +170,9 @@ func (data {{camelCase .Name}}) toBody(ctx context.Context) string {
167170
body, _ = sjson.Set(body, path+"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}."+"vipObjectType", "{{.ObjectType}}")
168171
body, _ = sjson.Set(body, path+"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}."+"vipType", "constant")
169172
body, _ = sjson.Set(body, path+"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}."+"vipValue", data.{{toGoName .TfName}}.Value{{.Type}}())
173+
{{- if and (.RequiresConstAndVar) (.Variable) }}
174+
body, _ = sjson.Set(body, path+"{{range .DataPath}}{{.}}.{{end}}{{.ModelName}}."+"vipVariableName", data.{{toGoName .TfName}}Variable.ValueString())
175+
{{end}}
170176
}
171177
{{- else if and (eq .Type "Bool") (not .NodeOnlyContainer)}}
172178
{{if .Variable}}

internal/provider/model_sdwan_cisco_sig_credentials_feature_template.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,44 +91,60 @@ func (data CiscoSIGCredentials) toBody(ctx context.Context) string {
9191
body, _ = sjson.Set(body, path+"zscaler.organization."+"vipObjectType", "object")
9292
body, _ = sjson.Set(body, path+"zscaler.organization."+"vipType", "variableName")
9393
body, _ = sjson.Set(body, path+"zscaler.organization."+"vipVariableName", data.ZscalerOrganizationVariable.ValueString())
94+
body, _ = sjson.Set(body, path+"zscaler.organization."+"vipValue", data.ZscalerOrganization.ValueString())
95+
9496
} else if data.ZscalerOrganization.IsNull() {
9597
} else {
9698
body, _ = sjson.Set(body, path+"zscaler.organization."+"vipObjectType", "object")
9799
body, _ = sjson.Set(body, path+"zscaler.organization."+"vipType", "constant")
98100
body, _ = sjson.Set(body, path+"zscaler.organization."+"vipValue", data.ZscalerOrganization.ValueString())
101+
body, _ = sjson.Set(body, path+"zscaler.organization."+"vipVariableName", data.ZscalerOrganizationVariable.ValueString())
102+
99103
}
100104

101105
if !data.ZscalerPartnerBaseUriVariable.IsNull() {
102106
body, _ = sjson.Set(body, path+"zscaler.partner-base-uri."+"vipObjectType", "object")
103107
body, _ = sjson.Set(body, path+"zscaler.partner-base-uri."+"vipType", "variableName")
104108
body, _ = sjson.Set(body, path+"zscaler.partner-base-uri."+"vipVariableName", data.ZscalerPartnerBaseUriVariable.ValueString())
109+
body, _ = sjson.Set(body, path+"zscaler.partner-base-uri."+"vipValue", data.ZscalerPartnerBaseUri.ValueString())
110+
105111
} else if data.ZscalerPartnerBaseUri.IsNull() {
106112
} else {
107113
body, _ = sjson.Set(body, path+"zscaler.partner-base-uri."+"vipObjectType", "object")
108114
body, _ = sjson.Set(body, path+"zscaler.partner-base-uri."+"vipType", "constant")
109115
body, _ = sjson.Set(body, path+"zscaler.partner-base-uri."+"vipValue", data.ZscalerPartnerBaseUri.ValueString())
116+
body, _ = sjson.Set(body, path+"zscaler.partner-base-uri."+"vipVariableName", data.ZscalerPartnerBaseUriVariable.ValueString())
117+
110118
}
111119

112120
if !data.ZscalerUsernameVariable.IsNull() {
113121
body, _ = sjson.Set(body, path+"zscaler.username."+"vipObjectType", "object")
114122
body, _ = sjson.Set(body, path+"zscaler.username."+"vipType", "variableName")
115123
body, _ = sjson.Set(body, path+"zscaler.username."+"vipVariableName", data.ZscalerUsernameVariable.ValueString())
124+
body, _ = sjson.Set(body, path+"zscaler.username."+"vipValue", data.ZscalerUsername.ValueString())
125+
116126
} else if data.ZscalerUsername.IsNull() {
117127
} else {
118128
body, _ = sjson.Set(body, path+"zscaler.username."+"vipObjectType", "object")
119129
body, _ = sjson.Set(body, path+"zscaler.username."+"vipType", "constant")
120130
body, _ = sjson.Set(body, path+"zscaler.username."+"vipValue", data.ZscalerUsername.ValueString())
131+
body, _ = sjson.Set(body, path+"zscaler.username."+"vipVariableName", data.ZscalerUsernameVariable.ValueString())
132+
121133
}
122134

123135
if !data.ZscalerPasswordVariable.IsNull() {
124136
body, _ = sjson.Set(body, path+"zscaler.password."+"vipObjectType", "object")
125137
body, _ = sjson.Set(body, path+"zscaler.password."+"vipType", "variableName")
126138
body, _ = sjson.Set(body, path+"zscaler.password."+"vipVariableName", data.ZscalerPasswordVariable.ValueString())
139+
body, _ = sjson.Set(body, path+"zscaler.password."+"vipValue", data.ZscalerPassword.ValueString())
140+
127141
} else if data.ZscalerPassword.IsNull() {
128142
} else {
129143
body, _ = sjson.Set(body, path+"zscaler.password."+"vipObjectType", "object")
130144
body, _ = sjson.Set(body, path+"zscaler.password."+"vipType", "constant")
131145
body, _ = sjson.Set(body, path+"zscaler.password."+"vipValue", data.ZscalerPassword.ValueString())
146+
body, _ = sjson.Set(body, path+"zscaler.password."+"vipVariableName", data.ZscalerPasswordVariable.ValueString())
147+
132148
}
133149

134150
if !data.ZscalerCloudNameVariable.IsNull() {
@@ -146,33 +162,45 @@ func (data CiscoSIGCredentials) toBody(ctx context.Context) string {
146162
body, _ = sjson.Set(body, path+"zscaler.partner-id."+"vipObjectType", "object")
147163
body, _ = sjson.Set(body, path+"zscaler.partner-id."+"vipType", "variableName")
148164
body, _ = sjson.Set(body, path+"zscaler.partner-id."+"vipVariableName", data.ZscalerPartnerUsernameVariable.ValueString())
165+
body, _ = sjson.Set(body, path+"zscaler.partner-id."+"vipValue", data.ZscalerPartnerUsername.ValueString())
166+
149167
} else if data.ZscalerPartnerUsername.IsNull() {
150168
} else {
151169
body, _ = sjson.Set(body, path+"zscaler.partner-id."+"vipObjectType", "object")
152170
body, _ = sjson.Set(body, path+"zscaler.partner-id."+"vipType", "constant")
153171
body, _ = sjson.Set(body, path+"zscaler.partner-id."+"vipValue", data.ZscalerPartnerUsername.ValueString())
172+
body, _ = sjson.Set(body, path+"zscaler.partner-id."+"vipVariableName", data.ZscalerPartnerUsernameVariable.ValueString())
173+
154174
}
155175

156176
if !data.ZscalerPartnerPasswordVariable.IsNull() {
157177
body, _ = sjson.Set(body, path+"zscaler.partner-secret."+"vipObjectType", "object")
158178
body, _ = sjson.Set(body, path+"zscaler.partner-secret."+"vipType", "variableName")
159179
body, _ = sjson.Set(body, path+"zscaler.partner-secret."+"vipVariableName", data.ZscalerPartnerPasswordVariable.ValueString())
180+
body, _ = sjson.Set(body, path+"zscaler.partner-secret."+"vipValue", data.ZscalerPartnerPassword.ValueString())
181+
160182
} else if data.ZscalerPartnerPassword.IsNull() {
161183
} else {
162184
body, _ = sjson.Set(body, path+"zscaler.partner-secret."+"vipObjectType", "object")
163185
body, _ = sjson.Set(body, path+"zscaler.partner-secret."+"vipType", "constant")
164186
body, _ = sjson.Set(body, path+"zscaler.partner-secret."+"vipValue", data.ZscalerPartnerPassword.ValueString())
187+
body, _ = sjson.Set(body, path+"zscaler.partner-secret."+"vipVariableName", data.ZscalerPartnerPasswordVariable.ValueString())
188+
165189
}
166190

167191
if !data.ZscalerPartnerApiKeyVariable.IsNull() {
168192
body, _ = sjson.Set(body, path+"zscaler.partner-key."+"vipObjectType", "object")
169193
body, _ = sjson.Set(body, path+"zscaler.partner-key."+"vipType", "variableName")
170194
body, _ = sjson.Set(body, path+"zscaler.partner-key."+"vipVariableName", data.ZscalerPartnerApiKeyVariable.ValueString())
195+
body, _ = sjson.Set(body, path+"zscaler.partner-key."+"vipValue", data.ZscalerPartnerApiKey.ValueString())
196+
171197
} else if data.ZscalerPartnerApiKey.IsNull() {
172198
} else {
173199
body, _ = sjson.Set(body, path+"zscaler.partner-key."+"vipObjectType", "object")
174200
body, _ = sjson.Set(body, path+"zscaler.partner-key."+"vipType", "constant")
175201
body, _ = sjson.Set(body, path+"zscaler.partner-key."+"vipValue", data.ZscalerPartnerApiKey.ValueString())
202+
body, _ = sjson.Set(body, path+"zscaler.partner-key."+"vipVariableName", data.ZscalerPartnerApiKeyVariable.ValueString())
203+
176204
}
177205

178206
if !data.UmbrellaApiKeyVariable.IsNull() {

0 commit comments

Comments
 (0)