Skip to content

Commit

Permalink
test(workspace): adjust the resource references and definitions (huaw…
Browse files Browse the repository at this point in the history
  • Loading branch information
Lance52259 authored Dec 28, 2024
1 parent 53df492 commit 37b9428
Show file tree
Hide file tree
Showing 12 changed files with 178 additions and 139 deletions.
4 changes: 1 addition & 3 deletions huaweicloud/services/acceptance/acceptance.go
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,6 @@ var (
HW_WORKSPACE_AD_NETWORK_ID = os.Getenv("HW_WORKSPACE_AD_NETWORK_ID") // The network ID to which the AD servers belong.
// The internet access port to which the Workspace service.
HW_WORKSPACE_INTERNET_ACCESS_PORT = os.Getenv("HW_WORKSPACE_INTERNET_ACCESS_PORT")
HW_WORKSPACE_APP_SERVER_GROUP_ID = os.Getenv("HW_WORKSPACE_APP_SERVER_GROUP_ID")
HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID = os.Getenv("HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID")
HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID = os.Getenv("HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID")
HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID = os.Getenv("HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID")
Expand Down Expand Up @@ -1556,8 +1555,7 @@ func TestAccPreCheckWorkspaceInternetAccessPort(t *testing.T) {

// lintignore:AT003
func TestAccPreCheckWorkspaceAppServerGroup(t *testing.T) {
if HW_WORKSPACE_AD_VPC_ID == "" || HW_WORKSPACE_AD_NETWORK_ID == "" ||
HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID == "" || HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID == "" ||
if HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID == "" || HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID == "" ||
HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID == "" {
t.Skip("Workspace APP server group acceptance test missing configuration parameters.")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,5 +130,5 @@ locals {
output "is_type_filter_useful" {
value = length(local.type_result) > 0 && alltrue(local.type_result)
}
`, testResourceWorkspaceAppGroup_basic_step1(name))
`, testResourceWorkspaceAppGroup_basic_step1(testResourceWorkspaceAppGroup_base(name), name))
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/acceptance"
)

// Before running this test, please enable a service that connects to LocalAD and the corresponding OU is created.
func TestAccDataSourceAppImageServers_basic(t *testing.T) {
var (
dataSource = "data.huaweicloud_workspace_app_image_servers.test"
Expand All @@ -31,9 +32,8 @@ func TestAccDataSourceAppImageServers_basic(t *testing.T) {
acceptance.TestAccPreCheck(t)
acceptance.TestAccPreCheckWorkspaceAppServerGroup(t)
acceptance.TestAccPreCheckWorkspaceAppImageSpecCode(t)
acceptance.TestAccPrecheckWorkspaceUserNames(t)
acceptance.TestAccPreCheckWorkspaceOUName(t)
acceptance.TestAccPreCheckWorkspaceADDomainNames(t)
acceptance.TestAccPreCheckEpsID(t)
},
ProviderFactories: acceptance.TestAccProviderFactories,
Steps: []resource.TestStep{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,19 +67,21 @@ data "huaweicloud_workspace_app_publishable_apps" "not_found" {

func testDataSourceAppPublishableApps_base(name string) string {
return fmt.Sprintf(`
data "huaweicloud_workspace_service" "test" {}
resource "huaweicloud_workspace_app_server_group" "test" {
name = "%[1]s"
os_type = "Windows"
flavor_id = "%[2]s"
vpc_id = "%[3]s"
subnet_id = "%[4]s"
vpc_id = data.huaweicloud_workspace_service.test.vpc_id
subnet_id = data.huaweicloud_workspace_service.test.network_ids[0]
system_disk_type = "SAS"
system_disk_size = 80
is_vdi = true
app_type = "COMMON_APP"
image_id = "%[5]s"
image_id = "%[3]s"
image_type = "gold"
image_product_id = "%[6]s"
image_product_id = "%[4]s"
}
resource "huaweicloud_workspace_app_server" "test" {
Expand All @@ -105,8 +107,6 @@ resource "huaweicloud_workspace_app_group" "test" {
server_group_id = huaweicloud_workspace_app_server_group.test.id
}
`, name, acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID,
acceptance.HW_WORKSPACE_AD_VPC_ID,
acceptance.HW_WORKSPACE_AD_NETWORK_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,44 @@ func TestAccResourceAppGroupAuthorization_basic(t *testing.T) {

func testAccAppGroupAuthorization_base(name string) string {
return fmt.Sprintf(`
%[1]s
data "huaweicloud_workspace_service" "test" {}
resource "huaweicloud_workspace_app_server_group" "test" {
name = "%[1]s"
os_type = "Windows"
flavor_id = "%[2]s"
vpc_id = data.huaweicloud_workspace_service.test.vpc_id
subnet_id = data.huaweicloud_workspace_service.test.network_ids[0]
system_disk_type = "SAS"
system_disk_size = 80
is_vdi = true
app_type = "SESSION_DESKTOP_APP"
image_id = "%[3]s"
image_type = "gold"
image_product_id = "%[4]s"
}
resource "huaweicloud_workspace_app_group" "test" {
server_group_id = huaweicloud_workspace_app_server_group.test.id
name = "%[1]s"
type = "SESSION_DESKTOP_APP"
description = "Created APP group by script"
}
resource "huaweicloud_workspace_user" "test" {
name = "%[2]s"
name = "%[1]s"
email = "[email protected]"
}
resource "huaweicloud_workspace_user_group" "test" {
count = 2
name = "%[2]s${count.index}"
name = "%[1]s${count.index}"
type = "LOCAL"
}
`, testResourceWorkspaceAppGroup_basic_step1(name), name)
`, name, acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID)
}

func testAccAppGroupAuthorization_basic(name string) string {
Expand Down Expand Up @@ -114,5 +139,5 @@ resource "huaweicloud_workspace_app_group_authorization" "test" {
type = "USER"
}
}
`, testResourceWorkspaceAppGroup_basic_step1(name), name)
`, testResourceWorkspaceAppGroup_basic_step1(testResourceWorkspaceAppGroup_base(name), name), name)
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ func TestAccResourceAppGroup_basic(t *testing.T) {
resourceName = "huaweicloud_workspace_app_group.test"
name = acceptance.RandomAccResourceName()
updateName = acceptance.RandomAccResourceName()
baseConfig = testResourceWorkspaceAppGroup_base(name)

appGroup interface{}
rc = acceptance.InitResourceCheck(
Expand All @@ -63,7 +64,7 @@ func TestAccResourceAppGroup_basic(t *testing.T) {
CheckDestroy: rc.CheckResourceDestroy(),
Steps: []resource.TestStep{
{
Config: testResourceWorkspaceAppGroup_basic_step1(name),
Config: testResourceWorkspaceAppGroup_basic_step1(baseConfig, name),
Check: resource.ComposeTestCheckFunc(
rc.CheckResourceExists(),
resource.TestCheckResourceAttr(resourceName, "name", name),
Expand All @@ -75,7 +76,7 @@ func TestAccResourceAppGroup_basic(t *testing.T) {
),
},
{
Config: testResourceWorkspaceAppGroup_basic_step2(name, updateName),
Config: testResourceWorkspaceAppGroup_basic_step2(baseConfig, updateName),
Check: resource.ComposeTestCheckFunc(
rc.CheckResourceExists(),
resource.TestCheckResourceAttr(resourceName, "name", updateName),
Expand All @@ -92,48 +93,59 @@ func TestAccResourceAppGroup_basic(t *testing.T) {
})
}

func testResourceWorkspaceAppGroup_base(name string) string {
func testResourceWorkspaceAppGroup_base(name string, appType ...string) string {
actAppType := "SESSION_DESKTOP_APP"
if len(appType) > 0 {
actAppType = appType[0]
}

return fmt.Sprintf(`
data "huaweicloud_workspace_service" "test" {}
resource "huaweicloud_workspace_app_server_group" "test" {
name = "%[1]s"
app_type = "%[2]s"
os_type = "Windows"
flavor_id = "%[2]s"
vpc_id = "%[3]s"
subnet_id = "%[4]s"
flavor_id = "%[3]s"
vpc_id = data.huaweicloud_workspace_service.test.vpc_id
subnet_id = data.huaweicloud_workspace_service.test.network_ids[0]
system_disk_type = "SAS"
system_disk_size = 80
is_vdi = true
app_type = "SESSION_DESKTOP_APP"
image_id = "%[5]s"
image_id = "%[4]s"
image_type = "gold"
image_product_id = "%[6]s"
image_product_id = "%[5]s"
}
`, name, acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID,
acceptance.HW_WORKSPACE_AD_VPC_ID,
acceptance.HW_WORKSPACE_AD_NETWORK_ID,
`, name, actAppType,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID)
}

func testResourceWorkspaceAppGroup_basic_step1(name string) string {
func testResourceWorkspaceAppGroup_basic_step1(baseConfig, name string, appType ...string) string {
actAppType := "SESSION_DESKTOP_APP"
if len(appType) > 0 {
actAppType = appType[0]
}

return fmt.Sprintf(`
%[1]s
resource "huaweicloud_workspace_app_group" "test" {
server_group_id = huaweicloud_workspace_app_server_group.test.id
name = "%[2]s"
type = "SESSION_DESKTOP_APP"
type = "%[3]s"
description = "Created APP group by script"
}
`, testResourceWorkspaceAppGroup_base(name), name)
`, baseConfig, name, actAppType)
}

func testResourceWorkspaceAppGroup_basic_step2(name, updateName string) string {
func testResourceWorkspaceAppGroup_basic_step2(baseConfig, name string) string {
return fmt.Sprintf(`
%[1]s
resource "huaweicloud_workspace_app_group" "test" {
name = "%[2]s"
}
`, testResourceWorkspaceAppGroup_base(name), updateName)
`, baseConfig, name)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package workspace

import (
"fmt"
"strings"
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
Expand All @@ -29,6 +28,7 @@ func getAcceptanceEpsId() string {
return acceptance.HW_ENTERPRISE_PROJECT_ID_TEST
}

// Before running this test, please enable a service that connects to LocalAD and the corresponding OU is created.
func TestAccResourceAppImageServer_basic(t *testing.T) {
var (
resourceName = "huaweicloud_workspace_app_image_server.test"
Expand All @@ -42,14 +42,14 @@ func TestAccResourceAppImageServer_basic(t *testing.T) {
getResourceAppImageServerFunc,
)
)

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() {
acceptance.TestAccPreCheck(t)
acceptance.TestAccPreCheckWorkspaceAppServerGroup(t)
acceptance.TestAccPreCheckWorkspaceAppImageSpecCode(t)
acceptance.TestAccPrecheckWorkspaceUserNames(t)
acceptance.TestAccPreCheckWorkspaceOUName(t)
acceptance.TestAccPreCheckWorkspaceADDomainNames(t)
acceptance.TestAccPreCheckEpsID(t)
},
ProviderFactories: acceptance.TestAccProviderFactories,
CheckDestroy: rc.CheckResourceDestroy(),
Expand All @@ -59,16 +59,41 @@ func TestAccResourceAppImageServer_basic(t *testing.T) {
Check: resource.ComposeTestCheckFunc(
rc.CheckResourceExists(),
resource.TestCheckResourceAttr(resourceName, "name", name),
resource.TestCheckResourceAttr(resourceName, "authorize_accounts.#", "1"),
resource.TestCheckResourceAttr(resourceName, "authorize_accounts.0.type", "USER"),
resource.TestCheckResourceAttr(resourceName, "authorize_accounts.0.domain",
retrieveActiveDomainName(strings.Split(acceptance.HW_WORKSPACE_AD_DOMAIN_NAMES, ","))),
resource.TestCheckResourceAttr(resourceName, "flavor_id", acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID),
resource.TestCheckResourceAttrPair(resourceName, "vpc_id",
"data.huaweicloud_workspace_service.test", "vpc_id"),
resource.TestCheckResourceAttrPair(resourceName, "subnet_id",
"data.huaweicloud_workspace_service.test", "network_ids.0"),
resource.TestCheckResourceAttr(resourceName, "image_id", acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID),
resource.TestCheckResourceAttr(resourceName, "image_type", "gold"),
resource.TestCheckResourceAttr(resourceName, "image_source_product_id",
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID),
resource.TestCheckResourceAttr(resourceName, "spec_code",
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_SPEC_CODE),
resource.TestCheckResourceAttr(resourceName, "authorize_accounts.#", "1"),
resource.TestCheckResourceAttrPair(resourceName, "authorize_accounts.0.account",
"data.huaweicloud_workspace_service.test", "ad_domain.0.admin_account"),
resource.TestCheckResourceAttr(resourceName, "authorize_accounts.0.type", "USER"),
resource.TestCheckResourceAttrPair(resourceName, "authorize_accounts.0.domain",
"data.huaweicloud_workspace_service.test", "ad_domain.0.name"),
resource.TestCheckResourceAttr(resourceName, "root_volume.#", "1"),
resource.TestCheckResourceAttr(resourceName, "root_volume.0.type", "SAS"),
resource.TestCheckResourceAttr(resourceName, "root_volume.0.size", "80"),
resource.TestCheckResourceAttr(resourceName, "is_vdi", "false"),
resource.TestCheckResourceAttrPair(resourceName, "availability_zone",
"data.huaweicloud_availability_zones.test", "names.0"),
resource.TestCheckResourceAttr(resourceName, "description", "Created by script"),
resource.TestCheckResourceAttr(resourceName, "ou_name", acceptance.HW_WORKSPACE_OU_NAME),
resource.TestCheckResourceAttr(resourceName, "extra_session_type", "CPU"),
resource.TestCheckResourceAttr(resourceName, "extra_session_size", "2"),
resource.TestCheckResourceAttr(resourceName, "route_policy.#", "1"),
resource.TestCheckResourceAttr(resourceName, "route_policy.0.max_session", "3"),
resource.TestCheckResourceAttr(resourceName, "route_policy.0.cpu_threshold", "80"),
resource.TestCheckResourceAttr(resourceName, "route_policy.0.mem_threshold", "80"),
resource.TestCheckResourceAttr(resourceName, "tags.%", "1"),
resource.TestCheckResourceAttr(resourceName, "tags.foo", "bar"),
resource.TestCheckResourceAttr(resourceName, "enterprise_project_id", getAcceptanceEpsId()),
resource.TestCheckResourceAttr(resourceName, "is_delete_associated_resources", "true"),
),
},
{
Expand Down Expand Up @@ -109,21 +134,23 @@ func testResourceAppImageServer_basic(name, description string) string {
return fmt.Sprintf(`
data "huaweicloud_availability_zones" "test" {}
data "huaweicloud_workspace_service" "test" {}
resource "huaweicloud_workspace_app_image_server" "test" {
name = "%[1]s"
flavor_id = "%[2]s"
vpc_id = "%[3]s"
subnet_id = "%[4]s"
image_id = "%[5]s"
vpc_id = data.huaweicloud_workspace_service.test.vpc_id
subnet_id = data.huaweicloud_workspace_service.test.network_ids[0]
image_id = "%[3]s"
image_type = "gold"
image_source_product_id = "%[6]s"
spec_code = "%[7]s"
image_source_product_id = "%[4]s"
spec_code = "%[5]s"
# Currently only one user can be set.
authorize_accounts {
account = split(",", "%[8]s")[0]
account = data.huaweicloud_workspace_service.test.ad_domain[0].admin_account
type = "USER"
domain = element(split(",", "%[9]s"), 0)
domain = data.huaweicloud_workspace_service.test.ad_domain[0].name
}
root_volume {
Expand All @@ -133,8 +160,8 @@ resource "huaweicloud_workspace_app_image_server" "test" {
is_vdi = false
availability_zone = data.huaweicloud_availability_zones.test.names[0]
description = "%[10]s"
ou_name = "%[11]s"
description = "%[6]s"
ou_name = "%[7]s"
extra_session_type = "CPU"
extra_session_size = 2
Expand All @@ -148,19 +175,16 @@ resource "huaweicloud_workspace_app_image_server" "test" {
foo = "bar"
}
enterprise_project_id = "%[12]s"
enterprise_project_id = "%[8]s"
is_delete_associated_resources = true
}
`, name, acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID,
acceptance.HW_WORKSPACE_AD_VPC_ID,
acceptance.HW_WORKSPACE_AD_NETWORK_ID,
`,
name,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID,
acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_SPEC_CODE,
acceptance.HW_WORKSPACE_USER_NAMES,
acceptance.HW_WORKSPACE_AD_DOMAIN_NAMES,
description,
acceptance.HW_WORKSPACE_OU_NAME,
acceptance.HW_ENTERPRISE_PROJECT_ID_TEST,
)
acceptance.HW_ENTERPRISE_PROJECT_ID_TEST)
}
Loading

0 comments on commit 37b9428

Please sign in to comment.