chore: add_protocol #47

Merged
marcel.henselin merged 2 commits from chore/add_protocol into alpha 2026-02-11 09:07:39 +00:00
4 changed files with 391 additions and 710 deletions

View file

@ -1,30 +1,39 @@
# SPDX-License-Identifier: MIT name: 'Setup Go and cache dependencies'
name: 'Forgejo Actions to setup Go and cache dependencies' author: 'Forgejo authors, Marcel S. Henselin'
author: 'Forgejo authors'
description: | description: |
Wrap the setup-go with improved dependency caching. Wrap the setup-go with improved dependency caching.
inputs: inputs:
username: username:
description: 'User for which to manage the dependency cache' description: 'User for which to manage the dependency cache'
default: root default: root
go-version:
description: "go version to install"
default: '1.25'
required: true
runs: runs:
using: "composite" using: "composite"
steps: steps:
- name: "Install zstd for faster caching" - name: "Install zstd for faster caching"
shell: bash
run: | run: |
apt-get update -qq apt-get update -qq
apt-get -q install -qq -y zstd apt-get -q install -qq -y zstd
- name: "Set up Go using setup-go" - name: "Set up Go using setup-go"
uses: https://data.forgejo.org/actions/setup-go@v6 uses: https://code.forgejo.org/actions/setup-go@v6
id: go-version id: go-version
with: with:
go-version-file: "go.mod" go-version: ${{ inputs.go-version }}
check-latest: true # Always check for the latest patch release
# go-version-file: "go.mod"
# do not cache dependencies, we do this manually # do not cache dependencies, we do this manually
cache: false cache: false
- name: "Get go environment information" - name: "Get go environment information"
shell: bash
id: go-environment id: go-environment
run: | run: |
chmod 755 $HOME # ensure ${RUN_AS_USER} has permission when go is located in $HOME chmod 755 $HOME # ensure ${RUN_AS_USER} has permission when go is located in $HOME
@ -36,6 +45,7 @@ runs:
GO_VERSION: ${{ steps.go-version.outputs.go-version }} GO_VERSION: ${{ steps.go-version.outputs.go-version }}
- name: "Create cache folders with correct permissions (for non-root users)" - name: "Create cache folders with correct permissions (for non-root users)"
shell: bash
if: inputs.username != 'root' if: inputs.username != 'root'
# when the cache is restored, only the permissions of the last part are restored # when the cache is restored, only the permissions of the last part are restored
# so assuming that /home/user exists and we are restoring /home/user/go/pkg/mod, # so assuming that /home/user exists and we are restoring /home/user/go/pkg/mod,

View file

@ -146,6 +146,17 @@ jobs:
- name: Test - name: Test
run: make test run: make test
- name: Check coverage threshold
shell: bash
run: |
make coverage
COVERAGE=$(go tool cover -func=coverage.out | grep total | awk '{print $3}' | sed 's/%//')
echo "Coverage: $COVERAGE%"
if (( $(echo "$COVERAGE < 80" | bc -l) )); then
echo "Coverage is below 80%"
# exit 1
fi
- name: Archive code coverage results - name: Archive code coverage results
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:

View file

