Skip to content

Commit a3d1850

Browse files
authored
chore(ci): fix port update timeout test so that it can pass (#979)
The update timeout test for the metal_port resource was incapable of passing as written, because it did not make any changes to the port resource that would require an update. This fixes the test in question by: 1. Changing the VLAN attached to the port so that an API update is needed 2. Shortening the update timeout so that it is less likely the API will finish the update before the timeout is reached
1 parent 4f0e727 commit a3d1850

File tree

3 files changed

+20
-17
lines changed

3 files changed

+20
-17
lines changed

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ require (
2121
github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0
2222
github.com/hashicorp/terraform-plugin-testing v1.13.3
2323
github.com/packethost/packngo v0.31.0
24-
github.com/pkg/errors v0.9.1
2524
github.com/stretchr/testify v1.10.0
2625
golang.org/x/oauth2 v0.26.0
2726
)

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,6 @@ github.com/packethost/packngo v0.31.0 h1:LLH90ardhULWbagBIc3I3nl2uU75io0a7AwY6hy
188188
github.com/packethost/packngo v0.31.0/go.mod h1:Io6VJqzkiqmIEQbpOjeIw9v8q9PfcTEq8TEY/tMQsfw=
189189
github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4=
190190
github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A=
191-
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
192-
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
193191
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
194192
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
195193
github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo=

internal/resources/metal/port/resource_test.go

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
)
1919

2020
var (
21-
matchErrPortReadyTimeout = regexp.MustCompile(".* timeout while waiting for state to become 'completed'.*")
21+
matchErrPortReadyTimeout = regexp.MustCompile(".*(timeout while waiting for state|context deadline exceeded).*")
2222
)
2323

2424
func confAccMetalPort_base(name string) string {
@@ -205,7 +205,7 @@ resource "equinix_metal_vlan" "test2" {
205205
`, confAccMetalPort_base(name))
206206
}
207207

208-
func confAccMetalPort_HybridBonded_timeout(rInt int, name, createTimeout, updateTimeout string) string {
208+
func confAccMetalPort_HybridBonded_timeout(rInt int, name, attachedVlanResource, createTimeout, updateTimeout string) string {
209209
if createTimeout == "" {
210210
createTimeout = "20m"
211211
}
@@ -221,20 +221,29 @@ resource "equinix_metal_port" "bond0" {
221221
layer2 = false
222222
bonded = true
223223
reset_on_delete = true
224-
vlan_ids = [equinix_metal_vlan.test.id]
224+
vlan_ids = [%s.id]
225225
timeouts {
226226
create = "%s"
227227
update = "%s"
228228
}
229-
depends_on = [equinix_metal_vlan.test]
229+
depends_on = [
230+
equinix_metal_vlan.test,
231+
equinix_metal_vlan.test2,
232+
]
230233
}
231234
232235
resource "equinix_metal_vlan" "test" {
233236
description = "tfacc-vlan test-%d"
234237
metro = equinix_metal_device.test.metro
235238
project_id = equinix_metal_project.test.id
236239
}
237-
`, confAccMetalPort_base(name), createTimeout, updateTimeout, rInt)
240+
241+
resource "equinix_metal_vlan" "test2" {
242+
description = "tfacc-vlan test2-%d"
243+
metro = equinix_metal_device.test.metro
244+
project_id = equinix_metal_project.test.id
245+
}
246+
`, confAccMetalPort_base(name), attachedVlanResource, createTimeout, updateTimeout, rInt, rInt)
238247
}
239248

240249
func TestAccMetalPort_hybridBondedVxlan(t *testing.T) {
@@ -432,7 +441,7 @@ func TestAccMetalPortCreate_hybridBonded_timeout(t *testing.T) {
432441
CheckDestroy: testAccMetalPortDestroyed,
433442
Steps: []resource.TestStep{
434443
{
435-
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "5s", ""),
444+
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "equinix_metal_vlan.test", "5s", ""),
436445
ExpectError: matchErrPortReadyTimeout,
437446
},
438447
{
@@ -452,10 +461,10 @@ func TestAccMetalPortCreate_hybridBonded_timeout(t *testing.T) {
452461
),
453462
},
454463
{
455-
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "5s", ""),
464+
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "equinix_metal_vlan.test", "5s", ""),
456465
},
457466
{
458-
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "5s", ""),
467+
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "equinix_metal_vlan.test", "5s", ""),
459468
Destroy: true,
460469
},
461470
},
@@ -473,7 +482,7 @@ func TestAccMetalPortUpdate_hybridBonded_timeout(t *testing.T) {
473482
CheckDestroy: testAccMetalPortDestroyed,
474483
Steps: []resource.TestStep{
475484
{
476-
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "", "5s"),
485+
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "equinix_metal_vlan.test", "", "1s"),
477486
Check: resource.ComposeTestCheckFunc(
478487
resource.TestCheckResourceAttr("equinix_metal_port.bond0", "name", "bond0"),
479488
resource.TestCheckResourceAttr("equinix_metal_port.bond0", "type", "NetworkBondPort"),
@@ -484,7 +493,7 @@ func TestAccMetalPortUpdate_hybridBonded_timeout(t *testing.T) {
484493
),
485494
},
486495
{
487-
Config: confAccMetalPort_HybridBonded_timeout(rInt+1, rs, "", "5s"),
496+
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "equinix_metal_vlan.test2", "", "1s"),
488497
ExpectError: matchErrPortReadyTimeout,
489498
},
490499
{
@@ -495,10 +504,7 @@ func TestAccMetalPortUpdate_hybridBonded_timeout(t *testing.T) {
495504
),
496505
},
497506
{
498-
Config: confAccMetalPort_HybridBonded_timeout(rInt+1, rs, "", ""),
499-
},
500-
{
501-
Config: confAccMetalPort_HybridBonded_timeout(rInt+1, rs, "", ""),
507+
Config: confAccMetalPort_HybridBonded_timeout(rInt, rs, "equinix_metal_vlan.test2", "", ""),
502508
Destroy: true,
503509
},
504510
},

0 commit comments

Comments
 (0)