Skip to content

Commit 629b5ca

Browse files
committed
Updates diagnostics handling for appstream
1 parent 21f45cc commit 629b5ca

File tree

8 files changed

+165
-108
lines changed

8 files changed

+165
-108
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[s-z]*
8+
- internal/service/appsync
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[s-z]*
22+
- internal/service/appsync
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[s-z]*
36+
- internal/service/appsync
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[s-z]*
55+
- internal/service/appsync
5656
- internal/service/[b-z]*
5757
patterns:
5858
- pattern: return nil

internal/service/appstream/directory_config.go

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1616
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1717
"github.com/hashicorp/terraform-provider-aws/internal/conns"
18+
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
1819
"github.com/hashicorp/terraform-provider-aws/internal/flex"
1920
)
2021

@@ -70,6 +71,8 @@ func ResourceDirectoryConfig() *schema.Resource {
7071
}
7172

7273
func resourceDirectoryConfigCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
74+
var diags diag.Diagnostics
75+
7376
conn := meta.(*conns.AWSClient).AppStreamConn(ctx)
7477

7578
directoryName := d.Get("directory_name").(string)
@@ -81,39 +84,41 @@ func resourceDirectoryConfigCreate(ctx context.Context, d *schema.ResourceData,
8184

8285
output, err := conn.CreateDirectoryConfigWithContext(ctx, input)
8386
if err != nil {
84-
return diag.Errorf("creating AppStream Directory Config (%s): %s", directoryName, err)
87+
return sdkdiag.AppendErrorf(diags, "creating AppStream Directory Config (%s): %s", directoryName, err)
8588
}
8689

8790
if output == nil || output.DirectoryConfig == nil {
88-
return diag.Errorf("creating AppStream Directory Config (%s): empty response", directoryName)
91+
return sdkdiag.AppendErrorf(diags, "creating AppStream Directory Config (%s): empty response", directoryName)
8992
}
9093

9194
d.SetId(aws.StringValue(output.DirectoryConfig.DirectoryName))
9295

93-
return resourceDirectoryConfigRead(ctx, d, meta)
96+
return append(diags, resourceDirectoryConfigRead(ctx, d, meta)...)
9497
}
9598

9699
func resourceDirectoryConfigRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
100+
var diags diag.Diagnostics
101+
97102
conn := meta.(*conns.AWSClient).AppStreamConn(ctx)
98103

99104
resp, err := conn.DescribeDirectoryConfigsWithContext(ctx, &appstream.DescribeDirectoryConfigsInput{DirectoryNames: []*string{aws.String(d.Id())}})
100105

101106
if !d.IsNewResource() && tfawserr.ErrCodeEquals(err, appstream.ErrCodeResourceNotFoundException) {
102107
log.Printf("[WARN] AppStream Directory Config (%s) not found, removing from state", d.Id())
103108
d.SetId("")
104-
return nil
109+
return diags
105110
}
106111

107112
if err != nil {
108-
return diag.Errorf("reading AppStream Directory Config (%s): %s", d.Id(), err)
113+
return sdkdiag.AppendErrorf(diags, "reading AppStream Directory Config (%s): %s", d.Id(), err)
109114
}
110115

111116
if len(resp.DirectoryConfigs) == 0 {
112-
return diag.Errorf("reading AppStream Directory Config (%s): %s", d.Id(), "empty response")
117+
return sdkdiag.AppendErrorf(diags, "reading AppStream Directory Config (%s): %s", d.Id(), "empty response")
113118
}
114119

115120
if len(resp.DirectoryConfigs) > 1 {
116-
return diag.Errorf("reading AppStream Directory Config (%s): %s", d.Id(), "multiple Directory Configs found")
121+
return sdkdiag.AppendErrorf(diags, "reading AppStream Directory Config (%s): %s", d.Id(), "multiple Directory Configs found")
117122
}
118123

119124
directoryConfig := resp.DirectoryConfigs[0]
@@ -123,13 +128,15 @@ func resourceDirectoryConfigRead(ctx context.Context, d *schema.ResourceData, me
123128
d.Set("organizational_unit_distinguished_names", flex.FlattenStringSet(directoryConfig.OrganizationalUnitDistinguishedNames))
124129

125130
if err = d.Set("service_account_credentials", flattenServiceAccountCredentials(directoryConfig.ServiceAccountCredentials, d)); err != nil {
126-
return diag.Errorf("setting `%s` for AppStream Directory Config (%s): %s", "service_account_credentials", d.Id(), err)
131+
return sdkdiag.AppendErrorf(diags, "setting `%s` for AppStream Directory Config (%s): %s", "service_account_credentials", d.Id(), err)
127132
}
128133

129-
return nil
134+
return diags
130135
}
131136

