Skip to content

Commit c8ed37a

Browse files
authored
use Operation.ExportedName not Operation.Name (#424)
This was a nasty issue to troubleshoot. :( Turns out that for REST+XML-based APIs (such as CloudFront), the aws-sdk-go `private/model/api.Operation` objects have a `Name` field that contains crap like this: "CreateCachePolicy2020_05_31". What this means is that when looking up things like output wrapper field paths by the `Operation.Name` of "CreateCachePolicy" (from the `generator.yaml` file's `operations` map), things were failing because the `private/model/api.API:Operations` map is actually keyed by `Operation.ExportedName`, not `Operation.Name`. `Operation.ExportedName` for REST+XML APIs like CloudFront contain the proper string "CreateCachePolicy" without the date suffix. Signed-off-by: Jay Pipes <[email protected]>
1 parent 9fbf8c4 commit c8ed37a

File tree

7 files changed

+25
-25
lines changed

7 files changed

+25
-25
lines changed

pkg/config/operation.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (c *Config) OperationIsIgnored(operation *awssdkmodel.Operation) bool {
5656
if operation == nil {
5757
return true
5858
}
59-
return util.InStrings(operation.Name, c.Ignore.Operations)
59+
return util.InStrings(operation.ExportedName, c.Ignore.Operations)
6060
}
6161

6262
// UnmarshalJSON parses input for a either a string or
@@ -88,7 +88,7 @@ func (c *Config) GetOutputWrapperFieldPath(
8888
if c == nil {
8989
return nil
9090
}
91-
opConfig, found := c.Operations[op.Name]
91+
opConfig, found := c.Operations[op.ExportedName]
9292
if !found {
9393
return nil
9494
}
@@ -111,7 +111,7 @@ func (c *Config) GetSetOutputCustomMethodName(
111111
if c == nil {
112112
return nil
113113
}
114-
opConfig, found := c.Operations[op.Name]
114+
opConfig, found := c.Operations[op.ExportedName]
115115
if !found {
116116
return nil
117117
}
@@ -132,7 +132,7 @@ func (c *Config) GetCustomImplementation(
132132
return ""
133133
}
134134

135-
operationConfig, found := c.Operations[op.Name]
135+
operationConfig, found := c.Operations[op.ExportedName]
136136
if !found {
137137
return ""
138138
}
@@ -150,7 +150,7 @@ func (c *Config) GetCustomCheckRequiredFieldsMissingMethod(
150150
return ""
151151
}
152152

153-
operationConfig, found := c.Operations[op.Name]
153+
operationConfig, found := c.Operations[op.ExportedName]
154154
if !found {
155155
return ""
156156
}

pkg/config/resource.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ func (c *Config) GetAllRenames(
672672
opRenameConfigs := resourceConfig.Renames.Operations
673673
for opName, opRenameConfigs := range opRenameConfigs {
674674
for _, op := range operations {
675-
if opName != op.Name {
675+
if opName != op.ExportedName {
676676
continue
677677
}
678678
for old, new := range opRenameConfigs.InputFields {

pkg/generate/code/common.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ func FindIdentifiersInShape(
5353
}
5454

5555
// Handles field renames
56-
opType, _ := model.GetOpTypeAndResourceNameFromOpID(op.Name, r.Config())
56+
opType, _ := model.GetOpTypeAndResourceNameFromOpID(op.ExportedName, r.Config())
5757
renames := r.GetAllRenames(opType)
5858
for _, memberName := range shape.MemberNames() {
5959
lookupName := memberName
@@ -115,7 +115,7 @@ func FindPluralizedIdentifiersInShape(
115115
// renames, if applicable
116116
siRenamed := r.Config().GetResourceFieldName(
117117
r.Names.Original,
118-
op.Name,
118+
op.ExportedName,
119119
pluralize.Singular(si),
120120
)
121121
if strings.EqualFold(
@@ -188,14 +188,14 @@ func FindPrimaryIdentifierFieldNames(
188188
}
189189

190190
if crField == "" {
191-
if inSpec, inStat := r.HasMember(shapeField, op.Name); !inSpec && !inStat {
191+
if inSpec, inStat := r.HasMember(shapeField, op.ExportedName); !inSpec && !inStat {
192192
panic("Could not find corresponding spec or status field " +
193193
"for primary identifier " + shapeField)
194194
}
195195
// Fetch field name from config to apply renames, if applicable
196196
crField = cfg.GetResourceFieldName(
197197
r.Names.Original,
198-
op.Name,
198+
op.ExportedName,
199199
shapeField,
200200
)
201201
}

pkg/generate/code/set_resource.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,10 @@ func SetResource(
210210
// Handles field renames, if applicable
211211
fieldName := cfg.GetResourceFieldName(
212212
r.Names.Original,
213-
op.Name,
213+
op.ExportedName,
214214
memberName,
215215
)
216-
inSpec, inStatus := r.HasMember(fieldName, op.Name)
216+
inSpec, inStatus := r.HasMember(fieldName, op.ExportedName)
217217
if inSpec {
218218
targetAdaptedVarName += cfg.PrefixConfig.SpecField
219219
f = r.SpecFields[fieldName]
@@ -499,7 +499,7 @@ func setResourceReadMany(
499499
matchFieldNames := r.ListOpMatchFieldNames()
500500

501501
for _, mfName := range matchFieldNames {
502-
if inSpec, inStat := r.HasMember(mfName, op.Name); !inSpec && !inStat {
502+
if inSpec, inStat := r.HasMember(mfName, op.ExportedName); !inSpec && !inStat {
503503
msg := fmt.Sprintf(
504504
"Match field name %s is not in %s Spec or Status fields",
505505
mfName, r.Names.Camel,
@@ -569,10 +569,10 @@ func setResourceReadMany(
569569
// Handles field renames, if applicable
570570
fieldName := cfg.GetResourceFieldName(
571571
r.Names.Original,
572-
op.Name,
572+
op.ExportedName,
573573
memberName,
574574
)
575-
inSpec, inStatus := r.HasMember(fieldName, op.Name)
575+
inSpec, inStatus := r.HasMember(fieldName, op.ExportedName)
576576
if inSpec {
577577
targetAdaptedVarName += cfg.PrefixConfig.SpecField
578578
f = r.SpecFields[fieldName]
@@ -1045,7 +1045,7 @@ func SetResourceIdentifiers(
10451045
// Handles field renames, if applicable
10461046
fieldName := cfg.GetResourceFieldName(
10471047
r.Names.Original,
1048-
op.Name,
1048+
op.ExportedName,
10491049
memberName,
10501050
)
10511051

pkg/generate/code/set_sdk.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ func SetSDK(
168168
out += fmt.Sprintf("%s%s.SetAttributes(attrMap)\n", indent, targetVarName)
169169
}
170170

171-
opConfig, override := cfg.GetOverrideValues(op.Name)
171+
opConfig, override := cfg.GetOverrideValues(op.ExportedName)
172172
for memberIndex, memberName := range inputShape.MemberNames() {
173173
if r.UnpacksAttributesMap() && memberName == "Attributes" {
174174
continue
@@ -219,10 +219,10 @@ func SetSDK(
219219
// Handles field renames, if applicable
220220
fieldName := cfg.GetResourceFieldName(
221221
r.Names.Original,
222-
op.Name,
222+
op.ExportedName,
223223
memberName,
224224
)
225-
inSpec, inStatus := r.HasMember(fieldName, op.Name)
225+
inSpec, inStatus := r.HasMember(fieldName, op.ExportedName)
226226
if inSpec {
227227
sourceAdaptedVarName += cfg.PrefixConfig.SpecField
228228
f = r.SpecFields[fieldName]
@@ -792,7 +792,7 @@ func setSDKReadMany(
792792
indent := strings.Repeat("\t", indentLevel)
793793

794794
resVarPath := ""
795-
opConfig, override := cfg.GetOverrideValues(op.Name)
795+
opConfig, override := cfg.GetOverrideValues(op.ExportedName)
796796
var err error
797797
for memberIndex, memberName := range inputShape.MemberNames() {
798798
if override {
@@ -817,7 +817,7 @@ func setSDKReadMany(
817817
// Handles field renames, if applicable
818818
fieldName := cfg.GetResourceFieldName(
819819
r.Names.Original,
820-
op.Name,
820+
op.ExportedName,
821821
memberName,
822822
)
823823
resVarPath, err = r.GetSanitizedMemberPath(memberName, op, sourceVarName)

pkg/model/crd.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -668,13 +668,13 @@ func (r *CRD) GetSanitizedMemberPath(
668668
// Handles field renames, if applicable
669669
fieldName := cfg.GetResourceFieldName(
670670
r.Names.Original,
671-
op.Name,
671+
op.ExportedName,
672672
memberName,
673673
)
674674
cleanFieldNames := names.New(fieldName)
675675
pathFieldName := cleanFieldNames.Camel
676676

677-
inSpec, inStatus := r.HasMember(fieldName, op.Name)
677+
inSpec, inStatus := r.HasMember(fieldName, op.ExportedName)
678678
if inSpec {
679679
resVarPath = resVarPath + cfg.PrefixConfig.SpecField + "." + pathFieldName
680680
} else if inStatus {

templates/pkg/resource/sdk.go.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ func (rm *resourceManager) sdkDelete(
160160
{{ $hookCode }}
161161
{{- end }}
162162
var resp {{ .CRD.GetOutputShapeGoType .CRD.Ops.Delete }}; _ = resp;
163-
resp, err = rm.sdkapi.{{ .CRD.Ops.Delete.Name }}WithContext(ctx, input)
164-
rm.metrics.RecordAPICall("DELETE", "{{ .CRD.Ops.Delete.Name }}", err)
163+
resp, err = rm.sdkapi.{{ .CRD.Ops.Delete.ExportedName }}WithContext(ctx, input)
164+
rm.metrics.RecordAPICall("DELETE", "{{ .CRD.Ops.Delete.ExportedName }}", err)
165165
{{- if $hookCode := Hook .CRD "sdk_delete_post_request" }}
166166
{{ $hookCode }}
167167
{{- end }}

0 commit comments

Comments
 (0)