Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/3647.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:enhancement
resource/tencentcloud_cynosdb_cluster_transparent_encrypt: optimiz code logic
```
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// Code generated by iacg; DO NOT EDIT.
package cynosdb

import (
"context"
"fmt"
"log"
"strconv"
"time"
Expand All @@ -27,6 +27,7 @@ func ResourceTencentCloudCynosdbClusterTransparentEncrypt() *schema.Resource {
"cluster_id": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
Description: "Cluster ID.",
},

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

logId := tccommon.GetLogId(tccommon.ContextNil)

ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)

service := CynosdbService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}

clusterId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
service = CynosdbService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
clusterId = d.Id()
)

respData, err := service.DescribeCynosdbClusterTransparentEncryptById(ctx, clusterId)
if err != nil {
return err
}

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

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

_ = clusterId
return nil
}

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

logId := tccommon.GetLogId(tccommon.ContextNil)

ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)

clusterId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
clusterId = d.Id()
)

needChange := false
mutableArgs := []string{"cluster_id", "key_type", "key_id", "key_region"}
mutableArgs := []string{"key_type", "key_id", "key_region"}
for _, v := range mutableArgs {
if d.HasChange(v) {
needChange = true
Expand All @@ -141,11 +140,6 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.Resour
if needChange {
request := cynosdbv20190107.NewOpenClusterTransparentEncryptRequest()
response := cynosdbv20190107.NewOpenClusterTransparentEncryptResponse()

if v, ok := d.GetOk("cluster_id"); ok {
request.ClusterId = helper.String(v.(string))
}

if v, ok := d.GetOk("key_type"); ok {
request.KeyType = helper.String(v.(string))
}
Expand All @@ -158,13 +152,19 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.Resour
request.KeyRegion = helper.String(v.(string))
}

request.ClusterId = &clusterId
reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCynosdbClient().OpenClusterTransparentEncryptWithContext(ctx, request)
if e != nil {
return tccommon.RetryError(e)
} else {
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
}

if result == nil || result.Response == nil || result.Response.TaskId == nil {
return resource.NonRetryableError(fmt.Errorf("Update cynosdb cluster transparent encrypt failed, Response is nil."))
}

response = result
return nil
})
Expand All @@ -181,25 +181,30 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.Resour
}
}

if d.HasChange("is_open_global_encryption") && !d.IsNewResource() {
if d.HasChange("is_open_global_encryption") {
request := cynosdbv20190107.NewModifyClusterGlobalEncryptionRequest()
response := cynosdbv20190107.NewModifyClusterGlobalEncryptionResponse()
request.ClusterId = helper.String(clusterId)

if v, ok := d.GetOkExists("is_open_global_encryption"); ok {
request.IsOpenGlobalEncryption = helper.Bool(v.(bool))
}

request.ClusterId = &clusterId
reqErr := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCynosdbClient().ModifyClusterGlobalEncryptionWithContext(ctx, request)
if e != nil {
return tccommon.RetryError(e)
} else {
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
}

if result == nil || result.Response == nil || result.Response.TaskId == nil {
return resource.NonRetryableError(fmt.Errorf("Update cynosdb cluster is_open_global_encryption failed, Response is nil."))
}

response = result
return nil
})

if reqErr != nil {
log.Printf("[CRITAL]%s update cynosdb cluster is_open_global_encryption failed, reason:%+v", logId, reqErr)
return reqErr
Expand All @@ -213,7 +218,6 @@ func resourceTencentCloudCynosdbClusterTransparentEncryptUpdate(d *schema.Resour
}
}

_ = clusterId
return resourceTencentCloudCynosdbClusterTransparentEncryptRead(d, meta)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Provides a resource to create a cynosdb cluster_transparent_encrypt
Provides a resource to create a Cynosdb cluster transparent encrypt

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

Expand All @@ -7,19 +7,19 @@ Provides a resource to create a cynosdb cluster_transparent_encrypt
Example Usage

```hcl
resource "tencentcloud_cynosdb_cluster_transparent_encrypt" "cynosdb_cluster_transparent_encrypt" {
resource "tencentcloud_cynosdb_cluster_transparent_encrypt" "example" {
cluster_id = cynosdbmysql-bu6hlulf
is_open_global_encryption = false
key_id = "f063c18b-xxxx-xxxx-xxxx-525400d3a886"
key_region = "ap-guangzhou"
key_type = "custom"
is_open_global_encryption = false
}
```

Import

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

```
terraform import tencentcloud_cynosdb_cluster_transparent_encrypt.cynosdb_cluster_transparent_encrypt cynosdbmysql-bu6hlulf
terraform import tencentcloud_cynosdb_cluster_transparent_encrypt.example cynosdbmysql-bu6hlulf
```
14 changes: 7 additions & 7 deletions website/docs/r/cynosdb_cluster_transparent_encrypt.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ layout: "tencentcloud"
page_title: "TencentCloud: tencentcloud_cynosdb_cluster_transparent_encrypt"
sidebar_current: "docs-tencentcloud-resource-cynosdb_cluster_transparent_encrypt"
description: |-
Provides a resource to create a cynosdb cluster_transparent_encrypt
Provides a resource to create a Cynosdb cluster transparent encrypt
---

# tencentcloud_cynosdb_cluster_transparent_encrypt

Provides a resource to create a cynosdb cluster_transparent_encrypt
Provides a resource to create a Cynosdb cluster transparent encrypt

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

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

```hcl
resource "tencentcloud_cynosdb_cluster_transparent_encrypt" "cynosdb_cluster_transparent_encrypt" {
resource "tencentcloud_cynosdb_cluster_transparent_encrypt" "example" {
cluster_id = cynosdbmysql-bu6hlulf
is_open_global_encryption = false
key_id = "f063c18b-xxxx-xxxx-xxxx-525400d3a886"
key_region = "ap-guangzhou"
key_type = "custom"
is_open_global_encryption = false
}
```

## Argument Reference

The following arguments are supported:

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

## Import

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

```
terraform import tencentcloud_cynosdb_cluster_transparent_encrypt.cynosdb_cluster_transparent_encrypt cynosdbmysql-bu6hlulf
terraform import tencentcloud_cynosdb_cluster_transparent_encrypt.example cynosdbmysql-bu6hlulf
```

Loading