Skip to content

fix(rum): [117999806] rum_project add read retry operate #2706

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 9 commits into from
Closed
Show file tree
Hide file tree
Changes from 3 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
7 changes: 7 additions & 0 deletions .changelog/2706.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
```release-note:enhancement
resource/tencentcloud_rum_project: add retry operator
```

```release-note:enhancement
resource/tencentcloud_monitor_tmp_alert_group: add retry operator
```
55 changes: 26 additions & 29 deletions tencentcloud/services/rum/resource_tc_rum_project.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import (

func ResourceTencentCloudRumProject() *schema.Resource {
return &schema.Resource{
Read: resourceTencentCloudRumProjectRead,
Create: resourceTencentCloudRumProjectCreate,
Read: resourceTencentCloudRumProjectRead,
Update: resourceTencentCloudRumProjectUpdate,
Delete: resourceTencentCloudRumProjectDelete,
Importer: &schema.ResourceImporter{
Expand Down Expand Up @@ -68,9 +68,9 @@ func ResourceTencentCloudRumProject() *schema.Resource {
},

"desc": {
Type: schema.TypeString,
Optional: true,
Description: " Description of the created project (optional and up to 1,000 characters).",
Type: schema.TypeString,
Optional: true,
Description: "Description of the created project (optional and up to 1,000 characters).",
},

"creator": {
Expand All @@ -82,7 +82,7 @@ func ResourceTencentCloudRumProject() *schema.Resource {
"create_time": {
Type: schema.TypeString,
Computed: true,
Description: "Creata Time.",
Description: "Create Time.",
},

"key": {
Expand Down Expand Up @@ -122,9 +122,8 @@ func resourceTencentCloudRumProjectCreate(d *schema.ResourceData, meta interface
defer tccommon.LogElapsed("resource.tencentcloud_rum_project.create")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)

var (
logId = tccommon.GetLogId(tccommon.ContextNil)
request = rum.NewCreateProjectRequest()
response *rum.CreateProjectResponse
id uint64
Expand Down Expand Up @@ -170,6 +169,7 @@ func resourceTencentCloudRumProjectCreate(d *schema.ResourceData, meta interface
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
}

response = result
return nil
})
Expand All @@ -180,7 +180,6 @@ func resourceTencentCloudRumProjectCreate(d *schema.ResourceData, meta interface
}

id = *response.Response.ID

d.SetId(strconv.Itoa(int(id)))
return resourceTencentCloudRumProjectRead(d, meta)
}
Expand All @@ -189,15 +188,14 @@ func resourceTencentCloudRumProjectRead(d *schema.ResourceData, meta interface{}
defer tccommon.LogElapsed("resource.tencentcloud_rum_project.read")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)

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

projectId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
service = RumService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
projectId = d.Id()
)

project, err := service.DescribeRumProject(ctx, projectId)

if err != nil {
return err
}
Expand Down Expand Up @@ -274,19 +272,18 @@ func resourceTencentCloudRumProjectUpdate(d *schema.ResourceData, meta interface
defer tccommon.LogElapsed("resource.tencentcloud_rum_project.update")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)

request := rum.NewModifyProjectRequest()

projectId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
request = rum.NewModifyProjectRequest()
projectId = d.Id()
)

id, e := strconv.Atoi(projectId)
if e != nil {
return fmt.Errorf("[ERROR]%s api[%s] sting to uint64 error, err [%s]", logId, request.GetAction(), e)
}

request.ID = helper.Uint64(uint64(id))

if d.HasChange("name") {
if v, ok := d.GetOk("name"); ok {
request.Name = helper.String(v.(string))
Expand All @@ -297,7 +294,6 @@ func resourceTencentCloudRumProjectUpdate(d *schema.ResourceData, meta interface
if v, ok := d.GetOk("instance_id"); ok {
request.InstanceID = helper.String(v.(string))
}

}

if d.HasChange("rate") {
Expand Down Expand Up @@ -344,11 +340,12 @@ func resourceTencentCloudRumProjectUpdate(d *schema.ResourceData, meta interface
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
}

return nil
})

if err != nil {
log.Printf("[CRITAL]%s create rum project failed, reason:%+v", logId, err)
log.Printf("[CRITAL]%s update rum project failed, reason:%+v", logId, err)
return err
}

Expand All @@ -359,12 +356,12 @@ func resourceTencentCloudRumProjectDelete(d *schema.ResourceData, meta interface
defer tccommon.LogElapsed("resource.tencentcloud_rum_project.delete")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)

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

projectId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
service = RumService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
projectId = d.Id()
)

if err := service.DeleteRumProjectById(ctx, projectId); err != nil {
return err
Expand Down
33 changes: 22 additions & 11 deletions tencentcloud/services/rum/resource_tc_rum_project.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,32 @@ Provides a resource to create a rum project
Example Usage

```hcl
resource "tencentcloud_rum_project" "project" {
name = "projectName"
instance_id = "rum-pasZKEI3RLgakj"
rate = "100"
enable_url_group = "0"
type = "web"
repo = ""
url = "iac-tf.com"
desc = "projectDesc-1"
resource "tencentcloud_rum_taw_instance" "example" {
area_id = "1"
charge_type = "1"
data_retention_days = "30"
instance_name = "tf-example"
instance_desc = "desc."

tags = {
createdBy = "terraform"
}
}

resource "tencentcloud_rum_project" "example" {
name = "tf-example"
instance_id = tencentcloud_rum_taw_instance.example.id
rate = "100"
enable_url_group = "0"
type = "web"
repo = "https://github.com/xxx"
url = "iac-tf.com"
desc = "desc."
}
```
Import

rum project can be imported using the id, e.g.
```
$ terraform import tencentcloud_rum_project.project project_id
```
$ terraform import tencentcloud_rum_project.example 139422
```
47 changes: 24 additions & 23 deletions tencentcloud/services/rum/resource_tc_rum_taw_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import (

func ResourceTencentCloudRumTawInstance() *schema.Resource {
return &schema.Resource{
Read: resourceTencentCloudRumTawInstanceRead,
Create: resourceTencentCloudRumTawInstanceCreate,
Read: resourceTencentCloudRumTawInstanceRead,
Update: resourceTencentCloudRumTawInstanceUpdate,
Delete: resourceTencentCloudRumTawInstanceDelete,
Importer: &schema.ResourceImporter{
Expand Down Expand Up @@ -116,9 +116,8 @@ func resourceTencentCloudRumTawInstanceCreate(d *schema.ResourceData, meta inter
defer tccommon.LogElapsed("resource.tencentcloud_rum_taw_instance.create")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)

var (
logId = tccommon.GetLogId(tccommon.ContextNil)
request = rum.NewCreateTawInstanceRequest()
response *rum.CreateTawInstanceResponse
instanceId string
Expand Down Expand Up @@ -178,6 +177,7 @@ func resourceTencentCloudRumTawInstanceCreate(d *schema.ResourceData, meta inter
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
}

response = result
return nil
})
Expand All @@ -188,7 +188,6 @@ func resourceTencentCloudRumTawInstanceCreate(d *schema.ResourceData, meta inter
}

instanceId = *response.Response.InstanceId

d.SetId(instanceId)

ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
Expand All @@ -208,15 +207,14 @@ func resourceTencentCloudRumTawInstanceRead(d *schema.ResourceData, meta interfa
defer tccommon.LogElapsed("resource.tencentcloud_rum_taw_instance.read")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)

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

instanceId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
service = RumService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
instanceId = d.Id()
)

tawInstance, err := service.DescribeRumTawInstance(ctx, instanceId)

if err != nil {
return err
}
Expand Down Expand Up @@ -248,10 +246,12 @@ func resourceTencentCloudRumTawInstanceRead(d *schema.ResourceData, meta interfa
if tags.Key != nil {
tagsMap["key"] = tags.Key
}

if tags.Value != nil {
tagsMap["value"] = tags.Value
}
}

_ = d.Set("tags", tagsMap)
}

Expand Down Expand Up @@ -306,12 +306,12 @@ func resourceTencentCloudRumTawInstanceUpdate(d *schema.ResourceData, meta inter
defer tccommon.LogElapsed("resource.tencentcloud_rum_taw_instance.update")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)

request := rum.NewModifyInstanceRequest()

instanceId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
request = rum.NewModifyInstanceRequest()
instanceId = d.Id()
)

request.InstanceId = &instanceId

Expand Down Expand Up @@ -343,6 +343,7 @@ func resourceTencentCloudRumTawInstanceUpdate(d *schema.ResourceData, meta inter
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
}

return nil
})

Expand All @@ -369,12 +370,12 @@ func resourceTencentCloudRumTawInstanceDelete(d *schema.ResourceData, meta inter
defer tccommon.LogElapsed("resource.tencentcloud_rum_taw_instance.delete")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)

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

instanceId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
service = RumService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
instanceId = d.Id()
)

if err := service.DeleteRumTawInstanceById(ctx, instanceId); err != nil {
return err
Expand Down
16 changes: 8 additions & 8 deletions tencentcloud/services/rum/resource_tc_rum_taw_instance.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ Provides a resource to create a rum taw_instance
Example Usage

```hcl
resource "tencentcloud_rum_taw_instance" "taw_instance" {
area_id = "1"
charge_type = "1"
resource "tencentcloud_rum_taw_instance" "example" {
area_id = "1"
charge_type = "1"
data_retention_days = "30"
instance_name = "instanceName-1"
instance_name = "tf-example"
instance_desc = "desc."

tags = {
createdBy = "terraform"
}
instance_desc = "instanceDesc-1"
}

```
Import

rum taw_instance can be imported using the id, e.g.
```
$ terraform import tencentcloud_rum_taw_instance.taw_instance tawInstance_id
```
$ terraform import tencentcloud_rum_taw_instance.example rum-WYsjMaiGOVXBeJ
```
10 changes: 10 additions & 0 deletions tencentcloud/services/rum/service_tencentcloud_rum.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ import (
"context"
"log"
"strconv"
"time"

sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"

tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"

Expand Down Expand Up @@ -115,8 +118,15 @@ func (me *RumService) DescribeRumProject(ctx context.Context, id string) (projec
request.Offset = &offset
request.Limit = &pageSize
ratelimit.Check(request.GetAction())
ReTeyDescribe:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这儿拼写错误,不能搞成通用的retry么,没必要指定固定的重试错误码

response, err := me.client.UseRumClient().DescribeProjects(request)
if err != nil {
// Exceeded request frequency limit
if err.(*sdkErrors.TencentCloudSDKError).Code == "RequestLimitExceeded" {
time.Sleep(time.Second * 1)
goto ReTeyDescribe
}

log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
logId, request.GetAction(), request.ToJsonString(), err.Error())
errRet = err
Expand Down
Loading
Loading