Skip to content

Commit bfd6f04

Browse files
authored
fix(instance): fix placement group renaming (#673)
1 parent df8b502 commit bfd6f04

File tree

6 files changed

+3362
-4
lines changed

6 files changed

+3362
-4
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ require (
66
github.com/google/go-cmp v0.5.2
77
github.com/hashicorp/go-retryablehttp v0.6.7
88
github.com/hashicorp/terraform-plugin-sdk/v2 v2.2.0
9-
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20201012095732-98ec365545de
9+
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20201106174615-fd524d38cee8
1010
github.com/stretchr/testify v1.6.1
1111
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a // indirect
1212
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,8 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
299299
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
300300
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20201012095732-98ec365545de h1:yhT7zTv3WAMD3S3GqkpAFIL8O76emUsBKsiBcVBb4Bg=
301301
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20201012095732-98ec365545de/go.mod h1:CJJ5VAbozOl0yEw7nHB9+7BXTJbIn6h7W+f6Gau5IP8=
302+
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20201106174615-fd524d38cee8 h1:OUM8gK4Frdx3yhDJWQSToADtrvCTGaZXYrm6O3j3JaQ=
303+
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20201106174615-fd524d38cee8/go.mod h1:CJJ5VAbozOl0yEw7nHB9+7BXTJbIn6h7W+f6Gau5IP8=
302304
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
303305
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
304306
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=

scaleway/resource_instance_placement_group.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,16 +118,27 @@ func resourceScalewayInstancePlacementGroupUpdate(ctx context.Context, d *schema
118118
req := &instance.UpdatePlacementGroupRequest{
119119
Zone: zone,
120120
PlacementGroupID: ID,
121-
PolicyMode: instance.PlacementGroupPolicyMode(d.Get("policy_mode").(string)),
122-
PolicyType: instance.PlacementGroupPolicyType(d.Get("policy_type").(string)),
123121
}
124122

125-
hasChanged := d.HasChanges("policy_mode", "policy_type")
123+
hasChanged := false
126124

127125
if d.HasChange("name") {
128126
req.Name = expandStringPtr(d.Get("name").(string))
129127
hasChanged = true
130128
}
129+
130+
if d.HasChange("policy_mode") {
131+
policyMode := instance.PlacementGroupPolicyMode(d.Get("policy_mode").(string))
132+
req.PolicyMode = &policyMode
133+
hasChanged = true
134+
}
135+
136+
if d.HasChange("policy_type") {
137+
policyType := instance.PlacementGroupPolicyType(d.Get("policy_type").(string))
138+
req.PolicyType = &policyType
139+
hasChanged = true
140+
}
141+
131142
if hasChanged {
132143
_, err = instanceAPI.UpdatePlacementGroup(req, scw.WithContext(ctx))
133144
if err != nil {

scaleway/resource_instance_placement_group_test.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,48 @@ func TestAccScalewayInstancePlacementGroup_Basic(t *testing.T) {
8888
})
8989
}
9090

91+
func TestAccScalewayInstancePlacementGroup_Rename(t *testing.T) {
92+
tt := NewTestTools(t)
93+
defer tt.Cleanup()
94+
resource.ParallelTest(t, resource.TestCase{
95+
PreCheck: func() { testAccPreCheck(t) },
96+
ProviderFactories: tt.ProviderFactories,
97+
CheckDestroy: testAccCheckScalewayInstancePlacementGroupDestroy(tt),
98+
Steps: []resource.TestStep{
99+
{
100+
Config: `
101+
resource "scaleway_instance_placement_group" "base" {
102+
name = "foo"
103+
policy_mode = "enforced"
104+
policy_type = "low_latency"
105+
}
106+
107+
resource "scaleway_instance_server" "base" {
108+
type = "DEV1-S"
109+
image = "ubuntu_focal"
110+
placement_group_id = "${scaleway_instance_placement_group.base.id}"
111+
}`,
112+
Check: resource.ComposeTestCheckFunc(
113+
testAccCheckScalewayInstancePlacementGroupExists(tt, "scaleway_instance_placement_group.base"),
114+
resource.TestCheckResourceAttr("scaleway_instance_placement_group.base", "name", "foo"),
115+
),
116+
},
117+
{
118+
Config: `
119+
resource "scaleway_instance_placement_group" "base" {
120+
name = "bar"
121+
policy_mode = "enforced"
122+
policy_type = "low_latency"
123+
}`,
124+
Check: resource.ComposeTestCheckFunc(
125+
testAccCheckScalewayInstancePlacementGroupExists(tt, "scaleway_instance_placement_group.base"),
126+
resource.TestCheckResourceAttr("scaleway_instance_placement_group.base", "name", "bar"),
127+
),
128+
},
129+
},
130+
})
131+
}
132+
91133
func testAccCheckScalewayInstancePlacementGroupExists(tt *TestTools, n string) resource.TestCheckFunc {
92134
return func(s *terraform.State) error {
93135
rs, ok := s.RootModule().Resources[n]

scaleway/resource_instance_server.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ func resourceScalewayInstanceServer() *schema.Resource {
186186
"bootscript_id": {
187187
Type: schema.TypeString,
188188
Optional: true,
189+
Computed: true,
189190
Description: "ID of the target bootscript (set boot_type to bootscript)",
190191
ValidateFunc: validationUUID(),
191192
},

0 commit comments

Comments
 (0)