@@ -1039,6 +1039,103 @@ func TestAccServer_WithIPAMPrivateNetwork(t *testing.T) {
10391039 })
10401040}
10411041
1042+ func TestAccServer_UpdateSubscriptionPeriod (t * testing.T ) {
1043+ tt := acctest .NewTestTools (t )
1044+ defer tt .Cleanup ()
1045+
1046+ //if !IsOfferAvailable(OfferID, "fr-par-2", tt) {
1047+ // t.Skip("Offer is out of stock")
1048+ //}
1049+
1050+ resource .ParallelTest (t , resource.TestCase {
1051+ PreCheck : func () { acctest .PreCheck (t ) },
1052+ ProviderFactories : tt .ProviderFactories ,
1053+ CheckDestroy : resource .ComposeTestCheckFunc (
1054+ baremetalchecks .CheckServerDestroy (tt ),
1055+ ),
1056+ Steps : []resource.TestStep {
1057+ {
1058+ Config : fmt .Sprintf (`
1059+
1060+ data "scaleway_baremetal_offer" "my_offer" {
1061+ zone = "fr-par-2"
1062+ name = "EM-B112X-SSD"
1063+ subscription_period = "hourly"
1064+
1065+ }
1066+
1067+ resource "scaleway_baremetal_server" "server01" {
1068+ name = "TestAccServer_UpdateSubscriptionPeriod"
1069+ offer = data.scaleway_baremetal_offer.my_offer.offer_id
1070+ zone = "fr-par-2"
1071+ install_config_afterward = true
1072+
1073+ }` ,
1074+ ),
1075+ Check : resource .ComposeTestCheckFunc (
1076+ resource .TestCheckResourceAttr ("scaleway_baremetal_server.server01" , "subscription_period" , "hourly" ),
1077+ resource .TestCheckResourceAttr ("scaleway_baremetal_server.server01" , "zone" , "fr-par-2" ),
1078+ ),
1079+ },
1080+ {
1081+ Config : fmt .Sprintf (`
1082+ data "scaleway_baremetal_offer" "my_offer" {
1083+ zone = "fr-par-2"
1084+ name = "EM-B112X-SSD"
1085+ subscription_period = "hourly"
1086+
1087+ }
1088+
1089+ data "scaleway_baremetal_offer" "my_offer_monthly" {
1090+ zone = "fr-par-2"
1091+ name = "EM-B112X-SSD"
1092+ subscription_period = "monthly"
1093+
1094+ }
1095+
1096+ resource "scaleway_baremetal_server" "server01" {
1097+ name = "TestAccServer_UpdateSubscriptionPeriod"
1098+ offer = data.scaleway_baremetal_offer.my_offer_monthly.offer_id
1099+ zone = "fr-par-2"
1100+ install_config_afterward = true
1101+
1102+ }` ,
1103+ ),
1104+ Check : resource .ComposeTestCheckFunc (
1105+ resource .TestCheckResourceAttr ("scaleway_baremetal_server.server01" , "subscription_period" , "hourly" ),
1106+ resource .TestCheckResourceAttr ("scaleway_baremetal_server.server01" , "zone" , "fr-par-2" ),
1107+ ),
1108+ },
1109+ {
1110+ Config : fmt .Sprintf (`
1111+ data "scaleway_baremetal_offer" "my_offer" {
1112+ zone = "fr-par-2"
1113+ name = "EM-B112X-SSD"
1114+ subscription_period = "hourly"
1115+
1116+ }
1117+ data "scaleway_baremetal_offer" "my_offer_monthly" {
1118+ zone = "fr-par-2"
1119+ name = "EM-B112X-SSD"
1120+ subscription_period = "monthly"
1121+
1122+ }
1123+
1124+ resource "scaleway_baremetal_server" "server01" {
1125+ name = "Test_UpdateSubscriptionPeriod"
1126+ offer = data.scaleway_baremetal_offer.my_offer.offer_id
1127+ zone = "fr-par-2"
1128+ install_config_afterward = true
1129+
1130+ }` ,
1131+ ),
1132+ ExpectError : regexp .MustCompile ("invalid plan transition: you cannot transition from a monthly plan to an hourly plan. Only the reverse (hourly to monthly) is supported. Please update your configuration accordingly" ),
1133+ },
1134+ },
1135+ })
1136+
1137+ }
1138+
10421139func testAccCheckBaremetalServerExists (tt * acctest.TestTools , n string ) resource.TestCheckFunc {
10431140 return func (s * terraform.State ) error {
10441141 rs , ok := s .RootModule ().Resources [n ]
0 commit comments