Skip to content

Commit a0641c0

Browse files
authored
Merge branch 'master' into fix/mnq-queue-nats-credentials-parsing
2 parents 669d562 + 1abfcce commit a0641c0

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

scaleway/resource_vpc_private_network.go

+40-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package scaleway
22

33
import (
44
"context"
5+
"fmt"
56
"time"
67

78
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -10,6 +11,7 @@ import (
1011
v1 "github.com/scaleway/scaleway-sdk-go/api/vpc/v1"
1112
v2 "github.com/scaleway/scaleway-sdk-go/api/vpc/v2"
1213
"github.com/scaleway/scaleway-sdk-go/scw"
14+
validator "github.com/scaleway/scaleway-sdk-go/validation"
1315
)
1416

1517
func resourceScalewayVPCPrivateNetwork() *schema.Resource {
@@ -19,7 +21,44 @@ func resourceScalewayVPCPrivateNetwork() *schema.Resource {
1921
UpdateContext: resourceScalewayVPCPrivateNetworkUpdate,
2022
DeleteContext: resourceScalewayVPCPrivateNetworkDelete,
2123
Importer: &schema.ResourceImporter{
22-
StateContext: schema.ImportStatePassthroughContext,
24+
StateContext: func(ctx context.Context, d *schema.ResourceData, m interface{}) ([]*schema.ResourceData, error) {
25+
id := d.Id()
26+
27+
location, _, err := parseLocalizedID(id)
28+
if err != nil {
29+
return nil, err
30+
}
31+
32+
switch {
33+
case validator.IsZone(location):
34+
err := d.Set("zone", location)
35+
if err != nil {
36+
return nil, err
37+
}
38+
err = d.Set("is_regional", false)
39+
if err != nil {
40+
return nil, err
41+
}
42+
case validator.IsRegion(location):
43+
err := d.Set("region", location)
44+
if err != nil {
45+
return nil, err
46+
}
47+
err = d.Set("is_regional", true)
48+
if err != nil {
49+
return nil, err
50+
}
51+
default:
52+
return nil, fmt.Errorf("invalid location. Expected either a 'region' or 'zone'")
53+
}
54+
55+
diags := resourceScalewayVPCPrivateNetworkRead(ctx, d, m)
56+
if diags.HasError() {
57+
return nil, fmt.Errorf("failed to read resource: %v", diags)
58+
}
59+
60+
return []*schema.ResourceData{d}, nil
61+
},
2362
},
2463
SchemaVersion: 0,
2564
Schema: map[string]*schema.Schema{

0 commit comments

Comments
 (0)