Skip to content

Commit f3740a7

Browse files
authored
fix(cynosdb): [122321738] tencentcloud_cynosdb_cluster_transparent_encrypt optimiz code logic (#3647)
* add * add
1 parent b090d23 commit f3740a7

File tree

4 files changed

+44
-37
lines changed

4 files changed

+44
-37
lines changed

.changelog/3647.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_cynosdb_cluster_transparent_encrypt: optimiz code logic
3+
```

tencentcloud/services/cynosdb/resource_tc_cynosdb_cluster_transparent_encrypt.go

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
// Code generated by iacg; DO NOT EDIT.
21
package cynosdb
32

43
import (
54
"context"
5+
"fmt"
66
"log"
77
"strconv"
88
"time"
@@ -27,6 +27,7 @@ func ResourceTencentCloudCynosdbClusterTransparentEncrypt() *schema.Resource {
2727
"cluster_id": {
2828
Type: schema.TypeString,
2929
Required: true,
30+
ForceNew: true,
3031
Description: "Cluster ID.",
3132
},
3233

@@ -78,22 +79,21 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptRead(d *schema.Resource
7879
defer tccommon.LogElapsed("resource.tencentcloud_cynosdb_cluster_transparent_encrypt.read")()
7980
defer tccommon.InconsistentCheck(d, meta)()
8081

81-
logId := tccommon.GetLogId(tccommon.ContextNil)
82-
83-
ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
84-
85-
service := CynosdbService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
86-
87-
clusterId := d.Id()
82+
var (
83+
logId = tccommon.GetLogId(tccommon.ContextNil)
84+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
85+
service = CynosdbService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
86+
clusterId = d.Id()
87+
)
8888

8989
respData, err := service.DescribeCynosdbClusterTransparentEncryptById(ctx, clusterId)
9090
if err != nil {
9191
return err
9292
}
9393

9494
if respData == nil {
95+
log.Printf("[WARN]%s resource `tencentcloud_cynosdb_cluster_transparent_encrypt` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
9596
d.SetId("")
96-
log.Printf("[WARN]%s resource `cynosdb_cluster_transparent_encrypt` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
9797
return nil
9898
}
9999

@@ -115,22 +115,21 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptRead(d *schema.Resource
115115
_ = d.Set("is_open_global_encryption", respData.IsOpenGlobalEncryption)
116116
}
117117

118-
_ = clusterId
119118
return nil
120119
}
121120

122121
func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.ResourceData, meta interface{}) error {
123122
defer tccommon.LogElapsed("resource.tencentcloud_cynosdb_cluster_transparent_encrypt.update")()
124123
defer tccommon.InconsistentCheck(d, meta)()
125124

126-
logId := tccommon.GetLogId(tccommon.ContextNil)
127-
128-
ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
129-
130-
clusterId := d.Id()
125+
var (
126+
logId = tccommon.GetLogId(tccommon.ContextNil)
127+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
128+
clusterId = d.Id()
129+
)
131130

132131
needChange := false
133-
mutableArgs := []string{"cluster_id", "key_type", "key_id", "key_region"}
132+
mutableArgs := []string{"key_type", "key_id", "key_region"}
134133
for _, v := range mutableArgs {
135134
if d.HasChange(v) {
136135
needChange = true
@@ -141,11 +140,6 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.Resour
141140
if needChange {
142141
request := cynosdbv20190107.NewOpenClusterTransparentEncryptRequest()
143142
response := cynosdbv20190107.NewOpenClusterTransparentEncryptResponse()
144-
145-
if v, ok := d.GetOk("cluster_id"); ok {
146-
request.ClusterId = helper.String(v.(string))
147-
}
148-
149143
if v, ok := d.GetOk("key_type"); ok {
150144
request.KeyType = helper.String(v.(string))
151145
}
@@ -158,13 +152,19 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.Resour
158152
request.KeyRegion = helper.String(v.(string))
159153
}
160154

155+
request.ClusterId = &clusterId
161156
reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
162157
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCynosdbClient().OpenClusterTransparentEncryptWithContext(ctx, request)
163158
if e != nil {
164159
return tccommon.RetryError(e)
165160
} else {
166161
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
167162
}
163+
164+
if result == nil || result.Response == nil || result.Response.TaskId == nil {
165+
return resource.NonRetryableError(fmt.Errorf("Update cynosdb cluster transparent encrypt failed, Response is nil."))
166+
}
167+
168168
response = result
169169
return nil
170170
})
@@ -181,25 +181,30 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.Resour
181181
}
182182
}
183183

184-
if d.HasChange("is_open_global_encryption") && !d.IsNewResource() {
184+
if d.HasChange("is_open_global_encryption") {
185185
request := cynosdbv20190107.NewModifyClusterGlobalEncryptionRequest()
186186
response := cynosdbv20190107.NewModifyClusterGlobalEncryptionResponse()
187-
request.ClusterId = helper.String(clusterId)
188-
189187
if v, ok := d.GetOkExists("is_open_global_encryption"); ok {
190188
request.IsOpenGlobalEncryption = helper.Bool(v.(bool))
191189
}
192190

191+
request.ClusterId = &clusterId
193192
reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
194193
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCynosdbClient().ModifyClusterGlobalEncryptionWithContext(ctx, request)
195194
if e != nil {
196195
return tccommon.RetryError(e)
197196
} else {
198197
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
199198
}
199+
200+
if result == nil || result.Response == nil || result.Response.TaskId == nil {
201+
return resource.NonRetryableError(fmt.Errorf("Update cynosdb cluster is_open_global_encryption failed, Response is nil."))
202+
}
203+
200204
response = result
201205
return nil
202206
})
207+
203208
if reqErr != nil {
204209
log.Printf("[CRITAL]%s update cynosdb cluster is_open_global_encryption failed, reason:%+v", logId, reqErr)
205210
return reqErr
@@ -213,7 +218,6 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.Resour
213218
}
214219
}
215220

216-
_ = clusterId
217221
return resourceTencentCloudCynosdbClusterTransparentEncryptRead(d, meta)
218222
}
219223

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Provides a resource to create a cynosdb cluster_transparent_encrypt
1+
Provides a resource to create a Cynosdb cluster transparent encrypt
22

33
~> **NOTE:** Once activated, it cannot be deactivated.
44

@@ -7,19 +7,19 @@ Provides a resource to create a cynosdb cluster_transparent_encrypt
77
Example Usage
88

99
```hcl
10-
resource "tencentcloud_cynosdb_cluster_transparent_encrypt" "cynosdb_cluster_transparent_encrypt" {
10+
resource "tencentcloud_cynosdb_cluster_transparent_encrypt" "example" {
1111
cluster_id = cynosdbmysql-bu6hlulf
12-
is_open_global_encryption = false
1312
key_id = "f063c18b-xxxx-xxxx-xxxx-525400d3a886"
1413
key_region = "ap-guangzhou"
1514
key_type = "custom"
15+
is_open_global_encryption = false
1616
}
1717
```
1818

1919
Import
2020

21-
cynosdb cluster_transparent_encrypt can be imported using the id, e.g.
21+
Cynosdb cluster transparent encrypt can be imported using the id, e.g.
2222

2323
```
24-
terraform import tencentcloud_cynosdb_cluster_transparent_encrypt.cynosdb_cluster_transparent_encrypt cynosdbmysql-bu6hlulf
24+
terraform import tencentcloud_cynosdb_cluster_transparent_encrypt.example cynosdbmysql-bu6hlulf
2525
```

website/docs/r/cynosdb_cluster_transparent_encrypt.html.markdown

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ layout: "tencentcloud"
44
page_title: "TencentCloud: tencentcloud_cynosdb_cluster_transparent_encrypt"
55
sidebar_current: "docs-tencentcloud-resource-cynosdb_cluster_transparent_encrypt"
66
description: |-
7-
Provides a resource to create a cynosdb cluster_transparent_encrypt
7+
Provides a resource to create a Cynosdb cluster transparent encrypt
88
---
99

1010
# tencentcloud_cynosdb_cluster_transparent_encrypt
1111

12-
Provides a resource to create a cynosdb cluster_transparent_encrypt
12+
Provides a resource to create a Cynosdb cluster transparent encrypt
1313

1414
~> **NOTE:** Once activated, it cannot be deactivated.
1515

@@ -18,20 +18,20 @@ Provides a resource to create a cynosdb cluster_transparent_encrypt
1818
## Example Usage
1919

2020
```hcl
21-
resource "tencentcloud_cynosdb_cluster_transparent_encrypt" "cynosdb_cluster_transparent_encrypt" {
21+
resource "tencentcloud_cynosdb_cluster_transparent_encrypt" "example" {
2222
cluster_id = cynosdbmysql-bu6hlulf
23-
is_open_global_encryption = false
2423
key_id = "f063c18b-xxxx-xxxx-xxxx-525400d3a886"
2524
key_region = "ap-guangzhou"
2625
key_type = "custom"
26+
is_open_global_encryption = false
2727
}
2828
```
2929

3030
## Argument Reference
3131

3232
The following arguments are supported:
3333

34-
* `cluster_id` - (Required, String) Cluster ID.
34+
* `cluster_id` - (Required, String, ForceNew) Cluster ID.
3535
* `key_type` - (Required, String) Key type (cloud, custom).
3636
* `is_open_global_encryption` - (Optional, Bool) Whether to enable global encryption.
3737
* `key_id` - (Optional, String) Key Id.
@@ -47,9 +47,9 @@ In addition to all arguments above, the following attributes are exported:
4747

4848
## Import
4949

50-
cynosdb cluster_transparent_encrypt can be imported using the id, e.g.
50+
Cynosdb cluster transparent encrypt can be imported using the id, e.g.
5151

5252
```
53-
terraform import tencentcloud_cynosdb_cluster_transparent_encrypt.cynosdb_cluster_transparent_encrypt cynosdbmysql-bu6hlulf
53+
terraform import tencentcloud_cynosdb_cluster_transparent_encrypt.example cynosdbmysql-bu6hlulf
5454
```
5555

0 commit comments

Comments
 (0)