Skip to content

Commit 11f604e

Browse files
committed
odb network id from ARN
1 parent 39fdf54 commit 11f604e

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

internal/service/odb/network_peering_connection.go

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier"
2222
"github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier"
2323

24+
"github.com/aws/aws-sdk-go-v2/aws/arn"
2425
"github.com/hashicorp/terraform-plugin-framework/types"
2526
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry"
2627
"github.com/hashicorp/terraform-provider-aws/internal/conns"
@@ -212,7 +213,7 @@ func (r *resourceNetworkPeeringConnection) Read(ctx context.Context, req resourc
212213
return
213214
}
214215

215-
odbNetworks, err := conn.ListOdbNetworks(ctx, &odb.ListOdbNetworksInput{})
216+
odbNetworkARNParsed, err := arn.Parse(*out.OdbNetworkArn)
216217
if err != nil {
217218
resp.Diagnostics.AddError(
218219
create.ProblemStandardMessage(names.ODB, create.ErrActionReading, ResNameNetworkPeeringConnection, state.OdbPeeringConnectionId.ValueString(), err),
@@ -221,24 +222,17 @@ func (r *resourceNetworkPeeringConnection) Read(ctx context.Context, req resourc
221222
return
222223
}
223224

224-
var odbNetworkId *string = nil
225-
for _, tempOdbNetwork := range odbNetworks.OdbNetworks {
226-
if *tempOdbNetwork.OdbNetworkArn == *out.OdbNetworkArn {
227-
odbNetworkId = tempOdbNetwork.OdbNetworkId
228-
}
229-
}
230-
if odbNetworkId == nil {
225+
peerVpcARN, err := arn.Parse(*out.PeerNetworkArn)
226+
if err != nil {
231227
resp.Diagnostics.AddError(
232228
create.ProblemStandardMessage(names.ODB, create.ErrActionReading, ResNameNetworkPeeringConnection, state.OdbPeeringConnectionId.ValueString(), err),
233229
err.Error(),
234230
)
235231
return
236232
}
237-
238-
peerVpcId := strings.Split(*out.PeerNetworkArn, "/")[1]
239-
state.PeerNetworkId = types.StringValue(peerVpcId)
233+
state.PeerNetworkId = types.StringValue(strings.Split(peerVpcARN.Resource, "/")[1])
240234
state.CreatedAt = types.StringValue(out.CreatedAt.Format(time.RFC3339))
241-
state.OdbNetworkId = types.StringValue(*odbNetworkId)
235+
state.OdbNetworkId = types.StringValue(strings.Split(odbNetworkARNParsed.Resource, "/")[1])
242236

243237
resp.Diagnostics.Append(flex.Flatten(ctx, out, &state, flex.WithIgnoredFieldNamesAppend("CreatedAt"),
244238
flex.WithIgnoredFieldNamesAppend("PeerNetworkId"), flex.WithIgnoredFieldNamesAppend("OdbNetworkId"))...)
@@ -267,8 +261,28 @@ func (r *resourceNetworkPeeringConnection) Update(ctx context.Context, req resou
267261
)
268262
return
269263
}
270-
plan.CreatedAt = types.StringValue(updatedOdbNetPeeringConn.CreatedAt.Format(time.RFC3339))
271-
resp.Diagnostics.Append(flex.Flatten(ctx, updatedOdbNetPeeringConn, &plan, flex.WithIgnoredFieldNamesAppend("CreatedAt"))...)
264+
odbNetworkARNParsed, err := arn.Parse(*updatedOdbNetPeeringConn.OdbNetworkArn)
265+
if err != nil {
266+
resp.Diagnostics.AddError(
267+
create.ProblemStandardMessage(names.ODB, create.ErrActionReading, ResNameNetworkPeeringConnection, state.OdbPeeringConnectionId.ValueString(), err),
268+
err.Error(),
269+
)
270+
return
271+
}
272+
273+
peerVpcARN, err := arn.Parse(*updatedOdbNetPeeringConn.PeerNetworkArn)
274+
if err != nil {
275+
resp.Diagnostics.AddError(
276+
create.ProblemStandardMessage(names.ODB, create.ErrActionReading, ResNameNetworkPeeringConnection, state.OdbPeeringConnectionId.ValueString(), err),
277+
err.Error(),
278+
)
279+
return
280+
}
281+
state.PeerNetworkId = types.StringValue(strings.Split(peerVpcARN.Resource, "/")[1])
282+
state.CreatedAt = types.StringValue(updatedOdbNetPeeringConn.CreatedAt.Format(time.RFC3339))
283+
state.OdbNetworkId = types.StringValue(strings.Split(odbNetworkARNParsed.Resource, "/")[1])
284+
resp.Diagnostics.Append(flex.Flatten(ctx, updatedOdbNetPeeringConn, &plan, flex.WithIgnoredFieldNamesAppend("CreatedAt"), flex.WithIgnoredFieldNamesAppend("CreatedAt"),
285+
flex.WithIgnoredFieldNamesAppend("PeerNetworkId"), flex.WithIgnoredFieldNamesAppend("OdbNetworkId"))...)
272286
if resp.Diagnostics.HasError() {
273287
return
274288
}

0 commit comments

Comments
 (0)