132137
func resourceDirectoryConfigUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
138+
var diags diag.Diagnostics
139+
133140
conn := meta.(*conns.AWSClient).AppStreamConn(ctx)
134141
input := &appstream.UpdateDirectoryConfigInput{
135142
DirectoryName: aws.String(d.Id()),
@@ -145,13 +152,15 @@ func resourceDirectoryConfigUpdate(ctx context.Context, d *schema.ResourceData,
145152

146153
_, err := conn.UpdateDirectoryConfigWithContext(ctx, input)
147154
if err != nil {
148-
return diag.Errorf("updating AppStream Directory Config (%s): %s", d.Id(), err)
155+
return sdkdiag.AppendErrorf(diags, "updating AppStream Directory Config (%s): %s", d.Id(), err)
149156
}
150157

151-
return resourceDirectoryConfigRead(ctx, d, meta)
158+
return append(diags, resourceDirectoryConfigRead(ctx, d, meta)...)
152159
}
153160

154161
func resourceDirectoryConfigDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
162+
var diags diag.Diagnostics
163+
155164
conn := meta.(*conns.AWSClient).AppStreamConn(ctx)
156165

157166
log.Printf("[DEBUG] Deleting AppStream Directory Config: (%s)", d.Id())
@@ -160,14 +169,14 @@ func resourceDirectoryConfigDelete(ctx context.Context, d *schema.ResourceData,
160169
})
161170

162171
if tfawserr.ErrCodeEquals(err, appstream.ErrCodeResourceNotFoundException) {
163-
return nil
172+
return diags
164173
}
165174

166175
if err != nil {
167-
return diag.Errorf("deleting AppStream Directory Config (%s): %s", d.Id(), err)
176+
return sdkdiag.AppendErrorf(diags, "deleting AppStream Directory Config (%s): %s", d.Id(), err)
168177
}
169178

170-
return nil
179+
return diags
171180
}
172181

173182
func expandServiceAccountCredentials(tfList []interface{}) *appstream.ServiceAccountCredentials {

internal/service/appstream/fleet.go

Lines changed: 29 additions & 20 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/create"
22+
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
2223
"github.com/hashicorp/terraform-provider-aws/internal/flex"
2324
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
2425
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
@@ -204,6 +205,8 @@ func ResourceFleet() *schema.Resource {
204205
}
205206

206207
func resourceFleetCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
208+
var diags diag.Diagnostics
209+
207210
conn := meta.(*conns.AWSClient).AppStreamConn(ctx)
208211
input := &appstream.CreateFleetInput{
209212
Name: aws.String(d.Get("name").(string)),
@@ -292,7 +295,7 @@ func resourceFleetCreate(ctx context.Context, d *schema.ResourceData, meta inter
292295
output, err = conn.CreateFleetWithContext(ctx, input)
293296
}
294297
if err != nil {
295-
return diag.Errorf("creating Appstream Fleet (%s): %s", d.Get("name").(string), err)
298+
return sdkdiag.AppendErrorf(diags, "creating Appstream Fleet (%s): %s", d.Get("name").(string), err)
296299
}
297300

298301
d.SetId(aws.StringValue(output.Fleet.Name))
@@ -302,37 +305,39 @@ func resourceFleetCreate(ctx context.Context, d *schema.ResourceData, meta inter
302305
Name: aws.String(d.Id()),
303306
})
304307
if err != nil {
305-
return diag.Errorf("starting Appstream Fleet (%s): %s", d.Id(), err)
308+
return sdkdiag.AppendErrorf(diags, "starting Appstream Fleet (%s): %s", d.Id(), err)
306309
}
307310

308311
if _, err = waitFleetStateRunning(ctx, conn, d.Id()); err != nil {
309-
return diag.Errorf("waiting for Appstream Fleet (%s) to be running: %s", d.Id(), err)
312+
return sdkdiag.AppendErrorf(diags, "waiting for Appstream Fleet (%s) to be running: %s", d.Id(), err)
310313
}
311314

312-
return resourceFleetRead(ctx, d, meta)
315+
return append(diags, resourceFleetRead(ctx, d, meta)...)
313316
}
314317

315318
func resourceFleetRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
319+
var diags diag.Diagnostics
320+
316321
conn := meta.(*conns.AWSClient).AppStreamConn(ctx)
317322

318323
resp, err := conn.DescribeFleetsWithContext(ctx, &appstream.DescribeFleetsInput{Names: []*string{aws.String(d.Id())}})
319324

320325
if !d.IsNewResource() && tfawserr.ErrCodeEquals(err, appstream.ErrCodeResourceNotFoundException) {
321326
log.Printf("[WARN] Appstream Fleet (%s) not found, removing from state", d.Id())
322327
d.SetId("")
323-
return nil
328+
return diags
324329
}
325330

326331
if err != nil {
327-
return diag.Errorf("reading Appstream Fleet (%s): %s", d.Id(), err)
332+
return sdkdiag.AppendErrorf(diags, "reading Appstream Fleet (%s): %s", d.Id(), err)
328333
}
329334

330335
if len(resp.Fleets) == 0 {
331-
return diag.Errorf("reading Appstream Fleet (%s): %s", d.Id(), "empty response")
336+
return sdkdiag.AppendErrorf(diags, "reading Appstream Fleet (%s): %s", d.Id(), "empty response")
332337
}
333338

