0
0
mirror of https://github.com/bpg/terraform-provider-proxmox.git synced 2025-06-30 18:42:58 +00:00
terraform-provider-proxmox/fwprovider/resource_options_test.go
Pavel Boldyrev a0d9300f0f
chore: refactor container acc test (#1408)
+ beautify test output on CI

---------

Signed-off-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com>
2024-06-24 23:08:59 -04:00

173 lines
7.1 KiB
Go

//go:build acceptance || all
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package fwprovider_test
import (
"fmt"
"testing"
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/bpg/terraform-provider-proxmox/fwprovider/test"
)
const accTestClusterOptionsName = "proxmox_virtual_environment_cluster_options.test_options"
func TestAccResourceClusterOptions(t *testing.T) {
t.Parallel()
te := test.InitEnvironment(t)
resource.Test(
t, resource.TestCase{
ProtoV6ProviderFactories: te.AccProviders,
Steps: []resource.TestStep{
// Create and Read testing
{
Config: testAccResourceClusterOptionsCreatedConfig(),
Check: testAccResourceClusterOptionsCreatedCheck(),
},
// ImportState testing
{
ResourceName: accTestClusterOptionsName,
ImportState: true,
ImportStateVerify: true,
},
// Update testing
{
Config: testAccResourceClusterOptionsUpdatedConfig(),
Check: testAccResourceClusterOptionsUpdatedCheck(),
},
},
},
)
}
func testAccResourceClusterOptionsCreatedConfig() string {
return fmt.Sprintf(
`
resource "proxmox_virtual_environment_cluster_options" "test_options" {
bandwidth_limit_default = 666666
bandwidth_limit_migration = 555554
crs_ha = "static"
email_from = "example@example.com"
ha_shutdown_policy = "freeze"
http_proxy = "http://example.com"
keyboard = "pl"
language = "en"
max_workers = 5
migration_cidr = "10.0.0.0/8"
migration_type = "secure"
bandwidth_limit_restore = 777777
next_id = {
lower = %d
upper = %d
}
notify = {
ha_fencing_mode = "never"
ha_fencing_target = "default-matcher"
package_updates = "always"
package_updates_target = "default-matcher"
replication = "always"
replication_target = "default-matcher"
}
}
`,
100,
999999999,
)
}
func testAccResourceClusterOptionsCreatedCheck() resource.TestCheckFunc {
return resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(accTestClusterOptionsName, "bandwidth_limit_default", "666666"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "bandwidth_limit_migration", "555554"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "bandwidth_limit_restore", "777777"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "crs_ha", "static"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "email_from", "example@example.com"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "ha_shutdown_policy", "freeze"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "http_proxy", "http://example.com"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "id", "cluster"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "keyboard", "pl"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "language", "en"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "max_workers", "5"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "migration_cidr", "10.0.0.0/8"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "migration_type", "secure"),
resource.TestCheckResourceAttr(
accTestClusterOptionsName,
"next_id.lower",
fmt.Sprintf("%d", 100),
),
resource.TestCheckResourceAttr(
accTestClusterOptionsName,
"next_id.upper",
fmt.Sprintf("%d", 999999999),
),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.ha_fencing_mode", "never"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.ha_fencing_target", "default-matcher"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.package_updates", "always"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.package_updates_target", "default-matcher"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.replication", "always"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.replication_target", "default-matcher"),
resource.TestCheckNoResourceAttr(accTestClusterOptionsName, "bandwidth_limit_move"),
)
}
func testAccResourceClusterOptionsUpdatedConfig() string {
return `
resource "proxmox_virtual_environment_cluster_options" "test_options" {
bandwidth_limit_default = 333333
bandwidth_limit_migration = 111111
email_from = "ged@gont.earthsea"
language = "en"
max_workers = 6
migration_cidr = "10.0.0.1/8"
migration_type = "secure"
next_id = {
lower = 555
upper = 666
}
notify = {
ha_fencing_mode = "always"
ha_fencing_target = "custom-matcher"
package_updates = "auto"
package_updates_target = "custom-matcher"
replication = "never"
replication_target = "custom-matcher"
}
}
`
}
func testAccResourceClusterOptionsUpdatedCheck() resource.TestCheckFunc {
return resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(accTestClusterOptionsName, "bandwidth_limit_default", "333333"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "bandwidth_limit_migration", "111111"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "email_from", "ged@gont.earthsea"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "id", "cluster"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "language", "en"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "max_workers", "6"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "migration_cidr", "10.0.0.1/8"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "migration_type", "secure"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "next_id.lower", "555"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "next_id.upper", "666"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.ha_fencing_mode", "always"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.ha_fencing_target", "custom-matcher"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.package_updates", "auto"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.package_updates_target", "custom-matcher"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.replication", "never"),
resource.TestCheckResourceAttr(accTestClusterOptionsName, "notify.replication_target", "custom-matcher"),
resource.TestCheckNoResourceAttr(accTestClusterOptionsName, "bandwidth_limit_move"),
resource.TestCheckNoResourceAttr(accTestClusterOptionsName, "crs_ha"),
resource.TestCheckNoResourceAttr(accTestClusterOptionsName, "ha_shutdown_policy"),
resource.TestCheckNoResourceAttr(accTestClusterOptionsName, "http_proxy"),
resource.TestCheckNoResourceAttr(accTestClusterOptionsName, "keyboard"),
)
}