diff --git a/huaweicloud/services/acceptance/acceptance.go b/huaweicloud/services/acceptance/acceptance.go index 2ceac12f60..115adf8ca8 100644 --- a/huaweicloud/services/acceptance/acceptance.go +++ b/huaweicloud/services/acceptance/acceptance.go @@ -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") @@ -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.") } diff --git a/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_groups_test.go b/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_groups_test.go index 6c0e9c0459..e865e01bdb 100644 --- a/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_groups_test.go +++ b/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_groups_test.go @@ -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)) } diff --git a/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_image_servers_test.go b/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_image_servers_test.go index ac054e9aa4..2b66ab0d9a 100644 --- a/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_image_servers_test.go +++ b/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_image_servers_test.go @@ -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" @@ -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{ diff --git a/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_publishable_apps_test.go b/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_publishable_apps_test.go index d078c882cf..a58e75993b 100644 --- a/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_publishable_apps_test.go +++ b/huaweicloud/services/acceptance/workspace/data_source_huaweicloud_workspace_app_publishable_apps_test.go @@ -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" { @@ -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) } diff --git a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_group_authorization_test.go b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_group_authorization_test.go index 96b3fb99ac..3c9196c2be 100644 --- a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_group_authorization_test.go +++ b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_group_authorization_test.go @@ -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 = "tf@example.com" } 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 { @@ -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) } diff --git a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_group_test.go b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_group_test.go index f9c92f36f2..0fe9db6f8b 100644 --- a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_group_test.go +++ b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_group_test.go @@ -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( @@ -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), @@ -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), @@ -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) } diff --git a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_image_server_test.go b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_image_server_test.go index d95e127bde..ef152fc6c1 100644 --- a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_image_server_test.go +++ b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_image_server_test.go @@ -2,7 +2,6 @@ package workspace import ( "fmt" - "strings" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" @@ -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" @@ -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(), @@ -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"), ), }, { @@ -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 { @@ -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 @@ -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) } diff --git a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_image_test.go b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_image_test.go index dc4e4403c8..966876fa86 100644 --- a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_image_test.go +++ b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_image_test.go @@ -14,12 +14,13 @@ func TestAccResourceAppImage_basic(t *testing.T) { resourceName = "huaweicloud_workspace_app_image.test" name = acceptance.RandomAccResourceName() ) + resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acceptance.TestAccPreCheck(t) acceptance.TestAccPreCheckWorkspaceAppServerGroup(t) acceptance.TestAccPreCheckWorkspaceAppImageSpecCode(t) - acceptance.TestAccPrecheckWorkspaceUserNames(t) + acceptance.TestAccPreCheckEpsID(t) }, ProviderFactories: acceptance.TestAccProviderFactories, CheckDestroy: nil, @@ -37,20 +38,23 @@ func TestAccResourceAppImage_basic(t *testing.T) { func testResourceAppImage_basic(name string) string { return fmt.Sprintf(` +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 = data.huaweicloud_workspace_service.test.ad_domain[0].name } root_volume { @@ -59,7 +63,7 @@ resource "huaweicloud_workspace_app_image_server" "test" { } is_vdi = true - enterprise_project_id = "%[9]s" + enterprise_project_id = "%[6]s" is_delete_associated_resources = true } @@ -67,15 +71,11 @@ resource "huaweicloud_workspace_app_image" "test" { server_id = huaweicloud_workspace_app_image_server.test.id name = "%[1]s" description = "Workspace APP genereted image" - enterprise_project_id = "%[9]s" + enterprise_project_id = "%[6]s" } `, 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, acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_SPEC_CODE, - acceptance.HW_WORKSPACE_USER_NAMES, - acceptance.HW_ENTERPRISE_PROJECT_ID_TEST, - ) + acceptance.HW_ENTERPRISE_PROJECT_ID_TEST) } diff --git a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_policy_group_test.go b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_policy_group_test.go index 9e7332a2db..d8b1fd443b 100644 --- a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_policy_group_test.go +++ b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_policy_group_test.go @@ -110,7 +110,7 @@ resource "huaweicloud_workspace_app_policy_group" "test" { } }) } -`, testResourceWorkspaceAppGroup_basic_step1(name), name) +`, testResourceWorkspaceAppGroup_basic_step1(testResourceWorkspaceAppGroup_base(name), name), name) } func testAccAppPolicyGroup_basic_step2(name string) string { @@ -136,7 +136,7 @@ resource "huaweicloud_workspace_app_policy_group" "test" { } }) } -`, testResourceWorkspaceAppGroup_basic_step1(name), name) +`, testResourceWorkspaceAppGroup_basic_step1(testResourceWorkspaceAppGroup_base(name), name), name) } func testAccAppPolicyGroup_basic_step3(name string) string { @@ -155,5 +155,5 @@ resource "huaweicloud_workspace_app_policy_group" "test" { } }) } -`, testResourceWorkspaceAppGroup_basic_step1(name), name) +`, testResourceWorkspaceAppGroup_basic_step1(testResourceWorkspaceAppGroup_base(name), name), name) } diff --git a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_publishment_test.go b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_publishment_test.go index 0bbf05eb42..caad506d18 100644 --- a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_publishment_test.go +++ b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_publishment_test.go @@ -27,6 +27,9 @@ func TestAccAppPublishment_basic(t *testing.T) { resourceName = "huaweicloud_workspace_app_publishment.test" name = acceptance.RandomAccResourceName() updateName = acceptance.RandomAccResourceName() + baseConfig = testResourceWorkspaceAppGroup_basic_step1( + testResourceWorkspaceAppGroup_base(name, "COMMON_APP"), + name, "COMMON_APP") ) rc := acceptance.InitResourceCheck( resourceName, @@ -43,7 +46,7 @@ func TestAccAppPublishment_basic(t *testing.T) { CheckDestroy: rc.CheckResourceDestroy(), Steps: []resource.TestStep{ { - Config: testAccAppPublishment_basic_step1(name), + Config: testAccAppPublishment_basic_step1(baseConfig, name), Check: resource.ComposeTestCheckFunc( rc.CheckResourceExists(), resource.TestCheckResourceAttrPair(resourceName, "app_group_id", "huaweicloud_workspace_app_group.test", "id"), @@ -63,7 +66,7 @@ func TestAccAppPublishment_basic(t *testing.T) { regexp.MustCompile(`^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}?(Z|([+-]\d{2}:\d{2}))$`))), }, { - Config: testAccAppPublishment_basic_step2(updateName), + Config: testAccAppPublishment_basic_step2(baseConfig, updateName), Check: resource.ComposeTestCheckFunc( rc.CheckResourceExists(), resource.TestCheckResourceAttr(resourceName, "name", updateName), @@ -90,34 +93,7 @@ func TestAccAppPublishment_basic(t *testing.T) { }) } -func testAccAppPublishment_base(name string) string { - return fmt.Sprintf(` -resource "huaweicloud_workspace_app_group" "test" { - name = "%[1]s" -} - -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" - system_disk_type = "SAS" - system_disk_size = 80 - is_vdi = true - app_type = "COMMON_APP" - image_id = "%[5]s" - image_type = "gold" - image_product_id = "%[6]s" -} -`, 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) -} - -func testAccAppPublishment_basic_step1(name string) string { +func testAccAppPublishment_basic_step1(baseConfig, name string) string { return fmt.Sprintf(` %[1]s @@ -136,10 +112,10 @@ resource "huaweicloud_workspace_app_publishment" "test" { icon_index = 0 status = "FORBIDDEN" } -`, testAccAppPublishment_base(name), name) +`, baseConfig, name) } -func testAccAppPublishment_basic_step2(updateName string) string { +func testAccAppPublishment_basic_step2(baseConfig, updateName string) string { return fmt.Sprintf(` %[1]s @@ -154,7 +130,7 @@ resource "huaweicloud_workspace_app_publishment" "test" { icon_index = 0 status = "NORMAL" } -`, testAccAppPublishment_base(updateName), updateName) +`, baseConfig, updateName) } func testAppPublishmentImportState(rName string) resource.ImportStateIdFunc { diff --git a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_server_group_test.go b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_server_group_test.go index edff872542..a71d49eb11 100644 --- a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_server_group_test.go +++ b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_server_group_test.go @@ -21,6 +21,7 @@ func getResourceAppServerGroupFunc(cfg *config.Config, state *terraform.Resource return workspace.GetServerGroupById(client, state.Primary.ID) } +// Before running this test, please enable a service that connects to LocalAD and the corresponding OU is created. func TestAccResourceAppServerGroup_basic(t *testing.T) { var ( resourceName = "huaweicloud_workspace_app_server_group.test" @@ -50,7 +51,10 @@ func TestAccResourceAppServerGroup_basic(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "name", name), resource.TestCheckResourceAttr(resourceName, "os_type", "Windows"), resource.TestCheckResourceAttr(resourceName, "flavor_id", acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID), - resource.TestCheckResourceAttr(resourceName, "subnet_id", acceptance.HW_WORKSPACE_AD_NETWORK_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, "system_disk_type", "SAS"), resource.TestCheckResourceAttr(resourceName, "system_disk_size", "90"), resource.TestCheckResourceAttr(resourceName, "image_id", acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID), @@ -106,32 +110,32 @@ func TestAccResourceAppServerGroup_basic(t *testing.T) { func testResourceAppServerGroup_base(name, appType, amountingPolicy string) string { return fmt.Sprintf(` +data "huaweicloud_workspace_service" "test" {} + resource "huaweicloud_workspace_app_server_group" "primary" { name = "%[1]s_primary" 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 = false - app_type = "%[5]s" - image_id = "%[6]s" + image_id = "%[3]s" image_type = "gold" - image_product_id = "%[7]s" + image_product_id = "%[4]s" ip_virtual { enable = true } - storage_mount_policy = "%[8]s" + app_type = "%[5]s" + storage_mount_policy = "%[6]s" } `, name, acceptance.HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID, - acceptance.HW_WORKSPACE_AD_VPC_ID, - acceptance.HW_WORKSPACE_AD_NETWORK_ID, - appType, acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID, acceptance.HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID, + appType, amountingPolicy) } @@ -143,16 +147,16 @@ resource "huaweicloud_workspace_app_server_group" "test" { name = "%[2]s" os_type = "Windows" flavor_id = "%[3]s" - vpc_id = "%[4]s" - subnet_id = "%[5]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 = 90 is_vdi = false - image_id = "%[6]s" + image_id = "%[4]s" image_type = "gold" - image_product_id = "%[7]s" + image_product_id = "%[5]s" description = "Created by script" - ou_name = "%[8]s" + ou_name = "%[6]s" primary_server_group_id = huaweicloud_workspace_app_server_group.primary.id tags = { @@ -177,8 +181,6 @@ resource "huaweicloud_workspace_app_server_group" "test" { } `, testResourceAppServerGroup_base(name, "COMMON_APP", "USER"), 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, acceptance.HW_WORKSPACE_OU_NAME) @@ -192,15 +194,15 @@ resource "huaweicloud_workspace_app_server_group" "test" { name = "%[2]s" os_type = "Windows" flavor_id = "%[3]s" - vpc_id = "%[4]s" - subnet_id = "%[5]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 app_type = "SESSION_DESKTOP_APP" is_vdi = false - image_id = "%[6]s" + image_id = "%[4]s" image_type = "gold" - image_product_id = "%[7]s" + image_product_id = "%[5]s" primary_server_group_id = huaweicloud_workspace_app_server_group.primary.id tags = { @@ -225,8 +227,6 @@ resource "huaweicloud_workspace_app_server_group" "test" { } `, testResourceAppServerGroup_base(name, "SESSION_DESKTOP_APP", "ANY"), 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) } diff --git a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_server_test.go b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_server_test.go index 86ca67876c..4cb5c939d1 100644 --- a/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_server_test.go +++ b/huaweicloud/services/acceptance/workspace/resource_huaweicloud_workspace_app_server_test.go @@ -21,6 +21,7 @@ func getResourceAppServerFunc(cfg *config.Config, state *terraform.ResourceState return workspace.GetServerById(client, state.Primary.ID) } +// Before running this test, please enable a service that connects to LocalAD and the corresponding OU is created. func TestAccResourceAppServer_basic(t *testing.T) { var ( resourceName = "huaweicloud_workspace_app_server.test" @@ -54,8 +55,10 @@ func TestAccResourceAppServer_basic(t *testing.T) { "huaweicloud_workspace_app_server_group.test", "system_disk_type"), resource.TestCheckResourceAttrPair(resourceName, "root_volume.0.size", "huaweicloud_workspace_app_server_group.test", "system_disk_size"), - resource.TestCheckResourceAttr(resourceName, "vpc_id", acceptance.HW_WORKSPACE_AD_VPC_ID), - resource.TestCheckResourceAttr(resourceName, "subnet_id", acceptance.HW_WORKSPACE_AD_NETWORK_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, "description", "Created server by script"), resource.TestCheckResourceAttr(resourceName, "ou_name", acceptance.HW_WORKSPACE_OU_NAME), resource.TestCheckResourceAttr(resourceName, "maintain_status", "true"), @@ -88,22 +91,22 @@ func TestAccResourceAppServer_basic(t *testing.T) { func testResourceAppServer_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 - image_id = "%[5]s" + image_id = "%[3]s" image_type = "gold" - image_product_id = "%[6]s" + image_product_id = "%[4]s" } `, 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, ) @@ -158,6 +161,7 @@ resource "huaweicloud_workspace_app_server" "test" { `, testResourceAppServer_base(name), name, acceptance.HW_WORKSPACE_OU_NAME) } +// Before running this test, please enable a service that connects to LocalAD and the corresponding OU is created. func TestAccResourceAppServer_prepaid(t *testing.T) { var ( resourceName = "huaweicloud_workspace_app_server.test"