diff --git a/tencentcloud/data_source_tc_cfs_access_groups_test.go b/tencentcloud/data_source_tc_cfs_access_groups_test.go index 36b2e507d9..8ed2f55613 100644 --- a/tencentcloud/data_source_tc_cfs_access_groups_test.go +++ b/tencentcloud/data_source_tc_cfs_access_groups_test.go @@ -16,9 +16,8 @@ func TestAccTencentCloudCfsAccessGroupsDataSource(t *testing.T) { { Config: testAccCfsAccessGroupsDataSource, Check: resource.ComposeTestCheckFunc( - testAccCheckCfsAccessGroupExists("tencentcloud_cfs_access_group.foo"), resource.TestCheckResourceAttr("data.tencentcloud_cfs_access_groups.access_groups", "access_group_list.#", "1"), - resource.TestCheckResourceAttr("data.tencentcloud_cfs_access_groups.access_groups", "access_group_list.0.name", "test_cfs_access_group"), + resource.TestCheckResourceAttr("data.tencentcloud_cfs_access_groups.access_groups", "access_group_list.0.name", "keep_access_group"), resource.TestCheckResourceAttr("data.tencentcloud_cfs_access_groups.access_groups", "access_group_list.0.description", "test"), resource.TestCheckResourceAttrSet("data.tencentcloud_cfs_access_groups.access_groups", "access_group_list.0.access_group_id"), resource.TestCheckResourceAttrSet("data.tencentcloud_cfs_access_groups.access_groups", "access_group_list.0.create_time"), @@ -28,14 +27,20 @@ func TestAccTencentCloudCfsAccessGroupsDataSource(t *testing.T) { }) } -const testAccCfsAccessGroupsDataSource = ` -resource "tencentcloud_cfs_access_group" "foo" { - name = "test_cfs_access_group" - description = "test" +const BasicCfsAccessGroup = "pgroupbasic" + +const defaultCfsAccessGroup = ` +data "tencentcloud_cfs_access_groups" "access_groups" { + name = "keep_access_group" } +locals { + cfs_access_group_id = data.tencentcloud_cfs_access_groups.access_groups.access_group_list.0.access_group_id +} +` + +const testAccCfsAccessGroupsDataSource = ` data "tencentcloud_cfs_access_groups" "access_groups" { - access_group_id = tencentcloud_cfs_access_group.foo.id - name = tencentcloud_cfs_access_group.foo.name + name = "keep_access_group" } ` diff --git a/tencentcloud/data_source_tc_cfs_access_rules_test.go b/tencentcloud/data_source_tc_cfs_access_rules_test.go index d54cf95a1d..db6853bb67 100644 --- a/tencentcloud/data_source_tc_cfs_access_rules_test.go +++ b/tencentcloud/data_source_tc_cfs_access_rules_test.go @@ -17,7 +17,7 @@ func TestAccTencentCloudCfsAccessRulesDataSource(t *testing.T) { Config: testAccCfsAccessRulesDataSource, Check: resource.ComposeTestCheckFunc( testAccCheckCfsAccessRuleExists("tencentcloud_cfs_access_rule.foo"), - resource.TestCheckResourceAttr("data.tencentcloud_cfs_access_rules.access_rules", "access_rule_list.#", "1"), + resource.TestCheckResourceAttrSet("data.tencentcloud_cfs_access_rules.access_rules", "access_rule_list.#"), resource.TestCheckResourceAttrSet("data.tencentcloud_cfs_access_rules.access_rules", "access_rule_list.0.access_rule_id"), resource.TestCheckResourceAttr("data.tencentcloud_cfs_access_rules.access_rules", "access_rule_list.0.auth_client_ip", "10.10.1.0/24"), resource.TestCheckResourceAttr("data.tencentcloud_cfs_access_rules.access_rules", "access_rule_list.0.priority", "1"), @@ -27,19 +27,16 @@ func TestAccTencentCloudCfsAccessRulesDataSource(t *testing.T) { }) } -const testAccCfsAccessRulesDataSource = ` -resource "tencentcloud_cfs_access_group" "foo" { - name = "test_cfs_access_rule" -} +const testAccCfsAccessRulesDataSource = defaultCfsAccessGroup + ` resource "tencentcloud_cfs_access_rule" "foo" { - access_group_id = tencentcloud_cfs_access_group.foo.id + access_group_id = local.cfs_access_group_id auth_client_ip = "10.10.1.0/24" priority = 1 } data "tencentcloud_cfs_access_rules" "access_rules" { - access_group_id = tencentcloud_cfs_access_group.foo.id + access_group_id = local.cfs_access_group_id access_rule_id = tencentcloud_cfs_access_rule.foo.id } ` diff --git a/tencentcloud/data_source_tc_cfs_file_systems_test.go b/tencentcloud/data_source_tc_cfs_file_systems_test.go index 8c79453108..b2a5c0985f 100644 --- a/tencentcloud/data_source_tc_cfs_file_systems_test.go +++ b/tencentcloud/data_source_tc_cfs_file_systems_test.go @@ -31,7 +31,7 @@ func TestAccTencentCloudCfsFileSystemsDataSource(t *testing.T) { }) } -const testAccCfsFileSystemsDataSource = ` +const testAccCfsFileSystemsDataSource = defaultCfsAccessGroup + ` resource "tencentcloud_vpc" "vpc" { name = "test-cfs-vpc" cidr_block = "10.2.0.0/16" @@ -44,14 +44,10 @@ resource "tencentcloud_subnet" "subnet" { availability_zone = "ap-guangzhou-3" } -resource "tencentcloud_cfs_access_group" "foo" { - name = "test_cfs_access_rule" -} - resource "tencentcloud_cfs_file_system" "foo" { name = "test_cfs_file_system" availability_zone = "ap-guangzhou-3" - access_group_id = tencentcloud_cfs_access_group.foo.id + access_group_id = local.cfs_access_group_id protocol = "NFS" vpc_id = tencentcloud_vpc.vpc.id subnet_id = tencentcloud_subnet.subnet.id diff --git a/tencentcloud/resource_tc_cfs_access_group_test.go b/tencentcloud/resource_tc_cfs_access_group_test.go index 2e892166fc..e576edc56d 100644 --- a/tencentcloud/resource_tc_cfs_access_group_test.go +++ b/tencentcloud/resource_tc_cfs_access_group_test.go @@ -3,12 +3,47 @@ package tencentcloud import ( "context" "fmt" + "strings" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" ) +func init() { + // go test -v ./tencentcloud -sweep=ap-guangzhou -sweep-run=tencentcloud_cfs_access_group + resource.AddTestSweepers("tencentcloud_cfs_access_group", &resource.Sweeper{ + Name: "tencentcloud_cfs_access_group", + F: func(r string) error { + logId := getLogId(contextNil) + ctx := context.WithValue(context.TODO(), logIdKey, logId) + cli, _ := sharedClientForRegion(r) + client := cli.(*TencentCloudClient).apiV3Conn + + service := CfsService{client} + + groups, err := service.DescribeAccessGroup(ctx, "", "") + + if err != nil { + return err + } + + for i := range groups { + id := *groups[i].PGroupId + name := *groups[i].Name + if isResourcePersist(name, nil) || !strings.HasPrefix(name, "pgroup-") { + continue + } + if err := service.DeleteAccessGroup(ctx, id); err != nil { + continue + } + } + + return nil + }, + }) +} + func TestAccTencentCloudCfsAccessGroup(t *testing.T) { t.Parallel() resource.Test(t, resource.TestCase{ diff --git a/tencentcloud/resource_tc_cfs_access_rule_test.go b/tencentcloud/resource_tc_cfs_access_rule_test.go index 4620beaa58..dff83f763c 100644 --- a/tencentcloud/resource_tc_cfs_access_rule_test.go +++ b/tencentcloud/resource_tc_cfs_access_rule_test.go @@ -98,12 +98,9 @@ func testAccCheckCfsAccessRuleExists(n string) resource.TestCheckFunc { } const testAccCfsAccessRule = ` -resource "tencentcloud_cfs_access_group" "foo" { - name = "test_cfs_access_rule" -} resource "tencentcloud_cfs_access_rule" "foo" { - access_group_id = tencentcloud_cfs_access_group.foo.id + access_group_id = "` + BasicCfsAccessGroup + `" auth_client_ip = "10.10.1.0/24" priority = 1 } diff --git a/tencentcloud/resource_tc_cfs_file_system_test.go b/tencentcloud/resource_tc_cfs_file_system_test.go index c332de582e..a404ffa4fe 100644 --- a/tencentcloud/resource_tc_cfs_file_system_test.go +++ b/tencentcloud/resource_tc_cfs_file_system_test.go @@ -163,14 +163,11 @@ resource "tencentcloud_subnet" "subnet" { availability_zone = "ap-guangzhou-3" } -resource "tencentcloud_cfs_access_group" "foo" { - name = "test_cfs_access_rule" -} resource "tencentcloud_cfs_file_system" "foo" { name = "test_cfs_file_system" availability_zone = "ap-guangzhou-3" - access_group_id = tencentcloud_cfs_access_group.foo.id + access_group_id = "%s" protocol = "NFS" vpc_id = tencentcloud_vpc.vpc.id subnet_id = tencentcloud_subnet.subnet.id @@ -181,5 +178,5 @@ resource "tencentcloud_cfs_file_system" "foo" { role = "%s" } } -`, value) +`, BasicCfsAccessGroup, value) }