Skip to content

Commit 21f45cc

Browse files
committed
Updates diagnostics handling for apprunner
1 parent 80fa7e2 commit 21f45cc

File tree

8 files changed

+144
-93
lines changed

8 files changed

+144
-93
lines changed

.ci/semgrep/pluginsdk/diags.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ rules:
55
message: Prefer `sdkdiag.AppendFromErr` to `diag.FromErr`
66
paths:
77
exclude:
8-
- internal/service/app[l-z]*
8+
- internal/service/app[s-z]*
99
- internal/service/[b-z]*
1010
patterns:
1111
- pattern: diag.FromErr($ERR)
@@ -19,7 +19,7 @@ rules:
1919
message: Prefer `sdkdiag.AppendErrorf` to `diag.Errorf`
2020
paths:
2121
exclude:
22-
- internal/service/app[l-z]*
22+
- internal/service/app[s-z]*
2323
- internal/service/[b-z]*
2424
patterns:
2525
- pattern: diag.Errorf(...)
@@ -33,7 +33,7 @@ rules:
3333
message: Append results of $READFN to diags instead of returning directly
3434
paths:
3535
exclude:
36-
- internal/service/app[l-z]*
36+
- internal/service/app[s-z]*
3737
- internal/service/[b-z]*
3838
patterns:
3939
- pattern: return $READFN(...)
@@ -52,7 +52,7 @@ rules:
5252
include:
5353
- internal/service
5454
exclude:
55-
- internal/service/app[l-z]*
55+
- internal/service/app[s-z]*
5656
- internal/service/[b-z]*
5757
patterns:
5858
- pattern: return nil

internal/service/apprunner/auto_scaling_configuration_version.go

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1818
"github.com/hashicorp/terraform-provider-aws/internal/conns"
1919
"github.com/hashicorp/terraform-provider-aws/internal/errs"
20+
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
2021
tfslices "github.com/hashicorp/terraform-provider-aws/internal/slices"
2122
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
2223
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
@@ -97,6 +98,8 @@ func resourceAutoScalingConfigurationVersion() *schema.Resource {
9798
}
9899

99100
func resourceAutoScalingConfigurationCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
101+
var diags diag.Diagnostics
102+
100103
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
101104

102105
name := d.Get("auto_scaling_configuration_name").(string)
@@ -120,31 +123,33 @@ func resourceAutoScalingConfigurationCreate(ctx context.Context, d *schema.Resou
120123
output, err := conn.CreateAutoScalingConfiguration(ctx, input)
121124

122125
if err != nil {
123-
return diag.Errorf("creating App Runner AutoScaling Configuration Version (%s): %s", name, err)
126+
return sdkdiag.AppendErrorf(diags, "creating App Runner AutoScaling Configuration Version (%s): %s", name, err)
124127
}
125128

126129
d.SetId(aws.ToString(output.AutoScalingConfiguration.AutoScalingConfigurationArn))
127130

128131
if _, err := waitAutoScalingConfigurationCreated(ctx, conn, d.Id()); err != nil {
129-
return diag.Errorf("waiting for AutoScaling Configuration Version (%s) create: %s", d.Id(), err)
132+
return sdkdiag.AppendErrorf(diags, "waiting for AutoScaling Configuration Version (%s) create: %s", d.Id(), err)
130133
}
131134

132-
return resourceAutoScalingConfigurationRead(ctx, d, meta)
135+
return append(diags, resourceAutoScalingConfigurationRead(ctx, d, meta)...)
133136
}
134137

135138
func resourceAutoScalingConfigurationRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
139+
var diags diag.Diagnostics
140+
136141
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
137142

138143
config, err := findAutoScalingConfigurationByARN(ctx, conn, d.Id())
139144

140145
if !d.IsNewResource() && tfresource.NotFound(err) {
141146
log.Printf("[WARN] App Runner AutoScaling Configuration Version (%s) not found, removing from state", d.Id())
142147
d.SetId("")
143-
return nil
148+
return diags
144149
}
145150

146151
if err != nil {
147-
return diag.Errorf("reading App Runner AutoScaling Configuration Version (%s): %s", d.Id(), err)
152+
return sdkdiag.AppendErrorf(diags, "reading App Runner AutoScaling Configuration Version (%s): %s", d.Id(), err)
148153
}
149154

150155
d.Set("arn", config.AutoScalingConfigurationArn)
@@ -158,15 +163,17 @@ func resourceAutoScalingConfigurationRead(ctx context.Context, d *schema.Resourc
158163
d.Set("min_size", config.MinSize)
159164
d.Set("status", config.Status)
160165

161-
return nil
166+
return diags
162167
}
163168

164169
func resourceAutoScalingConfigurationUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
165170
// Tags only.
166-
return resourceAutoScalingConfigurationRead(ctx, d, meta)
171+
return resourceAutoScalingConfigurationRead(ctx, d, meta) // nosemgrep:ci.semgrep.pluginsdk.append-Read-to-diags
167172
}
168173

169174
func resourceAutoScalingConfigurationDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
175+
var diags diag.Diagnostics
176+
170177
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
171178

