Skip to content

Commit aa1cd60

Browse files
authored
fix(cfw): [127836562] tencentcloud_cfw_edge_policy optmize code logic (#3541)
* add * add
1 parent 5a41484 commit aa1cd60

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

.changelog/3541.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_cfw_edge_policy: optmize code logic
3+
```

tencentcloud/services/cfw/resource_tc_cfw_edge_policy.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ func resourceTencentCloudCfwEdgePolicyCreate(d *schema.ResourceData, meta interf
163163
}
164164

165165
request.Rules = append(request.Rules, &createRuleItem)
166-
167166
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
168167
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseCfwClient().AddAclRule(request)
169168
if e != nil {
@@ -172,6 +171,10 @@ func resourceTencentCloudCfwEdgePolicyCreate(d *schema.ResourceData, meta interf
172171
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
173172
}
174173

174+
if result == nil || result.Response == nil {
175+
return tccommon.RetryError(fmt.Errorf("Create cfw edgePolicy failed, Response is nil."))
176+
}
177+
175178
response = result
176179
return nil
177180
})
@@ -181,6 +184,10 @@ func resourceTencentCloudCfwEdgePolicyCreate(d *schema.ResourceData, meta interf
181184
return err
182185
}
183186

187+
if len(response.Response.RuleUuid) == 0 {
188+
return fmt.Errorf("RuleUuid is nil.")
189+
}
190+
184191
ruleUuid := *response.Response.RuleUuid[0]
185192
uuid = strconv.FormatInt(ruleUuid, 10)
186193
d.SetId(uuid)
@@ -207,8 +214,8 @@ func resourceTencentCloudCfwEdgePolicyRead(d *schema.ResourceData, meta interfac
207214
}
208215

209216
if edgePolicy == nil {
217+
log.Printf("[WARN]%s resource `tencentcloud_cfw_edge_policy` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
210218
d.SetId("")
211-
log.Printf("[WARN]%s resource `CfwEdgePolicy` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
212219
return nil
213220
}
214221

@@ -303,7 +310,6 @@ func resourceTencentCloudCfwEdgePolicyUpdate(d *schema.ResourceData, meta interf
303310
)
304311

305312
immutableArgs := []string{"uuid", "direction"}
306-
307313
for _, v := range immutableArgs {
308314
if d.HasChange(v) {
309315
return fmt.Errorf("argument `%s` cannot be changed", v)
@@ -341,7 +347,7 @@ func resourceTencentCloudCfwEdgePolicyUpdate(d *schema.ResourceData, meta interf
341347
modifyRuleItem.Port = helper.String(v.(string))
342348
}
343349

344-
if v, ok := d.GetOk("direction"); ok {
350+
if v, ok := d.GetOkExists("direction"); ok {
345351
modifyRuleItem.Direction = helper.IntUint64(v.(int))
346352
}
347353

tencentcloud/services/cfw/service_tencentcloud_cfw.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"log"
77
"strconv"
88

9+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
910
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
1011

1112
cfw "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfw/v20190904"
@@ -213,16 +214,23 @@ func (me *CfwService) DeleteCfwEdgePolicyById(ctx context.Context, uuid string)
213214
}
214215
}()
215216

216-
ratelimit.Check(request.GetAction())
217+
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
218+
ratelimit.Check(request.GetAction())
219+
result, e := me.client.UseCfwClient().RemoveAclRule(request)
220+
if e != nil {
221+
return tccommon.RetryError(e)
222+
} else {
223+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
224+
}
225+
226+
return nil
227+
})
217228

218-
response, err := me.client.UseCfwClient().RemoveAclRule(request)
219229
if err != nil {
220-
errRet = err
221-
return
230+
log.Printf("[CRITAL]%s update cfw edgePolicy failed, reason:%+v", logId, err)
231+
return err
222232
}
223233

224-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
225-
226234
return
227235
}
228236

0 commit comments

Comments
 (0)