334339
if len(resp.Fleets) > 1 {
335-
return diag.Errorf("reading Appstream Fleet (%s): %s", d.Id(), "multiple fleets found")
340+
return sdkdiag.AppendErrorf(diags, "reading Appstream Fleet (%s): %s", d.Id(), "multiple fleets found")
336341
}
337342

338343
fleet := resp.Fleets[0]
@@ -380,10 +385,12 @@ func resourceFleetRead(ctx context.Context, d *schema.ResourceData, meta interfa
380385
d.Set("vpc_config", nil)
381386
}
382387

383-
return nil
388+
return diags
384389
}
385390

386391
func resourceFleetUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
392+
var diags diag.Diagnostics
393+
387394
conn := meta.(*conns.AWSClient).AppStreamConn(ctx)
388395
input := &appstream.UpdateFleetInput{
389396
Name: aws.String(d.Id()),
@@ -400,10 +407,10 @@ func resourceFleetUpdate(ctx context.Context, d *schema.ResourceData, meta inter
400407
Name: aws.String(d.Id()),
401408
})
402409
if err != nil {
403-
return diag.Errorf("stopping Appstream Fleet (%s): %s", d.Id(), err)
410+
return sdkdiag.AppendErrorf(diags, "stopping Appstream Fleet (%s): %s", d.Id(), err)
404411
}
405412
if _, err = waitFleetStateStopped(ctx, conn, d.Id()); err != nil {
406-
return diag.Errorf("waiting for Appstream Fleet (%s) to be stopped: %s", d.Id(), err)
413+
return sdkdiag.AppendErrorf(diags, "waiting for Appstream Fleet (%s) to be stopped: %s", d.Id(), err)
407414
}
408415
}
409416

@@ -465,7 +472,7 @@ func resourceFleetUpdate(ctx context.Context, d *schema.ResourceData, meta inter
465472

466473
_, err := conn.UpdateFleetWithContext(ctx, input)
467474
if err != nil {
468-
return diag.Errorf("updating Appstream Fleet (%s): %s", d.Id(), err)
475+
return sdkdiag.AppendErrorf(diags, "updating Appstream Fleet (%s): %s", d.Id(), err)
469476
}
470477

471478
// Start fleet workflow if stopped
@@ -474,18 +481,20 @@ func resourceFleetUpdate(ctx context.Context, d *schema.ResourceData, meta inter
474481
Name: aws.String(d.Id()),
475482
})
476483
if err != nil {
477-
return diag.Errorf("starting Appstream Fleet (%s): %s", d.Id(), err)
484+
return sdkdiag.AppendErrorf(diags, "starting Appstream Fleet (%s): %s", d.Id(), err)
478485
}
479486

480487
if _, err = waitFleetStateRunning(ctx, conn, d.Id()); err != nil {
481-
return diag.Errorf("waiting for Appstream Fleet (%s) to be running: %s", d.Id(), err)
488+
return sdkdiag.AppendErrorf(diags, "waiting for Appstream Fleet (%s) to be running: %s", d.Id(), err)
482489
}
483490
}
484491

485-
return resourceFleetRead(ctx, d, meta)
492+
return append(diags, resourceFleetRead(ctx, d, meta)...)
486493
}
487494

488495
func resourceFleetDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
496+
var diags diag.Diagnostics
497+
489498
conn := meta.(*conns.AWSClient).AppStreamConn(ctx)
490499

491500
// Stop fleet workflow
@@ -494,11 +503,11 @@ func resourceFleetDelete(ctx context.Context, d *schema.ResourceData, meta inter
494503
Name: aws.String(d.Id()),
495504
})
496505
if err != nil {
497-
return diag.Errorf("stopping Appstream Fleet (%s): %s", d.Id(), err)
506+
return sdkdiag.AppendErrorf(diags, "stopping Appstream Fleet (%s): %s", d.Id(), err)
498507
}
499508

500509
if _, err = waitFleetStateStopped(ctx, conn, d.Id()); err != nil {
501-
return diag.Errorf("waiting for Appstream Fleet (%s) to be stopped: %s", d.Id(), err)
510+
return sdkdiag.AppendErrorf(diags, "waiting for Appstream Fleet (%s) to be stopped: %s", d.Id(), err)
502511
}
503512

504513
log.Printf("[DEBUG] Deleting AppStream Fleet: (%s)", d.Id())
@@ -507,14 +516,14 @@ func resourceFleetDelete(ctx context.Context, d *schema.ResourceData, meta inter
507516
})
508517

509518
if tfawserr.ErrCodeEquals(err, appstream.ErrCodeResourceNotFoundException) {
510-
return nil
519+
return diags
511520
}
512521

513522
if err != nil {
514-
return diag.Errorf("deleting Appstream Fleet (%s): %s", d.Id(), err)
523+
return sdkdiag.AppendErrorf(diags, "deleting Appstream Fleet (%s): %s", d.Id(), err)
515524
}
516525

517-
return nil
526+
return diags
518527
}
519528

520529
func resourceFleetCustDiff(_ context.Context, diff *schema.ResourceDiff, meta interface{}) error {

0 commit comments

Comments
 (0)