172179
log.Printf("[INFO] Deleting App Runner AutoScaling Configuration Version: %s", d.Id())
@@ -175,18 +182,18 @@ func resourceAutoScalingConfigurationDelete(ctx context.Context, d *schema.Resou
175182
})
176183

177184
if errs.IsA[*types.ResourceNotFoundException](err) {
178-
return nil
185+
return diags
179186
}
180187

181188
if err != nil {
182-
return diag.Errorf("deleting App Runner AutoScaling Configuration Version (%s): %s", d.Id(), err)
189+
return sdkdiag.AppendErrorf(diags, "deleting App Runner AutoScaling Configuration Version (%s): %s", d.Id(), err)
183190
}
184191

185192
if _, err := waitAutoScalingConfigurationDeleted(ctx, conn, d.Id()); err != nil {
186-
return diag.Errorf("waiting for AutoScaling Configuration Version (%s) delete: %s", d.Id(), err)
193+
return sdkdiag.AppendErrorf(diags, "waiting for AutoScaling Configuration Version (%s) delete: %s", d.Id(), err)
187194
}
188195

189-
return nil
196+
return diags
190197
}
191198

192199
func findAutoScalingConfigurationByARN(ctx context.Context, conn *apprunner.Client, arn string) (*types.AutoScalingConfiguration, error) {

internal/service/apprunner/connection.go

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/hashicorp/terraform-provider-aws/internal/conns"
1818
"github.com/hashicorp/terraform-provider-aws/internal/enum"
1919
"github.com/hashicorp/terraform-provider-aws/internal/errs"
20+
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
2021
tfslices "github.com/hashicorp/terraform-provider-aws/internal/slices"
2122
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
2223
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
@@ -66,6 +67,8 @@ func resourceConnection() *schema.Resource {
6667
}
6768

6869
func resourceConnectionCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
70+
var diags diag.Diagnostics
71+
6972
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
7073

7174
name := d.Get("connection_name").(string)
@@ -78,43 +81,47 @@ func resourceConnectionCreate(ctx context.Context, d *schema.ResourceData, meta
7881
output, err := conn.CreateConnection(ctx, input)
7982

8083
if err != nil {
81-
return diag.Errorf("creating App Runner Connection (%s): %s", name, err)
84+
return sdkdiag.AppendErrorf(diags, "creating App Runner Connection (%s): %s", name, err)
8285
}
8386

8487
d.SetId(aws.ToString(output.Connection.ConnectionName))
8588

86-
return resourceConnectionRead(ctx, d, meta)
89+
return append(diags, resourceConnectionRead(ctx, d, meta)...)
8790
}
8891

8992
func resourceConnectionRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
93+
var diags diag.Diagnostics
94+
9095
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
9196

9297
c, err := findConnectionByName(ctx, conn, d.Id())
9398

9499
if !d.IsNewResource() && tfresource.NotFound(err) {
95100
log.Printf("[WARN] App Runner Connection (%s) not found, removing from state", d.Id())
96101
d.SetId("")
97-
return nil
102+
return diags
98103
}
99104

100105
if err != nil {
101-
return diag.Errorf("reading App Runner Connection (%s): %s", d.Id(), err)
106+
return sdkdiag.AppendErrorf(diags, "reading App Runner Connection (%s): %s", d.Id(), err)
102107
}
103108

104109
d.Set("arn", c.ConnectionArn)
105110
d.Set("connection_name", c.ConnectionName)
106111
d.Set("provider_type", c.ProviderType)
107112
d.Set("status", c.Status)
108113

109-
return nil
114+
return diags
110115
}
111116

112117
func resourceConnectionUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
113118
// Tags only.
114-
return resourceConnectionRead(ctx, d, meta)
119+
return resourceConnectionRead(ctx, d, meta) // nosemgrep:ci.semgrep.pluginsdk.append-Read-to-diags
115120
}
116121

117122
func resourceConnectionDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
123+
var diags diag.Diagnostics
124+
118125
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
119126

120127
log.Printf("[INFO] Deleting App Runner Connection: %s", d.Id())
@@ -123,18 +130,18 @@ func resourceConnectionDelete(ctx context.Context, d *schema.ResourceData, meta
123130
})
124131

125132
if errs.IsA[*types.ResourceNotFoundException](err) {
126-
return nil
133+
return diags
127134
}
128135

129136
if err != nil {
130-
return diag.Errorf("deleting App Runner Connection (%s): %s", d.Id(), err)
137+
return sdkdiag.AppendErrorf(diags, "deleting App Runner Connection (%s): %s", d.Id(), err)
131138
}
132139

133140
if _, err := waitConnectionDeleted(ctx, conn, d.Id()); err != nil {
134-
return diag.Errorf("waiting for App Runner Connection (%s) delete: %s", d.Id(), err)
141+
return sdkdiag.AppendErrorf(diags, "waiting for App Runner Connection (%s) delete: %s", d.Id(), err)
135142
}
136143

137-
return nil
144+
return diags
138145
}
139146

