Skip to content

Commit 095348d

Browse files
committed
feat(tco): add resource_tc_organization_org_manage_policy_config
1 parent 545e869 commit 095348d

4 files changed

+39
-31
lines changed

.github/workflows/golangci-lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
# This workflow contains a single job called "build"
1919
golangci-lint:
2020
# The type of runner that the job will run on
21-
runs-on: ubuntu-latest
21+
runs-on: macos-latest
2222

2323
# Steps represent a sequence of tasks that will be executed as part of the job
2424
steps:

tencentcloud/services/tco/resource_tc_organization_org_manage_policy.go

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@ package tco
22

33
import (
44
"context"
5-
"fmt"
6-
"log"
7-
"strings"
8-
95
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
106
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
117
organization "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/organization/v20210331"
8+
"log"
129

1310
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
1411
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
@@ -59,9 +56,8 @@ func resourceTencentCloudOrganizationOrgManagePolicyCreate(d *schema.ResourceDat
5956
logId := tccommon.GetLogId(tccommon.ContextNil)
6057

6158
var (
62-
policyType string
63-
request = organization.NewCreatePolicyRequest()
64-
response = organization.NewCreatePolicyResponse()
59+
request = organization.NewCreatePolicyRequest()
60+
response = organization.NewCreatePolicyResponse()
6561
)
6662
if v, ok := d.GetOk("name"); ok {
6763
request.Name = helper.String(v.(string))
@@ -72,7 +68,6 @@ func resourceTencentCloudOrganizationOrgManagePolicyCreate(d *schema.ResourceDat
7268
}
7369

7470
if v, ok := d.GetOk("type"); ok {
75-
policyType = v.(string)
7671
request.Type = helper.String(v.(string))
7772
}
7873

@@ -95,7 +90,7 @@ func resourceTencentCloudOrganizationOrgManagePolicyCreate(d *schema.ResourceDat
9590
return err
9691
}
9792

98-
d.SetId(strings.Join([]string{helper.UInt64ToStr(*response.Response.PolicyId), policyType}, tccommon.FILED_SP))
93+
d.SetId(helper.UInt64ToStr(*response.Response.PolicyId))
9994

10095
return resourceTencentCloudOrganizationOrgManagePolicyRead(d, meta)
10196
}
@@ -110,12 +105,11 @@ func resourceTencentCloudOrganizationOrgManagePolicyRead(d *schema.ResourceData,
110105

111106
service := OrganizationService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
112107

113-
idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
114-
if len(idSplit) != 2 {
115-
return fmt.Errorf("id is broken,%s", d.Id())
108+
policyId := d.Id()
109+
var policyType string
110+
if v, ok := d.GetOk("type"); ok {
111+
policyType = v.(string)
116112
}
117-
policyId := idSplit[0]
118-
policyType := idSplit[1]
119113

120114
OrgManagePolicy, err := service.DescribeOrganizationOrgManagePolicyById(ctx, policyId, policyType)
121115
if err != nil {
@@ -154,11 +148,7 @@ func resourceTencentCloudOrganizationOrgManagePolicyUpdate(d *schema.ResourceDat
154148

155149
request := organization.NewUpdatePolicyRequest()
156150

157-
idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
158-
if len(idSplit) != 2 {
159-
return fmt.Errorf("id is broken,%s", d.Id())
160-
}
161-
policyId := idSplit[0]
151+
policyId := d.Id()
162152

163153
request.PolicyId = helper.StrToInt64Point(policyId)
164154

@@ -211,12 +201,11 @@ func resourceTencentCloudOrganizationOrgManagePolicyDelete(d *schema.ResourceDat
211201
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
212202

213203
service := OrganizationService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
214-
idSplit := strings.Split(d.Id(), tccommon.FILED_SP)
215-
if len(idSplit) != 2 {
216-
return fmt.Errorf("id is broken,%s", d.Id())
204+
policyId := d.Id()
205+
var policyType string
206+
if v, ok := d.GetOk("type"); ok {
207+
policyType = v.(string)
217208
}
218-
policyId := idSplit[0]
219-
policyType := idSplit[1]
220209

221210
if err := service.DeleteOrganizationOrgManagePolicyById(ctx, policyId, policyType); err != nil {
222211
return err

tencentcloud/services/tco/resource_tc_organization_org_manage_policy_target.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,16 @@ func resourceTencentCloudOrganizationOrgManagePolicyTargetRead(d *schema.Resourc
143143
}
144144

145145
_ = d.Set("target_id", OrgManagePolicyTarget.Uin)
146-
_ = d.Set("target_type", OrgManagePolicyTarget.RelatedType)
147-
_ = d.Set("policy_id", policyId)
146+
if OrgManagePolicyTarget.RelatedType != nil {
147+
switch *OrgManagePolicyTarget.RelatedType {
148+
case 1:
149+
_ = d.Set("target_type", "NODE")
150+
case 2:
151+
_ = d.Set("target_type", "MEMBER")
152+
}
153+
154+
}
155+
_ = d.Set("policy_id", helper.StrToInt(policyId))
148156
_ = d.Set("policy_type", policyType)
149157
return nil
150158
}

tencentcloud/services/tco/resource_tc_organization_org_manage_policy_target_test.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,22 @@ func TestAccTencentCloudOrganizationOrgManagePolicyTargetResource_basic(t *testi
3131

3232
const testAccOrganizationOrgManagePolicyTarget = `
3333
34+
resource "tencentcloud_organization_org_manage_policy" "org_manage_policy" {
35+
name = "FullAccessPolicy2"
36+
content = "{\"tags\":{\"Region\":{\"tag_value\":{\"@@assign\":[\"ap-guangzhou\",\"ap-beijing\"]},\"tag_key\":{\"@@assign\":\"Region\"}}}}"
37+
type = "TAG_POLICY"
38+
description = "Full access policy"
39+
depends_on = [tencentcloud_organization_org_manage_policy_config.org_manage_policy_config]
40+
}
41+
resource "tencentcloud_organization_org_manage_policy_config" "org_manage_policy_config" {
42+
organization_id = 201408
43+
policy_type = "TAG_POLICY"
44+
}
3445
resource "tencentcloud_organization_org_manage_policy_target" "org_manage_policy_target" {
35-
target_id = 10001
36-
target_type = "NODE"
37-
policy_id = 100001
38-
policy_type = "SERVICE_CONTROL_POLICY"
46+
target_id = 100020337821
47+
target_type = "MEMBER"
48+
policy_id = tencentcloud_organization_org_manage_policy.org_manage_policy.id
49+
policy_type = "TAG_POLICY"
3950
}
4051
4152
`

0 commit comments

Comments
 (0)