@ -143,7 +143,7 @@ func (p *Provider) createVersionsFile() error {
// Build the versions file... // Build the versions file...
version := Version{ version := Version{
Version: p.Version, Version: p.Version,
Protocols: []string{"5.1"}, Protocols: []string{"5.1", "6.0"},
Platforms: nil, Platforms: nil,
} }
for _, sum := range shasums { for _, sum := range shasums {

View file

@ -18,8 +18,8 @@ import (
"github.com/stackitcloud/stackit-sdk-go/core/utils" "github.com/stackitcloud/stackit-sdk-go/core/utils"
"github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex" "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex"
"github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/wait" "github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex/wait"
"tf-provider.git.onstackit.cloud/stackit-dev-tools/terraform-provider-stackitprivatepreview/internal/testutils"
"tf-provider.git.onstackit.cloud/stackit-dev-tools/terraform-provider-stackitprivatepreview/stackit/internal/core" "tf-provider.git.onstackit.cloud/stackit-dev-tools/terraform-provider-stackitprivatepreview/stackit/internal/core"
"tf-provider.git.onstackit.cloud/stackit-dev-tools/terraform-provider-stackitprivatepreview/stackit/internal/testutil"
) )
var ( var (
@ -30,35 +30,20 @@ var (
) )
var testConfigVarsMin = config.Variables{ var testConfigVarsMin = config.Variables{
"project_id": config.StringVariable(testutil.ProjectId), "project_id": config.StringVariable(testutils.ProjectId),
"name": config.StringVariable( "name": config.StringVariable(fmt.Sprintf("tf-acc-%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
fmt.Sprintf(
"tf-acc-%s",
acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum),
),
),
"flavor_cpu": config.IntegerVariable(4), "flavor_cpu": config.IntegerVariable(4),
"flavor_ram": config.IntegerVariable(16), "flavor_ram": config.IntegerVariable(16),
"flavor_description": config.StringVariable("SQLServer-Flex-4.16-Standard-EU01"), "flavor_description": config.StringVariable("SQLServer-Flex-4.16-Standard-EU01"),
"replicas": config.IntegerVariable(1), "replicas": config.IntegerVariable(1),
"flavor_id": config.StringVariable("4.16-Single"), "flavor_id": config.StringVariable("4.16-Single"),
"username": config.StringVariable( "username": config.StringVariable(fmt.Sprintf("tf-acc-user-%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlpha))),
fmt.Sprintf(
"tf-acc-user-%s",
acctest.RandStringFromCharSet(7, acctest.CharSetAlpha),
),
),
"role": config.StringVariable("##STACKIT_LoginManager##"), "role": config.StringVariable("##STACKIT_LoginManager##"),
} }
var testConfigVarsMax = config.Variables{ var testConfigVarsMax = config.Variables{
"project_id": config.StringVariable(testutil.ProjectId), "project_id": config.StringVariable(testutils.ProjectId),
"name": config.StringVariable( "name": config.StringVariable(fmt.Sprintf("tf-acc-%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum))),
fmt.Sprintf(
"tf-acc-%s",
acctest.RandStringFromCharSet(7, acctest.CharSetAlphaNum),
),
),
"acl1": config.StringVariable("192.168.0.0/16"), "acl1": config.StringVariable("192.168.0.0/16"),
"flavor_cpu": config.IntegerVariable(4), "flavor_cpu": config.IntegerVariable(4),
"flavor_ram": config.IntegerVariable(16), "flavor_ram": config.IntegerVariable(16),
@ -70,19 +55,14 @@ var testConfigVarsMax = config.Variables{
"options_retention_days": config.IntegerVariable(64), "options_retention_days": config.IntegerVariable(64),
"flavor_id": config.StringVariable("4.16-Single"), "flavor_id": config.StringVariable("4.16-Single"),
"backup_schedule": config.StringVariable("00 6 * * *"), "backup_schedule": config.StringVariable("00 6 * * *"),
"username": config.StringVariable( "username": config.StringVariable(fmt.Sprintf("tf-acc-user-%s", acctest.RandStringFromCharSet(7, acctest.CharSetAlpha))),
fmt.Sprintf(
"tf-acc-user-%s",
acctest.RandStringFromCharSet(7, acctest.CharSetAlpha),
),
),
"role": config.StringVariable("##STACKIT_LoginManager##"), "role": config.StringVariable("##STACKIT_LoginManager##"),
"region": config.StringVariable(testutil.Region), "region": config.StringVariable(testutils.Region),
} }
func configVarsMinUpdated() config.Variables { func configVarsMinUpdated() config.Variables {
temp := maps.Clone(testConfigVarsMax) temp := maps.Clone(testConfigVarsMax)
temp["name"] = config.StringVariable(testutil.ConvertConfigVariable(temp["name"]) + "changed") temp["name"] = config.StringVariable(testutils.ConvertConfigVariable(temp["name"]) + "changed")
return temp return temp
} }
@ -93,50 +73,25 @@ func configVarsMaxUpdated() config.Variables {
} }
func TestAccSQLServerFlexMinResource(t *testing.T) { func TestAccSQLServerFlexMinResource(t *testing.T) {
resource.Test( resource.Test(t, resource.TestCase{
t, resource.TestCase{ ProtoV6ProviderFactories: testutils.TestAccProtoV6ProviderFactories,
ProtoV6ProviderFactories: testutil.TestAccProtoV6ProviderFactories,
CheckDestroy: testAccChecksqlserverflexDestroy, CheckDestroy: testAccChecksqlserverflexDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
// Creation // Creation
{ {
Config: testutil.SQLServerFlexProviderConfig("") + "\n" + resourceMinConfig, Config: testutils.SQLServerFlexProviderConfig("") + "\n" + resourceMinConfig,
ConfigVariables: testConfigVarsMin, ConfigVariables: testConfigVarsMin,
Check: resource.ComposeAggregateTestCheckFunc( Check: resource.ComposeAggregateTestCheckFunc(
// Instance // Instance
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "project_id", testutils.ConvertConfigVariable(testConfigVarsMin["project_id"])),
"stackit_sqlserverflex_instance.instance",
"project_id",
testutil.ConvertConfigVariable(testConfigVarsMin["project_id"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "name", testutils.ConvertConfigVariable(testConfigVarsMin["name"])),
"stackit_sqlserverflex_instance.instance",
"name",
testutil.ConvertConfigVariable(testConfigVarsMin["name"]),
),
resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.description", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_description"])),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "replicas", testutils.ConvertConfigVariable(testConfigVarsMin["replicas"])),
"flavor.description", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.cpu", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_cpu"])),
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_description"]), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.ram", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_ram"])),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"replicas",
testutil.ConvertConfigVariable(testConfigVarsMin["replicas"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.cpu",
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_cpu"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.ram",
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_ram"]),
),
// User // User
resource.TestCheckResourceAttrPair( resource.TestCheckResourceAttrPair(
"stackit_sqlserverflex_user.user", "project_id", "stackit_sqlserverflex_user.user", "project_id",
@ -152,38 +107,18 @@ func TestAccSQLServerFlexMinResource(t *testing.T) {
}, },
// Update // Update
{ {
Config: testutil.SQLServerFlexProviderConfig("") + "\n" + resourceMinConfig, Config: testutils.SQLServerFlexProviderConfig("") + "\n" + resourceMinConfig,
ConfigVariables: testConfigVarsMin, ConfigVariables: testConfigVarsMin,
Check: resource.ComposeAggregateTestCheckFunc( Check: resource.ComposeAggregateTestCheckFunc(
// Instance // Instance
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "project_id", testutils.ConvertConfigVariable(testConfigVarsMin["project_id"])),
"stackit_sqlserverflex_instance.instance",
"project_id",
testutil.ConvertConfigVariable(testConfigVarsMin["project_id"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "name", testutils.ConvertConfigVariable(testConfigVarsMin["name"])),
"stackit_sqlserverflex_instance.instance",
"name",
testutil.ConvertConfigVariable(testConfigVarsMin["name"]),
),
resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.description", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_description"])),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.cpu", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_cpu"])),
"flavor.description", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.ram", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_ram"])),
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_description"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.cpu",
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_cpu"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.ram",
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_ram"]),
),
// User // User
resource.TestCheckResourceAttrPair( resource.TestCheckResourceAttrPair(
"stackit_sqlserverflex_user.user", "project_id", "stackit_sqlserverflex_user.user", "project_id",
@ -199,20 +134,12 @@ func TestAccSQLServerFlexMinResource(t *testing.T) {
}, },
// data source // data source
{ {
Config: testutil.SQLServerFlexProviderConfig("") + "\n" + resourceMinConfig, Config: testutils.SQLServerFlexProviderConfig("") + "\n" + resourceMinConfig,
ConfigVariables: testConfigVarsMin, ConfigVariables: testConfigVarsMin,
Check: resource.ComposeAggregateTestCheckFunc( Check: resource.ComposeAggregateTestCheckFunc(
// Instance data // Instance data
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "project_id", testutils.ConvertConfigVariable(testConfigVarsMin["project_id"])),
"data.stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "name", testutils.ConvertConfigVariable(testConfigVarsMin["name"])),
"project_id",
testutil.ConvertConfigVariable(testConfigVarsMin["project_id"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"name",
testutil.ConvertConfigVariable(testConfigVarsMin["name"]),
),
resource.TestCheckResourceAttrPair( resource.TestCheckResourceAttrPair(
"data.stackit_sqlserverflex_instance.instance", "project_id", "data.stackit_sqlserverflex_instance.instance", "project_id",
"stackit_sqlserverflex_instance.instance", "project_id", "stackit_sqlserverflex_instance.instance", "project_id",
@ -227,45 +154,17 @@ func TestAccSQLServerFlexMinResource(t *testing.T) {
), ),
resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "acl.#", "1"), resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "acl.#", "1"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "flavor.id", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_id"])),
"data.stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "flavor.description", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_description"])),
"flavor.id", resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "flavor.cpu", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_cpu"])),
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_id"]), resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "flavor.ram", testutils.ConvertConfigVariable(testConfigVarsMin["flavor_ram"])),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"flavor.description",
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_description"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"flavor.cpu",
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_cpu"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"flavor.ram",
testutil.ConvertConfigVariable(testConfigVarsMin["flavor_ram"]),
),
// User data // User data
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "project_id", testutils.ConvertConfigVariable(testConfigVarsMin["project_id"])),
"data.stackit_sqlserverflex_user.user",
"project_id",
testutil.ConvertConfigVariable(testConfigVarsMin["project_id"]),
),
resource.TestCheckResourceAttrSet("data.stackit_sqlserverflex_user.user", "user_id"), resource.TestCheckResourceAttrSet("data.stackit_sqlserverflex_user.user", "user_id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "username", testutils.ConvertConfigVariable(testConfigVarsMin["username"])),
"data.stackit_sqlserverflex_user.user",
"username",
testutil.ConvertConfigVariable(testConfigVarsMin["username"]),
),
resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "roles.#", "1"), resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "roles.#", "1"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "roles.0", testutils.ConvertConfigVariable(testConfigVarsMax["role"])),
"data.stackit_sqlserverflex_user.user",
"roles.0",
testutil.ConvertConfigVariable(testConfigVarsMax["role"]),
),
), ),
}, },
// Import // Import
@ -282,7 +181,7 @@ func TestAccSQLServerFlexMinResource(t *testing.T) {
return "", fmt.Errorf("couldn't find attribute instance_id") return "", fmt.Errorf("couldn't find attribute instance_id")
} }
return fmt.Sprintf("%s,%s,%s", testutil.ProjectId, testutil.Region, instanceId), nil return fmt.Sprintf("%s,%s,%s", testutils.ProjectId, testutils.Region, instanceId), nil
}, },
ImportState: true, ImportState: true,
ImportStateVerify: true, ImportStateVerify: true,
@ -311,7 +210,7 @@ func TestAccSQLServerFlexMinResource(t *testing.T) {
return "", fmt.Errorf("couldn't find attribute user_id") return "", fmt.Errorf("couldn't find attribute user_id")
} }
return fmt.Sprintf("%s,%s,%s,%s", testutil.ProjectId, testutil.Region, instanceId, userId), nil return fmt.Sprintf("%s,%s,%s,%s", testutils.ProjectId, testutils.Region, instanceId, userId), nil
}, },
ImportState: true, ImportState: true,
ImportStateVerify: true, ImportStateVerify: true,
@ -319,125 +218,52 @@ func TestAccSQLServerFlexMinResource(t *testing.T) {
}, },
// Update // Update
{ {
Config: testutil.SQLServerFlexProviderConfig("") + "\n" + resourceMinConfig, Config: testutils.SQLServerFlexProviderConfig("") + "\n" + resourceMinConfig,
ConfigVariables: configVarsMinUpdated(), ConfigVariables: configVarsMinUpdated(),
Check: resource.ComposeAggregateTestCheckFunc( Check: resource.ComposeAggregateTestCheckFunc(
// Instance data // Instance data
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "project_id", testutils.ConvertConfigVariable(configVarsMinUpdated()["project_id"])),
"stackit_sqlserverflex_instance.instance",
"project_id",
testutil.ConvertConfigVariable(configVarsMinUpdated()["project_id"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "name", testutils.ConvertConfigVariable(configVarsMinUpdated()["name"])),
"stackit_sqlserverflex_instance.instance",
"name",
testutil.ConvertConfigVariable(configVarsMinUpdated()["name"]),
),
resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"),
resource.TestCheckResourceAttrSet( resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.description"),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.cpu", testutils.ConvertConfigVariable(configVarsMinUpdated()["flavor_cpu"])),
"flavor.description", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.ram", testutils.ConvertConfigVariable(configVarsMinUpdated()["flavor_ram"])),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.cpu",
testutil.ConvertConfigVariable(configVarsMinUpdated()["flavor_cpu"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.ram",
testutil.ConvertConfigVariable(configVarsMinUpdated()["flavor_ram"]),
),
), ),
}, },
// Deletion is done by the framework implicitly // Deletion is done by the framework implicitly
}, },
}, })
)
} }
func TestAccSQLServerFlexMaxResource(t *testing.T) { func TestAccSQLServerFlexMaxResource(t *testing.T) {
resource.Test( resource.Test(t, resource.TestCase{
t, resource.TestCase{ ProtoV6ProviderFactories: testutils.TestAccProtoV6ProviderFactories,
ProtoV6ProviderFactories: testutil.TestAccProtoV6ProviderFactories,
CheckDestroy: testAccChecksqlserverflexDestroy, CheckDestroy: testAccChecksqlserverflexDestroy,
Steps: []resource.TestStep{ Steps: []resource.TestStep{
// Creation // Creation
{ {
Config: testutil.SQLServerFlexProviderConfig("") + "\n" + resourceMaxConfig, Config: testutils.SQLServerFlexProviderConfig("") + "\n" + resourceMaxConfig,
ConfigVariables: testConfigVarsMax, ConfigVariables: testConfigVarsMax,
Check: resource.ComposeAggregateTestCheckFunc( Check: resource.ComposeAggregateTestCheckFunc(
// Instance // Instance
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "project_id", testutils.ConvertConfigVariable(testConfigVarsMax["project_id"])),
"stackit_sqlserverflex_instance.instance",
"project_id",
testutil.ConvertConfigVariable(testConfigVarsMax["project_id"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "name", testutils.ConvertConfigVariable(testConfigVarsMax["name"])),
"stackit_sqlserverflex_instance.instance",
"name",
testutil.ConvertConfigVariable(testConfigVarsMax["name"]),
),
resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.0", testutils.ConvertConfigVariable(testConfigVarsMax["acl1"])),
"stackit_sqlserverflex_instance.instance",
"acl.0",
testutil.ConvertConfigVariable(testConfigVarsMax["acl1"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.description", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_description"])),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "replicas", testutils.ConvertConfigVariable(testConfigVarsMax["replicas"])),
"flavor.description", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.cpu", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_cpu"])),
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_description"]), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.ram", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_ram"])),
), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "storage.class", testutils.ConvertConfigVariable(testConfigVarsMax["storage_class"])),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "storage.size", testutils.ConvertConfigVariable(testConfigVarsMax["storage_size"])),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "version", testutils.ConvertConfigVariable(testConfigVarsMax["server_version"])),
"replicas", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "options.retention_days", testutils.ConvertConfigVariable(testConfigVarsMax["options_retention_days"])),
testutil.ConvertConfigVariable(testConfigVarsMax["replicas"]), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "backup_schedule", testutils.ConvertConfigVariable(testConfigVarsMax["backup_schedule"])),
), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "region", testutils.Region),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.cpu",
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_cpu"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.ram",
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_ram"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"storage.class",
testutil.ConvertConfigVariable(testConfigVarsMax["storage_class"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"storage.size",
testutil.ConvertConfigVariable(testConfigVarsMax["storage_size"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"version",
testutil.ConvertConfigVariable(testConfigVarsMax["server_version"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"options.retention_days",
testutil.ConvertConfigVariable(testConfigVarsMax["options_retention_days"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"backup_schedule",
testutil.ConvertConfigVariable(testConfigVarsMax["backup_schedule"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"region",
testutil.Region,
),
// User // User
resource.TestCheckResourceAttrPair( resource.TestCheckResourceAttrPair(
"stackit_sqlserverflex_user.user", "project_id", "stackit_sqlserverflex_user.user", "project_id",
@ -453,78 +279,26 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) {
}, },
// Update // Update
{ {
Config: testutil.SQLServerFlexProviderConfig("") + "\n" + resourceMaxConfig, Config: testutils.SQLServerFlexProviderConfig("") + "\n" + resourceMaxConfig,
ConfigVariables: testConfigVarsMax, ConfigVariables: testConfigVarsMax,
Check: resource.ComposeAggregateTestCheckFunc( Check: resource.ComposeAggregateTestCheckFunc(
// Instance // Instance
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "project_id", testutils.ConvertConfigVariable(testConfigVarsMax["project_id"])),
"stackit_sqlserverflex_instance.instance",
"project_id",
testutil.ConvertConfigVariable(testConfigVarsMax["project_id"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "name", testutils.ConvertConfigVariable(testConfigVarsMax["name"])),
"stackit_sqlserverflex_instance.instance",
"name",
testutil.ConvertConfigVariable(testConfigVarsMax["name"]),
),
resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.0", testutils.ConvertConfigVariable(testConfigVarsMax["acl1"])),
"stackit_sqlserverflex_instance.instance",
"acl.0",
testutil.ConvertConfigVariable(testConfigVarsMax["acl1"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.description", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_description"])),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "replicas", testutils.ConvertConfigVariable(testConfigVarsMax["replicas"])),
"flavor.description", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.cpu", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_cpu"])),
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_description"]), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.ram", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_ram"])),
), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "storage.class", testutils.ConvertConfigVariable(testConfigVarsMax["storage_class"])),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "storage.size", testutils.ConvertConfigVariable(testConfigVarsMax["storage_size"])),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "version", testutils.ConvertConfigVariable(testConfigVarsMax["server_version"])),
"replicas", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "options.retention_days", testutils.ConvertConfigVariable(testConfigVarsMax["options_retention_days"])),
testutil.ConvertConfigVariable(testConfigVarsMax["replicas"]), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "backup_schedule", testutils.ConvertConfigVariable(testConfigVarsMax["backup_schedule"])),
), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "region", testutils.Region),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.cpu",
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_cpu"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.ram",
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_ram"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"storage.class",
testutil.ConvertConfigVariable(testConfigVarsMax["storage_class"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"storage.size",
testutil.ConvertConfigVariable(testConfigVarsMax["storage_size"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"version",
testutil.ConvertConfigVariable(testConfigVarsMax["server_version"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"options.retention_days",
testutil.ConvertConfigVariable(testConfigVarsMax["options_retention_days"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"backup_schedule",
testutil.ConvertConfigVariable(testConfigVarsMax["backup_schedule"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"region",
testutil.Region,
),
// User // User
resource.TestCheckResourceAttrPair( resource.TestCheckResourceAttrPair(
"stackit_sqlserverflex_user.user", "project_id", "stackit_sqlserverflex_user.user", "project_id",
@ -540,20 +314,12 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) {
}, },
// data source // data source
{ {
Config: testutil.SQLServerFlexProviderConfig("") + "\n" + resourceMaxConfig, Config: testutils.SQLServerFlexProviderConfig("") + "\n" + resourceMaxConfig,
ConfigVariables: testConfigVarsMax, ConfigVariables: testConfigVarsMax,
Check: resource.ComposeAggregateTestCheckFunc( Check: resource.ComposeAggregateTestCheckFunc(
// Instance data // Instance data
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "project_id", testutils.ConvertConfigVariable(testConfigVarsMax["project_id"])),
"data.stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "name", testutils.ConvertConfigVariable(testConfigVarsMax["name"])),
"project_id",
testutil.ConvertConfigVariable(testConfigVarsMax["project_id"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"name",
testutil.ConvertConfigVariable(testConfigVarsMax["name"]),
),
resource.TestCheckResourceAttrPair( resource.TestCheckResourceAttrPair(
"data.stackit_sqlserverflex_instance.instance", "project_id", "data.stackit_sqlserverflex_instance.instance", "project_id",
"stackit_sqlserverflex_instance.instance", "project_id", "stackit_sqlserverflex_instance.instance", "project_id",
@ -568,65 +334,21 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) {
), ),
resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "acl.#", "1"), resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "acl.#", "1"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "acl.0", testutils.ConvertConfigVariable(testConfigVarsMax["acl1"])),
"data.stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "flavor.id", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_id"])),
"acl.0", resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "flavor.description", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_description"])),
testutil.ConvertConfigVariable(testConfigVarsMax["acl1"]), resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "flavor.cpu", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_cpu"])),
), resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "flavor.ram", testutils.ConvertConfigVariable(testConfigVarsMax["flavor_ram"])),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "replicas", testutils.ConvertConfigVariable(testConfigVarsMax["replicas"])),
"data.stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "options.retention_days", testutils.ConvertConfigVariable(testConfigVarsMax["options_retention_days"])),
"flavor.id", resource.TestCheckResourceAttr("data.stackit_sqlserverflex_instance.instance", "backup_schedule", testutils.ConvertConfigVariable(testConfigVarsMax["backup_schedule"])),
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_id"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"flavor.description",
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_description"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"flavor.cpu",
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_cpu"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"flavor.ram",
testutil.ConvertConfigVariable(testConfigVarsMax["flavor_ram"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"replicas",
testutil.ConvertConfigVariable(testConfigVarsMax["replicas"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"options.retention_days",
testutil.ConvertConfigVariable(testConfigVarsMax["options_retention_days"]),
),
resource.TestCheckResourceAttr(
"data.stackit_sqlserverflex_instance.instance",
"backup_schedule",
testutil.ConvertConfigVariable(testConfigVarsMax["backup_schedule"]),
),
// User data // User data
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "project_id", testutils.ConvertConfigVariable(testConfigVarsMax["project_id"])),
"data.stackit_sqlserverflex_user.user",
"project_id",
testutil.ConvertConfigVariable(testConfigVarsMax["project_id"]),
),
resource.TestCheckResourceAttrSet("data.stackit_sqlserverflex_user.user", "user_id"), resource.TestCheckResourceAttrSet("data.stackit_sqlserverflex_user.user", "user_id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "username", testutils.ConvertConfigVariable(testConfigVarsMax["username"])),
"data.stackit_sqlserverflex_user.user",
"username",
testutil.ConvertConfigVariable(testConfigVarsMax["username"]),
),
resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "roles.#", "1"), resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "roles.#", "1"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("data.stackit_sqlserverflex_user.user", "roles.0", testutils.ConvertConfigVariable(testConfigVarsMax["role"])),
"data.stackit_sqlserverflex_user.user",
"roles.0",
testutil.ConvertConfigVariable(testConfigVarsMax["role"]),
),
resource.TestCheckResourceAttrSet("data.stackit_sqlserverflex_user.user", "host"), resource.TestCheckResourceAttrSet("data.stackit_sqlserverflex_user.user", "host"),
resource.TestCheckResourceAttrSet("data.stackit_sqlserverflex_user.user", "port"), resource.TestCheckResourceAttrSet("data.stackit_sqlserverflex_user.user", "port"),
), ),
@ -645,7 +367,7 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) {
return "", fmt.Errorf("couldn't find attribute instance_id") return "", fmt.Errorf("couldn't find attribute instance_id")
} }
return fmt.Sprintf("%s,%s,%s", testutil.ProjectId, testutil.Region, instanceId), nil return fmt.Sprintf("%s,%s,%s", testutils.ProjectId, testutils.Region, instanceId), nil
}, },
ImportState: true, ImportState: true,
ImportStateVerify: true, ImportStateVerify: true,
@ -654,12 +376,8 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) {
if len(s) != 1 { if len(s) != 1 {
return fmt.Errorf("expected 1 state, got %d", len(s)) return fmt.Errorf("expected 1 state, got %d", len(s))
} }
if s[0].Attributes["backup_schedule"] != testutil.ConvertConfigVariable(testConfigVarsMax["backup_schedule"]) { if s[0].Attributes["backup_schedule"] != testutils.ConvertConfigVariable(testConfigVarsMax["backup_schedule"]) {
return fmt.Errorf( return fmt.Errorf("expected backup_schedule %s, got %s", testConfigVarsMax["backup_schedule"], s[0].Attributes["backup_schedule"])
"expected backup_schedule %s, got %s",
testConfigVarsMax["backup_schedule"],
s[0].Attributes["backup_schedule"],
)
} }
return nil return nil
}, },
@ -681,7 +399,7 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) {
return "", fmt.Errorf("couldn't find attribute user_id") return "", fmt.Errorf("couldn't find attribute user_id")
} }
return fmt.Sprintf("%s,%s,%s,%s", testutil.ProjectId, testutil.Region, instanceId, userId), nil return fmt.Sprintf("%s,%s,%s,%s", testutils.ProjectId, testutils.Region, instanceId, userId), nil
}, },
ImportState: true, ImportState: true,
ImportStateVerify: true, ImportStateVerify: true,
@ -689,89 +407,41 @@ func TestAccSQLServerFlexMaxResource(t *testing.T) {
}, },
// Update // Update
{ {
Config: testutil.SQLServerFlexProviderConfig("") + "\n" + resourceMaxConfig, Config: testutils.SQLServerFlexProviderConfig("") + "\n" + resourceMaxConfig,
ConfigVariables: configVarsMaxUpdated(), ConfigVariables: configVarsMaxUpdated(),
Check: resource.ComposeAggregateTestCheckFunc( Check: resource.ComposeAggregateTestCheckFunc(
// Instance data // Instance data
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "project_id", testutils.ConvertConfigVariable(configVarsMaxUpdated()["project_id"])),
"stackit_sqlserverflex_instance.instance",
"project_id",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["project_id"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "instance_id"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "name", testutils.ConvertConfigVariable(configVarsMaxUpdated()["name"])),
"stackit_sqlserverflex_instance.instance",
"name",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["name"]),
),
resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.#", "1"),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "acl.0", testutils.ConvertConfigVariable(configVarsMaxUpdated()["acl1"])),
"stackit_sqlserverflex_instance.instance",
"acl.0",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["acl1"]),
),
resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"), resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.id"),
resource.TestCheckResourceAttrSet( resource.TestCheckResourceAttrSet("stackit_sqlserverflex_instance.instance", "flavor.description"),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.cpu", testutils.ConvertConfigVariable(configVarsMaxUpdated()["flavor_cpu"])),
"flavor.description", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "flavor.ram", testutils.ConvertConfigVariable(configVarsMaxUpdated()["flavor_ram"])),
), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "replicas", testutils.ConvertConfigVariable(configVarsMaxUpdated()["replicas"])),
resource.TestCheckResourceAttr( resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "storage.class", testutils.ConvertConfigVariable(configVarsMaxUpdated()["storage_class"])),
"stackit_sqlserverflex_instance.instance", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "storage.size", testutils.ConvertConfigVariable(configVarsMaxUpdated()["storage_size"])),
"flavor.cpu", resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "version", testutils.ConvertConfigVariable(configVarsMaxUpdated()["server_version"])),
testutil.ConvertConfigVariable(configVarsMaxUpdated()["flavor_cpu"]), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "options.retention_days", testutils.ConvertConfigVariable(configVarsMaxUpdated()["options_retention_days"])),
), resource.TestCheckResourceAttr("stackit_sqlserverflex_instance.instance", "backup_schedule", testutils.ConvertConfigVariable(configVarsMaxUpdated()["backup_schedule"])),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"flavor.ram",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["flavor_ram"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"replicas",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["replicas"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"storage.class",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["storage_class"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"storage.size",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["storage_size"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"version",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["server_version"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"options.retention_days",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["options_retention_days"]),
),
resource.TestCheckResourceAttr(
"stackit_sqlserverflex_instance.instance",
"backup_schedule",
testutil.ConvertConfigVariable(configVarsMaxUpdated()["backup_schedule"]),
),
), ),
}, },
// Deletion is done by the framework implicitly // Deletion is done by the framework implicitly
}, },
}, })
)
} }
func testAccChecksqlserverflexDestroy(s *terraform.State) error { func testAccChecksqlserverflexDestroy(s *terraform.State) error {
ctx := context.Background() ctx := context.Background()
var client *sqlserverflex.APIClient var client *sqlserverflex.APIClient
var err error var err error
if testutil.SQLServerFlexCustomEndpoint == "" { if testutils.SQLServerFlexCustomEndpoint == "" {
client, err = sqlserverflex.NewAPIClient() client, err = sqlserverflex.NewAPIClient()
} else { } else {
client, err = sqlserverflex.NewAPIClient( client, err = sqlserverflex.NewAPIClient(
coreconfig.WithEndpoint(testutil.SQLServerFlexCustomEndpoint), coreconfig.WithEndpoint(testutils.SQLServerFlexCustomEndpoint),
) )
} }
if err != nil { if err != nil {
@ -788,7 +458,7 @@ func testAccChecksqlserverflexDestroy(s *terraform.State) error {
instancesToDestroy = append(instancesToDestroy, instanceId) instancesToDestroy = append(instancesToDestroy, instanceId)
} }
instancesResp, err := client.ListInstances(ctx, testutil.ProjectId, testutil.Region).Execute() instancesResp, err := client.ListInstances(ctx, testutils.ProjectId, testutils.Region).Execute()
if err != nil { if err != nil {
return fmt.Errorf("getting instancesResp: %w", err) return fmt.Errorf("getting instancesResp: %w", err)
} }
@ -799,23 +469,13 @@ func testAccChecksqlserverflexDestroy(s *terraform.State) error {
continue continue
} }
if utils.Contains(instancesToDestroy, *items[i].Id) { if utils.Contains(instancesToDestroy, *items[i].Id) {
err := client.DeleteInstanceExecute(ctx, testutil.ProjectId, *items[i].Id, testutil.Region) err := client.DeleteInstanceExecute(ctx, testutils.ProjectId, *items[i].Id, testutils.Region)
if err != nil { if err != nil {
return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *items[i].Id, err) return fmt.Errorf("destroying instance %s during CheckDestroy: %w", *items[i].Id, err)
} }
_, err = wait.DeleteInstanceWaitHandler( _, err = wait.DeleteInstanceWaitHandler(ctx, client, testutils.ProjectId, *items[i].Id, testutils.Region).WaitWithContext(ctx)
ctx,
client,
testutil.ProjectId,
*items[i].Id,
testutil.Region,
).WaitWithContext(ctx)
if err != nil { if err != nil {
return fmt.Errorf( return fmt.Errorf("destroying instance %s during CheckDestroy: waiting for deletion %w", *items[i].Id, err)
"destroying instance %s during CheckDestroy: waiting for deletion %w",
*items[i].Id,
err,
)
} }
} }
} }