Skip to content

Commit d25c3f9

Browse files
authored
Merge pull request #45064 from hashicorp/f-aws_ec2_serial_console_access-add-region
r/aws_ec2_serial_console_access: Add `region` argument
2 parents 55465e9 + 8786c99 commit d25c3f9

15 files changed

Lines changed: 523 additions & 237 deletions

.changelog/45064.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
resource/aws_ec2_serial_console_access: Add `region` argument
3+
```

internal/generate/servicepackage/service_package_gen.go.gtpl

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,8 @@ inttypes.StringIdentityAttribute(
3232
{{- if .IdentityVersion }}
3333
inttypes.WithVersion({{ .IdentityVersion }}),
3434
{{ end -}}
35-
{{- if gt (len .SDKv2IdentityUpgraders) 0 }}
36-
inttypes.WithSDKv2IdentityUpgraders(
37-
{{- range .SDKv2IdentityUpgraders -}}
38-
{{.}},
39-
{{- end -}}
40-
),
35+
{{- if gt (len .SDKv2IdentityUpgraders) 0 -}}
36+
inttypes.WithSDKv2IdentityUpgraders({{- range .SDKv2IdentityUpgraders -}}{{.}},{{- end -}}),
4137
{{ end -}}
4238
{{- end }}
4339

internal/service/ec2/ec2_image_block_public_access.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import (
3030
// @Testing(hasExistsFunction=false)
3131
// @Testing(generator=false)
3232
// @Testing(identityTest=false)
33+
// @Testing(identityVersion="0;v6.0.0")
34+
// @Testing(identityVersion="1;v6.21.0")
3335
func resourceImageBlockPublicAccess() *schema.Resource {
3436
return &schema.Resource{
3537
CreateWithoutTimeout: resourceImageBlockPublicAccessPut,

internal/service/ec2/ec2_serial_console_access.go

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,26 @@ package ec2
55

66
import (
77
"context"
8+
"log"
89

910
"github.com/aws/aws-sdk-go-v2/service/ec2"
1011
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1112
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1213
"github.com/hashicorp/terraform-provider-aws/internal/conns"
1314
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
15+
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
1416
"github.com/hashicorp/terraform-provider-aws/names"
1517
)
1618

1719
// @SDKResource("aws_ec2_serial_console_access", name="Serial Console Access")
18-
// @Region(global=true)
1920
// @SingletonIdentity
21+
// @IdentityVersion(1, sdkV2IdentityUpgraders="serialConsoleAccessIdentityUpgradeV0")
2022
// @V60SDKv2Fix
2123
// @Testing(hasExistsFunction=false)
2224
// @Testing(generator=false)
25+
// @Testing(identityTest=false)
26+
// @Testing(identityVersion="0;v6.0.0")
27+
// @Testing(identityVersion="1;v6.21.0")
2328
func resourceSerialConsoleAccess() *schema.Resource {
2429
return &schema.Resource{
2530
CreateWithoutTimeout: resourceSerialConsoleAccessCreate,
@@ -39,26 +44,29 @@ func resourceSerialConsoleAccess() *schema.Resource {
3944

4045
func resourceSerialConsoleAccessCreate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
4146
var diags diag.Diagnostics
42-
4347
conn := meta.(*conns.AWSClient).EC2Client(ctx)
4448

4549
enabled := d.Get(names.AttrEnabled).(bool)
4650
if err := setSerialConsoleAccess(ctx, conn, enabled); err != nil {
4751
return sdkdiag.AppendErrorf(diags, "setting EC2 Serial Console Access (%t): %s", enabled, err)
4852
}
4953

50-
d.SetId(meta.(*conns.AWSClient).AccountID(ctx))
54+
d.SetId(meta.(*conns.AWSClient).Region(ctx))
5155

5256
return append(diags, resourceSerialConsoleAccessRead(ctx, d, meta)...)
5357
}
5458

5559
func resourceSerialConsoleAccessRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
5660
var diags diag.Diagnostics
57-
5861
conn := meta.(*conns.AWSClient).EC2Client(ctx)
5962

60-
input := ec2.GetSerialConsoleAccessStatusInput{}
61-
output, err := conn.GetSerialConsoleAccessStatus(ctx, &input)
63+
output, err := findSerialConsoleAccessStatus(ctx, conn)
64+
65+
if !d.IsNewResource() && tfresource.NotFound(err) {
66+
log.Printf("[WARN] EC2 Serial Console Access %s not found, removing from state", d.Id())
67+
d.SetId("")
68+
return diags
69+
}
6270

6371
if err != nil {
6472
return sdkdiag.AppendErrorf(diags, "reading EC2 Serial Console Access: %s", err)
@@ -71,7 +79,6 @@ func resourceSerialConsoleAccessRead(ctx context.Context, d *schema.ResourceData
7179

7280
func resourceSerialConsoleAccessUpdate(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
7381
var diags diag.Diagnostics
74-
7582
conn := meta.(*conns.AWSClient).EC2Client(ctx)
7683

7784
enabled := d.Get(names.AttrEnabled).(bool)
@@ -84,7 +91,6 @@ func resourceSerialConsoleAccessUpdate(ctx context.Context, d *schema.ResourceDa
8491

8592
func resourceSerialConsoleAccessDelete(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
8693
var diags diag.Diagnostics
87-
8894
conn := meta.(*conns.AWSClient).EC2Client(ctx)
8995

9096
// Removing the resource disables serial console access.
@@ -99,12 +105,20 @@ func setSerialConsoleAccess(ctx context.Context, conn *ec2.Client, enabled bool)
99105
var err error
100106

101107
if enabled {
102-
input := ec2.EnableSerialConsoleAccessInput{}
108+
var input ec2.EnableSerialConsoleAccessInput
103109
_, err = conn.EnableSerialConsoleAccess(ctx, &input)
104110
} else {
105-
input := ec2.DisableSerialConsoleAccessInput{}
111+
var input ec2.DisableSerialConsoleAccessInput
106112
_, err = conn.DisableSerialConsoleAccess(ctx, &input)
107113
}
108114

109115
return err
110116
}
117+
118+
var serialConsoleAccessIdentityUpgradeV0 = schema.IdentityUpgrader{
119+
Version: 0,
120+
Upgrade: func(ctx context.Context, rawState map[string]any, meta any) (map[string]any, error) {
121+
rawState[names.AttrRegion] = meta.(*conns.AWSClient).Region(ctx)
122+
return rawState, nil
123+
},
124+
}

internal/service/ec2/ec2_serial_console_access_data_source.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"context"
88
"time"
99

10-
"github.com/aws/aws-sdk-go-v2/service/ec2"
1110
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1211
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1312
"github.com/hashicorp/terraform-provider-aws/internal/conns"
@@ -34,11 +33,9 @@ func dataSourceSerialConsoleAccess() *schema.Resource {
3433
}
3534
func dataSourceSerialConsoleAccessRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
3635
var diags diag.Diagnostics
37-
3836
conn := meta.(*conns.AWSClient).EC2Client(ctx)
3937

40-
input := ec2.GetSerialConsoleAccessStatusInput{}
41-
output, err := conn.GetSerialConsoleAccessStatus(ctx, &input)
38+
output, err := findSerialConsoleAccessStatus(ctx, conn)
4239

4340
if err != nil {
4441
return sdkdiag.AppendErrorf(diags, "reading EC2 Serial Console Access: %s", err)

internal/service/ec2/ec2_serial_console_access_identity_gen_test.go

Lines changed: 0 additions & 199 deletions
This file was deleted.

0 commit comments

Comments
 (0)