chore(projectmanager): remove members attribute (#737)
relates to STACKITTPR-165
This commit is contained in:
parent
a8809a4979
commit
297a8a6f88
7 changed files with 145 additions and 713 deletions
|
|
@ -3,7 +3,6 @@ package resourcemanager_test
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-testing/helper/acctest"
|
||||
|
|
@ -11,7 +10,6 @@ import (
|
|||
"github.com/hashicorp/terraform-plugin-testing/terraform"
|
||||
"github.com/stackitcloud/stackit-sdk-go/core/config"
|
||||
"github.com/stackitcloud/stackit-sdk-go/core/utils"
|
||||
"github.com/stackitcloud/stackit-sdk-go/services/authorization"
|
||||
"github.com/stackitcloud/stackit-sdk-go/services/resourcemanager"
|
||||
"github.com/stackitcloud/stackit-sdk-go/services/resourcemanager/wait"
|
||||
"github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil"
|
||||
|
|
@ -26,19 +24,7 @@ var projectResource = map[string]string{
|
|||
"new_label": "a-label",
|
||||
}
|
||||
|
||||
func membersConfig(members []authorization.Member) string {
|
||||
membersConfig := make([]string, 0, len(members))
|
||||
for _, m := range members {
|
||||
memberConfig := fmt.Sprintf(`{
|
||||
subject = "%s"
|
||||
role = "%s"
|
||||
}`, *m.Subject, *m.Role)
|
||||
membersConfig = append(membersConfig, memberConfig)
|
||||
}
|
||||
return strings.Join(membersConfig, ",\n")
|
||||
}
|
||||
|
||||
func resourceConfig(name string, label *string, members string) string {
|
||||
func resourceConfig(name string, label *string) string {
|
||||
labelConfig := ""
|
||||
if label != nil {
|
||||
labelConfig = fmt.Sprintf("new_label = %q", *label)
|
||||
|
|
@ -53,19 +39,13 @@ func resourceConfig(name string, label *string, members string) string {
|
|||
"billing_reference" = "%[4]s"
|
||||
%[5]s
|
||||
}
|
||||
members = [
|
||||
%[7]s
|
||||
]
|
||||
owner_email = "%[8]s"
|
||||
owner_email = "%[7]s"
|
||||
}
|
||||
|
||||
resource "stackit_resourcemanager_project" "parent_by_uuid" {
|
||||
parent_container_id = "%[6]s"
|
||||
name = "%[3]s-uuid"
|
||||
members = [
|
||||
%[7]s
|
||||
]
|
||||
owner_email = "%[8]s"
|
||||
owner_email = "%[7]s"
|
||||
}
|
||||
`,
|
||||
testutil.ResourceManagerProviderConfig(),
|
||||
|
|
@ -74,26 +54,18 @@ func resourceConfig(name string, label *string, members string) string {
|
|||
projectResource["billing_reference"],
|
||||
labelConfig,
|
||||
projectResource["parent_uuid"],
|
||||
members,
|
||||
testutil.TestProjectServiceAccountEmail,
|
||||
)
|
||||
}
|
||||
|
||||
func TestAccResourceManagerResource(t *testing.T) {
|
||||
initialMembersConfig := membersConfig([]authorization.Member{
|
||||
{
|
||||
Subject: &testutil.TestProjectUserEmail,
|
||||
Role: utils.Ptr("owner"),
|
||||
},
|
||||
})
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
ProtoV6ProviderFactories: testutil.TestAccProtoV6ProviderFactories,
|
||||
CheckDestroy: testAccCheckResourceManagerDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
// Creation
|
||||
{
|
||||
Config: resourceConfig(projectResource["name"], nil, initialMembersConfig),
|
||||
Config: resourceConfig(projectResource["name"], nil),
|
||||
Check: resource.ComposeAggregateTestCheckFunc(
|
||||
// Parent container id project data
|
||||
resource.TestCheckResourceAttrSet("stackit_resourcemanager_project.parent_by_container", "container_id"),
|
||||
|
|
@ -128,7 +100,7 @@ func TestAccResourceManagerResource(t *testing.T) {
|
|||
project_id = stackit_resourcemanager_project.parent_by_container.project_id
|
||||
}
|
||||
`,
|
||||
resourceConfig(projectResource["name"], nil, initialMembersConfig),
|
||||
resourceConfig(projectResource["name"], nil),
|
||||
),
|
||||
Check: resource.ComposeAggregateTestCheckFunc(
|
||||
// Container project data
|
||||
|
|
@ -178,11 +150,11 @@ func TestAccResourceManagerResource(t *testing.T) {
|
|||
ImportStateVerify: true,
|
||||
// The owner_email attributes don't exist in the
|
||||
// API, therefore there is no value for it during import.
|
||||
ImportStateVerifyIgnore: []string{"owner_email", "members"},
|
||||
ImportStateVerifyIgnore: []string{"owner_email"},
|
||||
},
|
||||
// Update
|
||||
{
|
||||
Config: resourceConfig(fmt.Sprintf("%s-new", projectResource["name"]), utils.Ptr("a-label"), initialMembersConfig),
|
||||
Config: resourceConfig(fmt.Sprintf("%s-new", projectResource["name"]), utils.Ptr("a-label")),
|
||||
Check: resource.ComposeAggregateTestCheckFunc(
|
||||
// Project data
|
||||
resource.TestCheckResourceAttrSet("stackit_resourcemanager_project.parent_by_container", "container_id"),
|
||||
|
|
@ -191,6 +163,7 @@ func TestAccResourceManagerResource(t *testing.T) {
|
|||
resource.TestCheckResourceAttr("stackit_resourcemanager_project.parent_by_container", "labels.%", "2"),
|
||||
resource.TestCheckResourceAttr("stackit_resourcemanager_project.parent_by_container", "labels.billing_reference", projectResource["billing_reference"]),
|
||||
resource.TestCheckResourceAttr("stackit_resourcemanager_project.parent_by_container", "labels.new_label", projectResource["new_label"]),
|
||||
resource.TestCheckResourceAttr("stackit_resourcemanager_project.parent_by_container", "owner_email", testutil.TestProjectServiceAccountEmail),
|
||||
),
|
||||
},
|
||||
// Deletion is done by the framework implicitly
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue