@@ -1378,6 +1378,139 @@ func TestAccInstance_FromSnapshotWithPrivateNetwork(t *testing.T) {
13781378 })
13791379}
13801380
1381+ func TestAccInstance_PrivateNetworkCleanup (t * testing.T ) {
1382+ tt := acctest .NewTestTools (t )
1383+ defer tt .Cleanup ()
1384+
1385+ latestEngineVersion := rdbchecks .GetLatestEngineVersion (tt , postgreSQLEngineName )
1386+
1387+ resource .ParallelTest (t , resource.TestCase {
1388+ PreCheck : func () { acctest .PreCheck (t ) },
1389+ ProviderFactories : tt .ProviderFactories ,
1390+ CheckDestroy : resource .ComposeTestCheckFunc (
1391+ rdbchecks .IsInstanceDestroyed (tt ),
1392+ vpcchecks .CheckPrivateNetworkDestroy (tt ),
1393+ ),
1394+ Steps : []resource.TestStep {
1395+ {
1396+ Config : fmt .Sprintf (`
1397+ resource "scaleway_vpc_private_network" "pn" {
1398+ name = "test-rdb-cleanup"
1399+ }
1400+
1401+ resource "scaleway_rdb_instance" "main" {
1402+ name = "test-rdb-cleanup"
1403+ node_type = "db-dev-s"
1404+ engine = %q
1405+ is_ha_cluster = false
1406+ disable_backup = true
1407+ user_name = "test_user"
1408+ password = "thiZ_is_v&ry_s3cret"
1409+ tags = ["terraform-test", "rdb-cleanup"]
1410+ volume_type = "sbs_5k"
1411+ volume_size_in_gb = 10
1412+
1413+ private_network {
1414+ pn_id = scaleway_vpc_private_network.pn.id
1415+ enable_ipam = true
1416+ }
1417+ }
1418+ ` , latestEngineVersion ),
1419+ Check : resource .ComposeTestCheckFunc (
1420+ vpcchecks .IsPrivateNetworkPresent (tt , "scaleway_vpc_private_network.pn" ),
1421+ isInstancePresent (tt , "scaleway_rdb_instance.main" ),
1422+ resource .TestCheckResourceAttr ("scaleway_rdb_instance.main" , "private_network.#" , "1" ),
1423+ resource .TestCheckResourceAttr ("scaleway_rdb_instance.main" , "private_network.0.enable_ipam" , "true" ),
1424+ resource .TestCheckResourceAttrPair ("scaleway_rdb_instance.main" , "private_network.0.pn_id" , "scaleway_vpc_private_network.pn" , "id" ),
1425+ ),
1426+ },
1427+ },
1428+ })
1429+ }
1430+
1431+ func TestAccInstance_EndpointErrorHandling (t * testing.T ) {
1432+ tt := acctest .NewTestTools (t )
1433+ defer tt .Cleanup ()
1434+
1435+ latestEngineVersion := rdbchecks .GetLatestEngineVersion (tt , postgreSQLEngineName )
1436+
1437+ resource .ParallelTest (t , resource.TestCase {
1438+ PreCheck : func () { acctest .PreCheck (t ) },
1439+ ProviderFactories : tt .ProviderFactories ,
1440+ CheckDestroy : resource .ComposeTestCheckFunc (
1441+ rdbchecks .IsInstanceDestroyed (tt ),
1442+ vpcchecks .CheckPrivateNetworkDestroy (tt ),
1443+ ),
1444+ Steps : []resource.TestStep {
1445+ {
1446+ Config : fmt .Sprintf (`
1447+ resource "scaleway_vpc_private_network" "pn" {
1448+ name = "test-rdb-error-handling"
1449+ }
1450+
1451+ resource "scaleway_rdb_instance" "main" {
1452+ name = "test-rdb-error-handling"
1453+ node_type = "db-dev-s"
1454+ engine = %q
1455+ is_ha_cluster = false
1456+ disable_backup = true
1457+ user_name = "test_user"
1458+ password = "thiZ_is_v&ry_s3cret"
1459+ tags = ["terraform-test", "rdb-error-handling"]
1460+ volume_type = "sbs_5k"
1461+ volume_size_in_gb = 10
1462+
1463+ private_network {
1464+ pn_id = scaleway_vpc_private_network.pn.id
1465+ enable_ipam = true
1466+ }
1467+ }
1468+ ` , latestEngineVersion ),
1469+ Check : resource .ComposeTestCheckFunc (
1470+ vpcchecks .IsPrivateNetworkPresent (tt , "scaleway_vpc_private_network.pn" ),
1471+ isInstancePresent (tt , "scaleway_rdb_instance.main" ),
1472+ resource .TestCheckResourceAttr ("scaleway_rdb_instance.main" , "private_network.#" , "1" ),
1473+ resource .TestCheckResourceAttr ("scaleway_rdb_instance.main" , "private_network.0.enable_ipam" , "true" ),
1474+ ),
1475+ },
1476+ // Test endpoint update to verify error handling is working
1477+ {
1478+ Config : fmt .Sprintf (`
1479+ resource "scaleway_vpc_private_network" "pn" {
1480+ name = "test-rdb-error-handling"
1481+ }
1482+
1483+ resource "scaleway_rdb_instance" "main" {
1484+ name = "test-rdb-error-handling"
1485+ node_type = "db-dev-s"
1486+ engine = %q
1487+ is_ha_cluster = false
1488+ disable_backup = true
1489+ user_name = "test_user"
1490+ password = "thiZ_is_v&ry_s3cret"
1491+ tags = ["terraform-test", "rdb-error-handling-updated"]
1492+ volume_type = "sbs_5k"
1493+ volume_size_in_gb = 10
1494+
1495+ private_network {
1496+ pn_id = scaleway_vpc_private_network.pn.id
1497+ enable_ipam = true
1498+ }
1499+
1500+ load_balancer {}
1501+ }
1502+ ` , latestEngineVersion ),
1503+ Check : resource .ComposeTestCheckFunc (
1504+ vpcchecks .IsPrivateNetworkPresent (tt , "scaleway_vpc_private_network.pn" ),
1505+ isInstancePresent (tt , "scaleway_rdb_instance.main" ),
1506+ resource .TestCheckResourceAttr ("scaleway_rdb_instance.main" , "private_network.#" , "1" ),
1507+ resource .TestCheckResourceAttr ("scaleway_rdb_instance.main" , "load_balancer.#" , "1" ),
1508+ ),
1509+ },
1510+ },
1511+ })
1512+ }
1513+
13811514func isInstancePresent (tt * acctest.TestTools , n string ) resource.TestCheckFunc {
13821515 return func (s * terraform.State ) error {
13831516 rs , ok := s .RootModule ().Resources [n ]
0 commit comments