Skip to content

Commit ad86d76

Browse files
authored
Merge pull request #36819 from hashicorp/b-datasync_location_object
r/datasync_location_object_storage: fix issue when updating `agent_arns`
2 parents df9b702 + afb7cba commit ad86d76

37 files changed

+850
-688
lines changed

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ require (
6464
github.com/aws/aws-sdk-go-v2/service/costandusagereportservice v1.23.4
6565
github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.4
6666
github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.4
67+
github.com/aws/aws-sdk-go-v2/service/datasync v1.36.4
6768
github.com/aws/aws-sdk-go-v2/service/datazone v1.8.0
6869
github.com/aws/aws-sdk-go-v2/service/dax v1.19.4
6970
github.com/aws/aws-sdk-go-v2/service/devopsguru v1.30.4

go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.4 h1:gSO6kMlH4cXxB
148148
github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.4/go.mod h1:UkyRWEyu3iT7oPmPri8xwPnKXqJQzSUDK9MOKq7xyZE=
149149
github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.4 h1:UBo3t3uliQIP3f8duZhmJ1Z62bz/j5o7LH8f/BTt1mU=
150150
github.com/aws/aws-sdk-go-v2/service/customerprofiles v1.36.4/go.mod h1:NGHeOPrlK475HqycL4V02Ubc67Wm+D09Xh4pO6g2c8g=
151+
github.com/aws/aws-sdk-go-v2/service/datasync v1.36.4 h1:B5avI4R+VxroaKOgZGLQW9yBj0qOHssVi+jJqSCOwEw=
152+
github.com/aws/aws-sdk-go-v2/service/datasync v1.36.4/go.mod h1:AT/X92EowfcC8JIqYweBLUN9js/BcHwzAYC5XwWtaYk=
151153
github.com/aws/aws-sdk-go-v2/service/datazone v1.8.0 h1:wJ4bVNXoSTJIMfxgebI32qbxEVLqGVdGCC2f/yyvNxs=
152154
github.com/aws/aws-sdk-go-v2/service/datazone v1.8.0/go.mod h1:6UUbvwSg1ADRoK5rYXGDWjwzSyy8mElzIhVSqCXwNYE=
153155
github.com/aws/aws-sdk-go-v2/service/dax v1.19.4 h1:S3mvtYjRVVsg1R4EuV1LWZUiD72t+pfnBbK8TL7zEmo=

internal/conns/awsclient_gen.go

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/service/datasync/agent.go

+19-19
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ import (
1111
"net/http"
1212
"time"
1313

14-
"github.com/aws/aws-sdk-go/aws"
15-
"github.com/aws/aws-sdk-go/service/datasync"
16-
"github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr"
14+
"github.com/aws/aws-sdk-go-v2/aws"
15+
"github.com/aws/aws-sdk-go-v2/service/datasync"
16+
awstypes "github.com/aws/aws-sdk-go-v2/service/datasync/types"
1717
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1818
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry"
1919
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -99,7 +99,7 @@ func ResourceAgent() *schema.Resource {
9999

100100
func resourceAgentCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
101101
var diags diag.Diagnostics
102-
conn := meta.(*conns.AWSClient).DataSyncConn(ctx)
102+
conn := meta.(*conns.AWSClient).DataSyncClient(ctx)
103103

104104
activationKey := d.Get("activation_key").(string)
105105
agentIpAddress := d.Get("ip_address").(string)
@@ -189,24 +189,24 @@ func resourceAgentCreate(ctx context.Context, d *schema.ResourceData, meta inter
189189
}
190190

191191
if v, ok := d.GetOk("security_group_arns"); ok {
192-
input.SecurityGroupArns = flex.ExpandStringSet(v.(*schema.Set))
192+
input.SecurityGroupArns = flex.ExpandStringValueSet(v.(*schema.Set))
193193
}
194194

195195
if v, ok := d.GetOk("subnet_arns"); ok {
196-
input.SubnetArns = flex.ExpandStringSet(v.(*schema.Set))
196+
input.SubnetArns = flex.ExpandStringValueSet(v.(*schema.Set))
197197
}
198198

199199
if v, ok := d.GetOk("vpc_endpoint_id"); ok {
200200
input.VpcEndpointId = aws.String(v.(string))
201201
}
202202

203-
output, err := conn.CreateAgentWithContext(ctx, input)
203+
output, err := conn.CreateAgent(ctx, input)
204204

205205
if err != nil {
206206
return sdkdiag.AppendErrorf(diags, "creating DataSync Agent: %s", err)
207207
}
208208

209-
d.SetId(aws.StringValue(output.AgentArn))
209+
d.SetId(aws.ToString(output.AgentArn))
210210

211211
_, err = tfresource.RetryWhenNotFound(ctx, d.Timeout(schema.TimeoutCreate), func() (interface{}, error) {
212212
return FindAgentByARN(ctx, conn, d.Id())
@@ -221,7 +221,7 @@ func resourceAgentCreate(ctx context.Context, d *schema.ResourceData, meta inter
221221

222222
func resourceAgentRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
223223
var diags diag.Diagnostics
224-
conn := meta.(*conns.AWSClient).DataSyncConn(ctx)
224+
conn := meta.(*conns.AWSClient).DataSyncClient(ctx)
225225

226226
output, err := FindAgentByARN(ctx, conn, d.Id())
227227

@@ -239,8 +239,8 @@ func resourceAgentRead(ctx context.Context, d *schema.ResourceData, meta interfa
239239
d.Set("name", output.Name)
240240
if plc := output.PrivateLinkConfig; plc != nil {
241241
d.Set("private_link_endpoint", plc.PrivateLinkEndpoint)
242-
d.Set("security_group_arns", flex.FlattenStringList(plc.SecurityGroupArns))
243-
d.Set("subnet_arns", flex.FlattenStringList(plc.SubnetArns))
242+
d.Set("security_group_arns", flex.FlattenStringValueList(plc.SecurityGroupArns))
243+
d.Set("subnet_arns", flex.FlattenStringValueList(plc.SubnetArns))
244244
d.Set("vpc_endpoint_id", plc.VpcEndpointId)
245245
} else {
246246
d.Set("private_link_endpoint", "")
@@ -254,15 +254,15 @@ func resourceAgentRead(ctx context.Context, d *schema.ResourceData, meta interfa
254254

255255
func resourceAgentUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
256256
var diags diag.Diagnostics
257-
conn := meta.(*conns.AWSClient).DataSyncConn(ctx)
257+
conn := meta.(*conns.AWSClient).DataSyncClient(ctx)
258258

259259
if d.HasChange("name") {
260260
input := &datasync.UpdateAgentInput{
261261
AgentArn: aws.String(d.Id()),
262262
Name: aws.String(d.Get("name").(string)),
263263
}
264264

265-
_, err := conn.UpdateAgentWithContext(ctx, input)
265+
_, err := conn.UpdateAgent(ctx, input)
266266

267267
if err != nil {
268268
return sdkdiag.AppendErrorf(diags, "updating DataSync Agent (%s): %s", d.Id(), err)
@@ -274,14 +274,14 @@ func resourceAgentUpdate(ctx context.Context, d *schema.ResourceData, meta inter
274274

275275
func resourceAgentDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
276276
var diags diag.Diagnostics
277-
conn := meta.(*conns.AWSClient).DataSyncConn(ctx)
277+
conn := meta.(*conns.AWSClient).DataSyncClient(ctx)
278278

279279
log.Printf("[DEBUG] Deleting DataSync Agent: %s", d.Id())
280-
_, err := conn.DeleteAgentWithContext(ctx, &datasync.DeleteAgentInput{
280+
_, err := conn.DeleteAgent(ctx, &datasync.DeleteAgentInput{
281281
AgentArn: aws.String(d.Id()),
282282
})
283283

284-
if tfawserr.ErrMessageContains(err, datasync.ErrCodeInvalidRequestException, "does not exist") {
284+
if errs.IsAErrorMessageContains[*awstypes.InvalidRequestException](err, "does not exist") {
285285
return diags
286286
}
287287

@@ -292,14 +292,14 @@ func resourceAgentDelete(ctx context.Context, d *schema.ResourceData, meta inter
292292
return diags
293293
}
294294

295-
func FindAgentByARN(ctx context.Context, conn *datasync.DataSync, arn string) (*datasync.DescribeAgentOutput, error) {
295+
func FindAgentByARN(ctx context.Context, conn *datasync.Client, arn string) (*datasync.DescribeAgentOutput, error) {
296296
input := &datasync.DescribeAgentInput{
297297
AgentArn: aws.String(arn),
298298
}
299299

300-
output, err := conn.DescribeAgentWithContext(ctx, input)
300+
output, err := conn.DescribeAgent(ctx, input)
301301

302-
if tfawserr.ErrMessageContains(err, datasync.ErrCodeInvalidRequestException, "does not exist") {
302+
if errs.IsAErrorMessageContains[*awstypes.InvalidRequestException](err, "does not exist") {
303303
return nil, &retry.NotFoundError{
304304
LastError: err,
305305
LastRequest: input,

internal/service/datasync/agent_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import (
1010
"testing"
1111

1212
"github.com/YakDriver/regexache"
13-
"github.com/aws/aws-sdk-go/aws"
14-
"github.com/aws/aws-sdk-go/service/datasync"
13+
"github.com/aws/aws-sdk-go-v2/aws"
14+
"github.com/aws/aws-sdk-go-v2/service/datasync"
1515
sdkacctest "github.com/hashicorp/terraform-plugin-testing/helper/acctest"
1616
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
1717
"github.com/hashicorp/terraform-plugin-testing/terraform"
@@ -205,7 +205,7 @@ func TestAccDataSyncAgent_vpcEndpointID(t *testing.T) {
205205

206206
func testAccCheckAgentDestroy(ctx context.Context) resource.TestCheckFunc {
207207
return func(s *terraform.State) error {
208-
conn := acctest.Provider.Meta().(*conns.AWSClient).DataSyncConn(ctx)
208+
conn := acctest.Provider.Meta().(*conns.AWSClient).DataSyncClient(ctx)
209209

210210
for _, rs := range s.RootModule().Resources {
211211
if rs.Type != "aws_datasync_agent" {
@@ -236,7 +236,7 @@ func testAccCheckAgentExists(ctx context.Context, n string, v *datasync.Describe
236236
return fmt.Errorf("Not found: %s", n)
237237
}
238238

239-
conn := acctest.Provider.Meta().(*conns.AWSClient).DataSyncConn(ctx)
239+
conn := acctest.Provider.Meta().(*conns.AWSClient).DataSyncClient(ctx)
240240

241241
output, err := tfdatasync.FindAgentByARN(ctx, conn, rs.Primary.ID)
242242

@@ -252,7 +252,7 @@ func testAccCheckAgentExists(ctx context.Context, n string, v *datasync.Describe
252252

253253
func testAccCheckAgentNotRecreated(i, j *datasync.DescribeAgentOutput) resource.TestCheckFunc {
254254
return func(s *terraform.State) error {
255-
if !aws.TimeValue(i.CreationTime).Equal(aws.TimeValue(j.CreationTime)) {
255+
if !aws.ToTime(i.CreationTime).Equal(aws.ToTime(j.CreationTime)) {
256256
return errors.New("DataSync Agent was recreated")
257257
}
258258

internal/service/datasync/common_fsx_protocol_functions.go

+14-14
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44
package datasync
55

66
import (
7-
"github.com/aws/aws-sdk-go/aws"
8-
"github.com/aws/aws-sdk-go/service/datasync"
7+
"github.com/aws/aws-sdk-go-v2/aws"
8+
awstypes "github.com/aws/aws-sdk-go-v2/service/datasync/types"
99
)
1010

11-
func expandProtocol(l []interface{}) *datasync.FsxProtocol {
11+
func expandProtocol(l []interface{}) *awstypes.FsxProtocol {
1212
if len(l) == 0 || l[0] == nil {
1313
return nil
1414
}
1515

1616
m := l[0].(map[string]interface{})
17-
protocol := &datasync.FsxProtocol{}
17+
protocol := &awstypes.FsxProtocol{}
1818

1919
if v, ok := m["nfs"].([]interface{}); ok {
2020
protocol.NFS = expandNFS(v)
@@ -26,7 +26,7 @@ func expandProtocol(l []interface{}) *datasync.FsxProtocol {
2626
return protocol
2727
}
2828

29-
func flattenProtocol(protocol *datasync.FsxProtocol) []interface{} {
29+
func flattenProtocol(protocol *awstypes.FsxProtocol) []interface{} {
3030
if protocol == nil {
3131
return []interface{}{}
3232
}
@@ -43,28 +43,28 @@ func flattenProtocol(protocol *datasync.FsxProtocol) []interface{} {
4343
return []interface{}{m}
4444
}
4545

46-
func expandNFS(l []interface{}) *datasync.FsxProtocolNfs {
46+
func expandNFS(l []interface{}) *awstypes.FsxProtocolNfs {
4747
if len(l) == 0 || l[0] == nil {
4848
return nil
4949
}
5050

5151
m := l[0].(map[string]interface{})
5252

53-
protocol := &datasync.FsxProtocolNfs{
53+
protocol := &awstypes.FsxProtocolNfs{
5454
MountOptions: expandNFSMountOptions(m["mount_options"].([]interface{})),
5555
}
5656

5757
return protocol
5858
}
5959

60-
func expandSMB(l []interface{}) *datasync.FsxProtocolSmb {
60+
func expandSMB(l []interface{}) *awstypes.FsxProtocolSmb {
6161
if len(l) == 0 || l[0] == nil {
6262
return nil
6363
}
6464

6565
m := l[0].(map[string]interface{})
6666

67-
protocol := &datasync.FsxProtocolSmb{
67+
protocol := &awstypes.FsxProtocolSmb{
6868
MountOptions: expandSMBMountOptions(m["mount_options"].([]interface{})),
6969
}
7070
if v, ok := m["domain"].(string); ok && v != "" {
@@ -81,7 +81,7 @@ func expandSMB(l []interface{}) *datasync.FsxProtocolSmb {
8181
}
8282

8383
// todo: go another level down?
84-
func flattenNFS(nfs *datasync.FsxProtocolNfs) []interface{} {
84+
func flattenNFS(nfs *awstypes.FsxProtocolNfs) []interface{} {
8585
if nfs == nil {
8686
return []interface{}{}
8787
}
@@ -93,7 +93,7 @@ func flattenNFS(nfs *datasync.FsxProtocolNfs) []interface{} {
9393
return []interface{}{m}
9494
}
9595

96-
func flattenSMB(smb *datasync.FsxProtocolSmb) []interface{} {
96+
func flattenSMB(smb *awstypes.FsxProtocolSmb) []interface{} {
9797
if smb == nil {
9898
return []interface{}{}
9999
}
@@ -102,13 +102,13 @@ func flattenSMB(smb *datasync.FsxProtocolSmb) []interface{} {
102102
"mount_options": flattenSMBMountOptions(smb.MountOptions),
103103
}
104104
if v := smb.Domain; v != nil {
105-
m["domain"] = aws.StringValue(v)
105+
m["domain"] = aws.ToString(v)
106106
}
107107
if v := smb.Password; v != nil {
108-
m["password"] = aws.StringValue(v)
108+
m["password"] = aws.ToString(v)
109109
}
110110
if v := smb.User; v != nil {
111-
m["user"] = aws.StringValue(v)
111+
m["user"] = aws.ToString(v)
112112
}
113113

114114
return []interface{}{m}

internal/service/datasync/generate.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) HashiCorp, Inc.
22
// SPDX-License-Identifier: MPL-2.0
33

4-
//go:generate go run ../../generate/tags/main.go -ListTags -ServiceTagsSlice -TagType=TagListEntry -UntagInTagsElem=Keys -UpdateTags
4+
//go:generate go run ../../generate/tags/main.go -AWSSDKVersion=2 -ListTags -ServiceTagsSlice -TagType=TagListEntry -UntagInTagsElem=Keys -UpdateTags
55
//go:generate go run ../../generate/servicepackage/main.go
66
// ONLY generate directives and package declaration! Do not add anything else to this file.
77

0 commit comments

Comments
 (0)