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: 'Forgejo Actions to setup Go and cache dependencies'
author: 'Forgejo authors'
name: 'Setup Go and cache dependencies'
author: 'Forgejo authors, Marcel S. Henselin'
description: |
Wrap the setup-go with improved dependency caching.
inputs:
username:
description: 'User for which to manage the dependency cache'
default: root
go-version:
description: "go version to install"
default: '1.25'
required: true
runs:
using: "composite"
steps:
- name: "Install zstd for faster caching"
shell: bash
run: |
apt-get update -qq
apt-get -q install -qq -y zstd
- 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
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
cache: false
- name: "Get go environment information"
shell: bash
id: go-environment
run: |
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 }}
- name: "Create cache folders with correct permissions (for non-root users)"
shell: bash
if: inputs.username != 'root'
# 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,

View file

@ -146,6 +146,17 @@ jobs:
- name: 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
uses: actions/upload-artifact@v4
with:

View file

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