140147
func findConnectionByName(ctx context.Context, conn *apprunner.Client, name string) (*types.ConnectionSummary, error) {

internal/service/apprunner/custom_domain_association.go

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
2020
"github.com/hashicorp/terraform-provider-aws/internal/conns"
2121
"github.com/hashicorp/terraform-provider-aws/internal/errs"
22+
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
2223
tfslices "github.com/hashicorp/terraform-provider-aws/internal/slices"
2324
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
2425
"github.com/hashicorp/terraform-provider-aws/internal/verify"
@@ -91,6 +92,8 @@ func resourceCustomDomainAssociation() *schema.Resource {
9192
}
9293

9394
func resourceCustomDomainAssociationCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
95+
var diags diag.Diagnostics
96+
9497
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
9598

9699
domainName := d.Get("domain_name").(string)
@@ -105,56 +108,60 @@ func resourceCustomDomainAssociationCreate(ctx context.Context, d *schema.Resour
105108
output, err := conn.AssociateCustomDomain(ctx, input)
106109

107110
if err != nil {
108-
return diag.Errorf("creating App Runner Custom Domain Association (%s): %s", id, err)
111+
return sdkdiag.AppendErrorf(diags, "creating App Runner Custom Domain Association (%s): %s", id, err)
109112
}
110113

111114
d.SetId(id)
112115
d.Set("dns_target", output.DNSTarget)
113116

114117
if _, err := waitCustomDomainAssociationCreated(ctx, conn, domainName, serviceARN); err != nil {
115-
return diag.Errorf("waiting for App Runner Custom Domain Association (%s) create: %s", d.Id(), err)
118+
return sdkdiag.AppendErrorf(diags, "waiting for App Runner Custom Domain Association (%s) create: %s", d.Id(), err)
116119
}
117120

118-
return resourceCustomDomainAssociationRead(ctx, d, meta)
121+
return append(diags, resourceCustomDomainAssociationRead(ctx, d, meta)...)
119122
}
120123

121124
func resourceCustomDomainAssociationRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
125+
var diags diag.Diagnostics
126+
122127
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
123128

124129
domainName, serviceArn, err := customDomainAssociationParseResourceID(d.Id())
125130
if err != nil {
126-
return diag.FromErr(err)
131+
return sdkdiag.AppendFromErr(diags, err)
127132
}
128133

129134
customDomain, err := findCustomDomainByTwoPartKey(ctx, conn, domainName, serviceArn)
130135

131136
if !d.IsNewResource() && tfresource.NotFound(err) {
132137
log.Printf("[WARN] App Runner Custom Domain Association (%s) not found, removing from state", d.Id())
133138
d.SetId("")
134-
return nil
139+
return diags
135140
}
136141

137142
if err != nil {
138-
return diag.Errorf("reading App Runner Custom Domain Association (%s): %s", d.Id(), err)
143+
return sdkdiag.AppendErrorf(diags, "reading App Runner Custom Domain Association (%s): %s", d.Id(), err)
139144
}
140145

141146
if err := d.Set("certificate_validation_records", flattenCustomDomainCertificateValidationRecords(customDomain.CertificateValidationRecords)); err != nil {
142-
return diag.Errorf("setting certificate_validation_records: %s", err)
147+
return sdkdiag.AppendErrorf(diags, "setting certificate_validation_records: %s", err)
143148
}
144149
d.Set("domain_name", customDomain.DomainName)
145150
d.Set("enable_www_subdomain", customDomain.EnableWWWSubdomain)
146151
d.Set("service_arn", serviceArn)
147152
d.Set("status", customDomain.Status)
148153

149-
return nil
154+
return diags
150155
}
151156

152157
func resourceCustomDomainAssociationDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
158+
var diags diag.Diagnostics
159+
153160
conn := meta.(*conns.AWSClient).AppRunnerClient(ctx)
154161

155162
domainName, serviceARN, err := customDomainAssociationParseResourceID(d.Id())
156163
if err != nil {
157-
return diag.FromErr(err)
164+
return sdkdiag.AppendFromErr(diags, err)
158165
}
159166

160167
log.Printf("[INFO] Deleting App Runner Custom Domain Association: %s", d.Id())
@@ -164,18 +171,18 @@ func resourceCustomDomainAssociationDelete(ctx context.Context, d *schema.Resour
164171
})
165172

166173
if errs.IsA[*types.ResourceNotFoundException](err) {
167-
return nil
174+
return diags
168175
}
169176

170177
if err != nil {
171-
return diag.Errorf("deleting App Runner Custom Domain Association (%s): %s", d.Id(), err)
178+
return sdkdiag.AppendErrorf(diags, "deleting App Runner Custom Domain Association (%s): %s", d.Id(), err)
172179
}
173180

174181
if _, err := waitCustomDomainAssociationDeleted(ctx, conn, domainName, serviceARN); err != nil {
175-
return diag.Errorf("waiting for App Runner Custom Domain Association (%s) delete: %s", d.Id(), err)
182+
return sdkdiag.AppendErrorf(diags, "waiting for App Runner Custom Domain Association (%s) delete: %s", d.Id(), err)
176183
}
177184

178-
return nil
185+
return diags
179186
}
180187

181188
const customDomainAssociationIDSeparator = ","

0 commit comments

Comments
 (0)