@@ -258,6 +258,9 @@ func SetResource(
258
258
out += fmt .Sprintf (
259
259
"%sif %s != nil {\n " , indent , sourceAdaptedVarName ,
260
260
)
261
+ qualifiedTargetVar := fmt .Sprintf (
262
+ "%s.%s" , targetAdaptedVarName , f .Names .Camel ,
263
+ )
261
264
262
265
switch sourceMemberShape .Type {
263
266
case "list" , "structure" , "map" :
@@ -279,19 +282,15 @@ func SetResource(
279
282
indentLevel + 1 ,
280
283
)
281
284
out += setResourceForScalar (
282
- cfg , r ,
283
- f .Names .Camel ,
284
- targetAdaptedVarName ,
285
+ qualifiedTargetVar ,
285
286
memberVarName ,
286
287
sourceMemberShapeRef ,
287
288
indentLevel + 1 ,
288
289
)
289
290
}
290
291
default :
291
292
out += setResourceForScalar (
292
- cfg , r ,
293
- f .Names .Camel ,
294
- targetAdaptedVarName ,
293
+ qualifiedTargetVar ,
295
294
sourceAdaptedVarName ,
296
295
sourceMemberShapeRef ,
297
296
indentLevel + 1 ,
@@ -514,6 +513,11 @@ func setResourceReadMany(
514
513
out += fmt .Sprintf (
515
514
"%s\t if %s != nil {\n " , indent , sourceAdaptedVarName ,
516
515
)
516
+
517
+ //ex: r.ko.Spec.CacheClusterID
518
+ qualifiedTargetVar := fmt .Sprintf (
519
+ "%s.%s" , targetAdaptedVarName , f .Names .Camel ,
520
+ )
517
521
switch sourceMemberShape .Type {
518
522
case "list" , "structure" , "map" :
519
523
{
@@ -534,9 +538,7 @@ func setResourceReadMany(
534
538
indentLevel + 2 ,
535
539
)
536
540
out += setResourceForScalar (
537
- cfg , r ,
538
- f .Names .Camel ,
539
- targetAdaptedVarName ,
541
+ qualifiedTargetVar ,
540
542
memberVarName ,
541
543
sourceMemberShapeRef ,
542
544
indentLevel + 2 ,
@@ -574,9 +576,7 @@ func setResourceReadMany(
574
576
}
575
577
// r.ko.Spec.CacheClusterID = elem.CacheClusterId
576
578
out += setResourceForScalar (
577
- cfg , r ,
578
- f .Names .Camel ,
579
- targetAdaptedVarName ,
579
+ qualifiedTargetVar ,
580
580
sourceAdaptedVarName ,
581
581
sourceMemberShapeRef ,
582
582
indentLevel + 2 ,
@@ -1008,10 +1008,10 @@ func setResourceIdentifierPrimaryIdentifier(
1008
1008
indentLevel int ,
1009
1009
) string {
1010
1010
adaptedMemberPath := fmt .Sprintf ("&%s.NameOrID" , sourceVarName )
1011
+ qualifiedTargetVar := fmt .Sprintf ("%s.%s" , targetVarName , targetField .Path )
1012
+
1011
1013
return setResourceForScalar (
1012
- cfg , r ,
1013
- targetField .Path ,
1014
- targetVarName ,
1014
+ qualifiedTargetVar ,
1015
1015
adaptedMemberPath ,
1016
1016
targetField .ShapeRef ,
1017
1017
indentLevel ,
@@ -1052,10 +1052,9 @@ func setResourceIdentifierAdditionalKey(
1052
1052
// throwing an error accessible to the user
1053
1053
additionalKeyOut += fmt .Sprintf ("%s%s, %sok := %s\n " , indent , fieldIndexName , fieldIndexName , sourceAdaptedVarName )
1054
1054
additionalKeyOut += fmt .Sprintf ("%sif %sok {\n " , indent , fieldIndexName )
1055
+ qualifiedTargetVar := fmt .Sprintf ("%s.%s" , targetVarName , targetField .Path )
1055
1056
additionalKeyOut += setResourceForScalar (
1056
- cfg , r ,
1057
- targetField .Path ,
1058
- targetVarName ,
1057
+ qualifiedTargetVar ,
1059
1058
fmt .Sprintf ("&%s" , fieldIndexName ),
1060
1059
targetField .ShapeRef ,
1061
1060
indentLevel + 1 ,
@@ -1117,9 +1116,7 @@ func setResourceForContainer(
1117
1116
)
1118
1117
default :
1119
1118
return setResourceForScalar (
1120
- cfg , r ,
1121
- targetFieldName ,
1122
- targetVarName ,
1119
+ fmt .Sprintf ("%s.%s" , targetFieldName , targetVarName ),
1123
1120
sourceVarName ,
1124
1121
sourceShapeRef ,
1125
1122
indentLevel ,
@@ -1162,6 +1159,9 @@ func SetResourceForStruct(
1162
1159
out += fmt .Sprintf (
1163
1160
"%sif %s != nil {\n " , indent , sourceAdaptedVarName ,
1164
1161
)
1162
+ qualifiedTargetVar := fmt .Sprintf (
1163
+ "%s.%s" , targetVarName , cleanNames .Camel ,
1164
+ )
1165
1165
switch memberShape .Type {
1166
1166
case "list" , "structure" , "map" :
1167
1167
{
@@ -1181,19 +1181,15 @@ func SetResourceForStruct(
1181
1181
indentLevel + 1 ,
1182
1182
)
1183
1183
out += setResourceForScalar (
1184
- cfg , r ,
1185
- cleanNames .Camel ,
1186
- targetVarName ,
1184
+ qualifiedTargetVar ,
1187
1185
memberVarName ,
1188
1186
memberShapeRef ,
1189
1187
indentLevel + 1 ,
1190
1188
)
1191
1189
}
1192
1190
default :
1193
1191
out += setResourceForScalar (
1194
- cfg , r ,
1195
- cleanNames .Camel ,
1196
- targetVarName ,
1192
+ qualifiedTargetVar ,
1197
1193
sourceAdaptedVarName ,
1198
1194
memberShapeRef ,
1199
1195
indentLevel + 1 ,
@@ -1334,30 +1330,24 @@ func setResourceForMap(
1334
1330
// value to a source variable when the type of the source variable is a scalar
1335
1331
// type (not a map, slice or struct).
1336
1332
func setResourceForScalar (
1337
- cfg * ackgenconfig.Config ,
1338
- r * model.CRD ,
1339
- // The name of the Input SDK Shape member we're outputting for
1340
- targetFieldName string ,
1341
- // The variable name that we want to set a value to
1342
- targetVarName string ,
1333
+ // The fully-qualified variable that will be set to sourceVar
1334
+ targetVar string ,
1343
1335
// The struct or struct field that we access our source value from
1344
- sourceVarName string ,
1336
+ sourceVar string ,
1345
1337
shapeRef * awssdkmodel.ShapeRef ,
1346
1338
indentLevel int ,
1347
1339
) string {
1348
1340
out := ""
1349
1341
indent := strings .Repeat ("\t " , indentLevel )
1350
- setTo := sourceVarName
1342
+ setTo := sourceVar
1351
1343
shape := shapeRef .Shape
1352
1344
if shape .Type == "timestamp" {
1353
- setTo = "&metav1.Time{*" + sourceVarName + "}"
1345
+ setTo = "&metav1.Time{*" + sourceVar + "}"
1354
1346
}
1355
- targetVarPath := targetVarName
1356
- if targetFieldName != "" {
1357
- targetVarPath += "." + targetFieldName
1358
- } else {
1347
+ if strings .HasPrefix (targetVar , "." ) {
1348
+ targetVar = targetVar [1 :]
1359
1349
setTo = "*" + setTo
1360
1350
}
1361
- out += fmt .Sprintf ("%s%s = %s\n " , indent , targetVarPath , setTo )
1351
+ out += fmt .Sprintf ("%s%s = %s\n " , indent , targetVar , setTo )
1362
1352
return out
1363
1353
}
0 commit comments