@@ -230,3 +230,143 @@ resource "huaweicloud_workspace_app_server_group" "test" {
230230 acceptance .HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID ,
231231 acceptance .HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID )
232232}
233+
234+ func TestAccResourceAppServerGroup_singleSession (t * testing.T ) {
235+ var (
236+ name = acceptance .RandomAccResourceName ()
237+ updateName = acceptance .RandomAccResourceName ()
238+
239+ obj interface {}
240+ resourceName = "huaweicloud_workspace_app_server_group.test"
241+ rc = acceptance .InitResourceCheck (resourceName , & obj , getResourceAppServerGroupFunc )
242+ )
243+ resource .ParallelTest (t , resource.TestCase {
244+ PreCheck : func () {
245+ acceptance .TestAccPreCheck (t )
246+ acceptance .TestAccPreCheckWorkspaceAppServerGroup (t )
247+ acceptance .TestAccPreCheckEpsID (t )
248+ },
249+ ProviderFactories : acceptance .TestAccProviderFactories ,
250+ CheckDestroy : rc .CheckResourceDestroy (),
251+ Steps : []resource.TestStep {
252+ {
253+ Config : testAccResourceAppServerGroup_singleSession_step1 (name ),
254+ Check : resource .ComposeTestCheckFunc (
255+ rc .CheckResourceExists (),
256+ resource .TestCheckResourceAttr (resourceName , "name" , name ),
257+ resource .TestCheckResourceAttr (resourceName , "os_type" , "Windows" ),
258+ resource .TestCheckResourceAttr (resourceName , "flavor_id" , acceptance .HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID ),
259+ resource .TestCheckResourceAttrPair (resourceName , "vpc_id" ,
260+ "data.huaweicloud_workspace_service.test" , "vpc_id" ),
261+ resource .TestCheckResourceAttrPair (resourceName , "subnet_id" ,
262+ "data.huaweicloud_workspace_service.test" , "network_ids.0" ),
263+ resource .TestCheckResourceAttr (resourceName , "system_disk_type" , "SAS" ),
264+ resource .TestCheckResourceAttr (resourceName , "system_disk_size" , "90" ),
265+ resource .TestCheckResourceAttr (resourceName , "image_id" , acceptance .HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID ),
266+ resource .TestCheckResourceAttr (resourceName , "image_type" , "gold" ),
267+ resource .TestCheckResourceAttr (resourceName , "image_product_id" ,
268+ acceptance .HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID ),
269+ resource .TestCheckResourceAttr (resourceName , "is_vdi" , "true" ),
270+ resource .TestCheckResourceAttr (resourceName , "description" , "Created by script" ),
271+ resource .TestCheckResourceAttr (resourceName , "app_type" , "SESSION_DESKTOP_APP" ),
272+ resource .TestCheckResourceAttr (resourceName , "tags.%" , "1" ),
273+ resource .TestCheckResourceAttr (resourceName , "tags.foo" , "bar" ),
274+ resource .TestCheckResourceAttr (resourceName , "enterprise_project_id" , acceptance .HW_ENTERPRISE_PROJECT_ID_TEST ),
275+ resource .TestCheckResourceAttr (resourceName , "enabled" , "true" ),
276+ resource .TestCheckResourceAttr (resourceName , "storage_mount_policy" , "USER" ),
277+ ),
278+ },
279+ {
280+ Config : testAccResourceAppServerGroup_singleSession_step2 (updateName ),
281+ Check : resource .ComposeTestCheckFunc (
282+ rc .CheckResourceExists (),
283+ resource .TestCheckResourceAttr (resourceName , "name" , updateName ),
284+ resource .TestCheckResourceAttr (resourceName , "system_disk_type" , "SAS" ),
285+ resource .TestCheckResourceAttr (resourceName , "system_disk_size" , "80" ),
286+ resource .TestCheckResourceAttr (resourceName , "description" , "" ),
287+ resource .TestCheckResourceAttr (resourceName , "app_type" , "SESSION_DESKTOP_APP" ),
288+ resource .TestCheckResourceAttr (resourceName , "enabled" , "false" ),
289+ resource .TestCheckResourceAttr (resourceName , "storage_mount_policy" , "SHARE" ),
290+ resource .TestCheckResourceAttr (resourceName , "tags.%" , "2" ),
291+ resource .TestCheckResourceAttr (resourceName , "tags.foo" , "bar_update" ),
292+ resource .TestCheckResourceAttr (resourceName , "tags.owner" , "terraform" ),
293+ ),
294+ },
295+ {
296+ ResourceName : resourceName ,
297+ ImportState : true ,
298+ ImportStateVerify : true ,
299+ ImportStateVerifyIgnore : []string {
300+ "vpc_id" , "image_type" , "image_product_id" , "availability_zone" ,
301+ },
302+ },
303+ },
304+ })
305+ }
306+
307+ func testAccResourceAppServerGroup_singleSession_step1 (name string ) string {
308+ return fmt .Sprintf (`
309+ data "huaweicloud_workspace_service" "test" {}
310+
311+ resource "huaweicloud_workspace_app_server_group" "test" {
312+ name = "%[1]s"
313+ os_type = "Windows"
314+ flavor_id = "%[2]s"
315+ vpc_id = data.huaweicloud_workspace_service.test.vpc_id
316+ subnet_id = data.huaweicloud_workspace_service.test.network_ids[0]
317+ system_disk_type = "SAS"
318+ system_disk_size = 90
319+ app_type = "SESSION_DESKTOP_APP"
320+ is_vdi = true
321+ image_id = "%[3]s"
322+ image_type = "gold"
323+ image_product_id = "%[4]s"
324+ description = "Created by script"
325+ storage_mount_policy = "USER"
326+ enterprise_project_id = "%[5]s"
327+
328+ tags = {
329+ foo = "bar"
330+ }
331+ }
332+ ` , name ,
333+ acceptance .HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID ,
334+ acceptance .HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID ,
335+ acceptance .HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID ,
336+ acceptance .HW_ENTERPRISE_PROJECT_ID_TEST ,
337+ )
338+ }
339+
340+ func testAccResourceAppServerGroup_singleSession_step2 (name string ) string {
341+ return fmt .Sprintf (`
342+ data "huaweicloud_workspace_service" "test" {}
343+
344+ resource "huaweicloud_workspace_app_server_group" "test" {
345+ name = "%[1]s"
346+ os_type = "Windows"
347+ flavor_id = "%[2]s"
348+ vpc_id = data.huaweicloud_workspace_service.test.vpc_id
349+ subnet_id = data.huaweicloud_workspace_service.test.network_ids[0]
350+ system_disk_type = "SAS"
351+ system_disk_size = 80
352+ app_type = "SESSION_DESKTOP_APP"
353+ is_vdi = true
354+ image_id = "%[3]s"
355+ image_type = "gold"
356+ image_product_id = "%[4]s"
357+ storage_mount_policy = "SHARE"
358+ enabled = false
359+ enterprise_project_id = "%[5]s"
360+
361+ tags = {
362+ foo = "bar_update"
363+ owner = "terraform"
364+ }
365+ }
366+ ` , name ,
367+ acceptance .HW_WORKSPACE_APP_SERVER_GROUP_FLAVOR_ID ,
368+ acceptance .HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_ID ,
369+ acceptance .HW_WORKSPACE_APP_SERVER_GROUP_IMAGE_PRODUCT_ID ,
370+ acceptance .HW_ENTERPRISE_PROJECT_ID_TEST ,
371+ )
372+ }
0 commit comments