Skip to content

Commit 3287e88

Browse files
authored
Merge pull request #31928 from hashicorp/b-aws_ssm_default_patch_baseline.crash
r/aws_ssm_default_patch_baseline: Fix `*conns.AWSClient is not ssm.ssmClient: missing method SSMClient` panic
2 parents 374277a + 50f392a commit 3287e88

File tree

2 files changed

+23
-22
lines changed

2 files changed

+23
-22
lines changed

.changelog/31928.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
resource/aws_ssm_default_patch_baseline: Fix `*conns.AWSClient is not ssm.ssmClient: missing method SSMClient` panic
3+
```

internal/service/ssm/default_patch_baseline.go

+20-22
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ import (
1515
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry"
1616
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1717
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
18+
"github.com/hashicorp/terraform-provider-aws/internal/conns"
1819
"github.com/hashicorp/terraform-provider-aws/internal/create"
1920
"github.com/hashicorp/terraform-provider-aws/internal/enum"
21+
"github.com/hashicorp/terraform-provider-aws/internal/errs"
2022
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
2123
tfslices "github.com/hashicorp/terraform-provider-aws/internal/slices"
2224
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
@@ -28,10 +30,6 @@ const (
2830
patchBaselineIDRegexPattern = `pb-[0-9a-f]{17}`
2931
)
3032

31-
type ssmClient interface {
32-
SSMClient() *ssm.Client
33-
}
34-
3533
// @SDKResource("aws_ssm_default_patch_baseline")
3634
func ResourceDefaultPatchBaseline() *schema.Resource {
3735
return &schema.Resource{
@@ -44,7 +42,7 @@ func ResourceDefaultPatchBaseline() *schema.Resource {
4442
id := d.Id()
4543

4644
if isPatchBaselineID(id) || isPatchBaselineARN(id) {
47-
conn := meta.(ssmClient).SSMClient()
45+
conn := meta.(*conns.AWSClient).SSMClient(ctx)
4846

4947
patchbaseline, err := findPatchBaselineByID(ctx, conn, id)
5048
if err != nil {
@@ -169,7 +167,7 @@ const (
169167
)
170168

171169
func resourceDefaultPatchBaselineCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
172-
conn := meta.(ssmClient).SSMClient()
170+
conn := meta.(*conns.AWSClient).SSMClient(ctx)
173171

174172
baselineID := d.Get("baseline_id").(string)
175173

@@ -199,7 +197,7 @@ func resourceDefaultPatchBaselineCreate(ctx context.Context, d *schema.ResourceD
199197
}
200198

201199
func resourceDefaultPatchBaselineRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
202-
conn := meta.(ssmClient).SSMClient()
200+
conn := meta.(*conns.AWSClient).SSMClient(ctx)
203201

204202
out, err := FindDefaultPatchBaseline(ctx, conn, types.OperatingSystem(d.Id()))
205203
if !d.IsNewResource() && tfresource.NotFound(err) {
@@ -245,7 +243,7 @@ func ownerIsSelfFilter() types.PatchOrchestratorFilter { //nolint:unused // This
245243
}
246244

247245
func resourceDefaultPatchBaselineDelete(ctx context.Context, d *schema.ResourceData, meta any) (diags diag.Diagnostics) {
248-
return defaultPatchBaselineRestoreOSDefault(ctx, meta.(ssmClient).SSMClient(), types.OperatingSystem(d.Id()))
246+
return defaultPatchBaselineRestoreOSDefault(ctx, meta.(*conns.AWSClient).SSMClient(ctx), types.OperatingSystem(d.Id()))
249247
}
250248

251249
func defaultPatchBaselineRestoreOSDefault(ctx context.Context, conn *ssm.Client, os types.OperatingSystem) (diags diag.Diagnostics) {
@@ -280,15 +278,15 @@ func FindDefaultPatchBaseline(ctx context.Context, conn *ssm.Client, os types.Op
280278
OperatingSystem: os,
281279
}
282280
out, err := conn.GetDefaultPatchBaseline(ctx, in)
283-
if err != nil {
284-
var nfe *types.DoesNotExistException
285-
if errors.As(err, &nfe) {
286-
return nil, &retry.NotFoundError{
287-
LastError: err,
288-
LastRequest: in,
289-
}
281+
282+
if errs.IsA[*types.DoesNotExistException](err) {
283+
return nil, &retry.NotFoundError{
284+
LastError: err,
285+
LastRequest: in,
290286
}
287+
}
291288

289+
if err != nil {
292290
return nil, err
293291
}
294292

@@ -304,15 +302,15 @@ func findPatchBaselineByID(ctx context.Context, conn *ssm.Client, id string) (*s
304302
BaselineId: aws.String(id),
305303
}
306304
out, err := conn.GetPatchBaseline(ctx, in)
307-
if err != nil {
308-
var nfe *types.DoesNotExistException
309-
if errors.As(err, &nfe) {
310-
return nil, &retry.NotFoundError{
311-
LastError: err,
312-
LastRequest: in,
313-
}
305+
306+
if errs.IsA[*types.DoesNotExistException](err) {
307+
return nil, &retry.NotFoundError{
308+
LastError: err,
309+
LastRequest: in,
314310
}
311+
}
315312

313+
if err != nil {
316314
return nil, err
317315
}
318316

0 commit comments

Comments
 (0)