Skip to content

Commit dcf8755

Browse files
committed
fix bugs
1 parent 24f7d8e commit dcf8755

File tree

2 files changed

+63
-57
lines changed

2 files changed

+63
-57
lines changed

tencentcloud/resource_tc_audit.go

Lines changed: 62 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func resourceTencentCloudAudit() *schema.Resource {
7272
"key_id": {
7373
Type: schema.TypeString,
7474
Optional: true,
75-
Description: "Existing CMK unique key. This field can be get by data source `tencentcloud_audit_key_alias`.Caution: the region of the KMS must be as same as the `cos_region`.",
75+
Description: "Existing CMK unique key. This field can be get by data source `tencentcloud_audit_key_alias`. Caution: the region of the KMS must be as same as the `cos_region`.",
7676
},
7777
"log_file_prefix": {
7878
Type: schema.TypeString,
@@ -96,16 +96,8 @@ func resourceTencentCloudAudit() *schema.Resource {
9696

9797
func resourceTencentCloudAuditCreate(d *schema.ResourceData, meta interface{}) (errRet error) {
9898
defer logElapsed("resource.tencentcloud_audit.create")()
99-
logId := getLogId(contextNil)
10099
request := audit.NewCreateAuditRequest()
101100

102-
defer func() {
103-
if errRet != nil {
104-
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
105-
logId, request.GetAction(), request.ToJsonString(), errRet.Error())
106-
}
107-
}()
108-
109101
name := d.Get("name").(string)
110102
cosBucketName := d.Get("cos_bucket").(string)
111103
cosRegion := d.Get("cos_region").(string)
@@ -140,15 +132,22 @@ func resourceTencentCloudAuditCreate(d *schema.ResourceData, meta interface{}) (
140132
request.ReadWriteAttribute = helper.IntInt64(readWriteAttribute)
141133
request.LogFilePrefix = &logFilePrefix
142134

143-
ratelimit.Check(request.GetAction())
144-
response, err := meta.(*TencentCloudClient).apiV3Conn.UseAuditClient().CreateAudit(request)
135+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
136+
ratelimit.Check(request.GetAction())
137+
response, err := meta.(*TencentCloudClient).apiV3Conn.UseAuditClient().CreateAudit(request)
138+
if err != nil {
139+
return retryError(err)
140+
}
141+
if response != nil && response.Response != nil && int(*response.Response.IsSuccess) > 0 {
142+
d.SetId(name)
143+
return nil
144+
} else {
145+
return resource.NonRetryableError(fmt.Errorf("create audit %s failed", name))
146+
}
147+
})
148+
145149
if err != nil {
146-
return err
147-
}
148-
if response != nil && response.Response != nil && int(*response.Response.IsSuccess) > 0 {
149-
d.SetId(name)
150-
} else {
151-
return fmt.Errorf("create audit %s failed", name)
150+
return nil
152151
}
153152

154153
auditSwitch := d.Get("audit_switch").(bool)
@@ -168,12 +167,6 @@ func resourceTencentCloudAuditRead(d *schema.ResourceData, meta interface{}) (er
168167
logId := getLogId(contextNil)
169168
request := audit.NewDescribeAuditRequest()
170169

171-
defer func() {
172-
if errRet != nil {
173-
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
174-
logId, request.GetAction(), request.ToJsonString(), errRet.Error())
175-
}
176-
}()
177170
auditId := d.Id()
178171

179172
request.AuditName = &auditId
@@ -200,12 +193,12 @@ func resourceTencentCloudAuditRead(d *schema.ResourceData, meta interface{}) (er
200193
return nil
201194
}
202195

203-
_ = d.Set("name", *response.Response.AuditName)
204-
_ = d.Set("read_write_attribute", *response.Response.ReadWriteAttribute)
205-
_ = d.Set("log_file_prefix", *response.Response.LogFilePrefix)
196+
_ = d.Set("name", response.Response.AuditName)
197+
_ = d.Set("read_write_attribute", response.Response.ReadWriteAttribute)
198+
_ = d.Set("log_file_prefix", response.Response.LogFilePrefix)
206199
_ = d.Set("enable_kms_encry", *response.Response.IsEnableKmsEncry > 0)
207-
_ = d.Set("cos_region", *response.Response.CosRegion)
208-
_ = d.Set("cos_bucket", *response.Response.CosBucketName)
200+
_ = d.Set("cos_region", response.Response.CosRegion)
201+
_ = d.Set("cos_bucket", response.Response.CosBucketName)
209202
if *response.Response.IsEnableKmsEncry > 0 {
210203
_ = d.Set("key_id", response.Response.KeyId)
211204
}
@@ -270,17 +263,24 @@ func resourceTencentCloudAuditUpdate(d *schema.ResourceData, meta interface{}) (
270263
request.ReadWriteAttribute = helper.IntInt64(readWriteAttribute)
271264
request.LogFilePrefix = &logFilePrefix
272265

273-
ratelimit.Check(request.GetAction())
274-
response, err := meta.(*TencentCloudClient).apiV3Conn.UseAuditClient().UpdateAudit(request)
266+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
267+
ratelimit.Check(request.GetAction())
268+
response, err := meta.(*TencentCloudClient).apiV3Conn.UseAuditClient().UpdateAudit(request)
269+
if err != nil {
270+
return retryError(err)
271+
}
272+
if response != nil && response.Response != nil && int(*response.Response.IsSuccess) > 0 {
273+
return nil
274+
} else {
275+
return resource.NonRetryableError(fmt.Errorf("update audit %s failed", name))
276+
}
277+
})
275278
if err != nil {
279+
log.Printf("[CRITAL]%s delete audit %s failed, reason:%s\n", logId, name, err.Error())
276280
return err
277281
}
278-
if response != nil && response.Response != nil && int(*response.Response.IsSuccess) > 0 {
279-
for _, attr := range attributeSet {
280-
d.SetPartial(attr)
281-
}
282-
} else {
283-
return fmt.Errorf("update audit %s failed", name)
282+
for _, attr := range attributeSet {
283+
d.SetPartial(attr)
284284
}
285285
}
286286
if d.HasChange("audit_switch") {
@@ -303,12 +303,7 @@ func resourceTencentCloudAuditDelete(d *schema.ResourceData, meta interface{}) (
303303

304304
logId := getLogId(contextNil)
305305
request := audit.NewDeleteAuditRequest()
306-
defer func() {
307-
if errRet != nil {
308-
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
309-
logId, request.GetAction(), request.ToJsonString(), errRet.Error())
310-
}
311-
}()
306+
312307
auditId := d.Id()
313308

314309
request.AuditName = &auditId
@@ -331,28 +326,39 @@ func modifyAuditSwitch(auditname string, auditSwitch bool, meta interface{}) (er
331326
if auditSwitch {
332327
request := audit.NewStartLoggingRequest()
333328
request.AuditName = &auditname
334-
ratelimit.Check(request.GetAction())
335-
response, err := meta.(*TencentCloudClient).apiV3Conn.UseAuditClient().StartLogging(request)
329+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
330+
ratelimit.Check(request.GetAction())
331+
response, err := meta.(*TencentCloudClient).apiV3Conn.UseAuditClient().StartLogging(request)
332+
if err != nil {
333+
return retryError(err)
334+
}
335+
if response != nil && response.Response != nil && int(*response.Response.IsSuccess) > 0 {
336+
return nil
337+
} else {
338+
return resource.NonRetryableError(fmt.Errorf("Start logging failed"))
339+
}
340+
})
336341
if err != nil {
337342
return err
338343
}
339-
if response != nil && response.Response != nil && int(*response.Response.IsSuccess) > 0 {
340-
return nil
341-
} else {
342-
return fmt.Errorf("Start logging failed")
343-
}
344344
} else {
345345
request := audit.NewStopLoggingRequest()
346346
request.AuditName = &auditname
347-
ratelimit.Check(request.GetAction())
348-
response, err := meta.(*TencentCloudClient).apiV3Conn.UseAuditClient().StopLogging(request)
347+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
348+
ratelimit.Check(request.GetAction())
349+
response, err := meta.(*TencentCloudClient).apiV3Conn.UseAuditClient().StopLogging(request)
350+
if err != nil {
351+
return retryError(err)
352+
}
353+
if response != nil && response.Response != nil && int(*response.Response.IsSuccess) > 0 {
354+
return nil
355+
} else {
356+
return resource.NonRetryableError(fmt.Errorf("Stop logging failed"))
357+
}
358+
})
349359
if err != nil {
350360
return err
351361
}
352-
if response != nil && response.Response != nil && int(*response.Response.IsSuccess) > 0 {
353-
return nil
354-
} else {
355-
return fmt.Errorf("Stop logging failed")
356-
}
357362
}
363+
return nil
358364
}

website/docs/r/audit.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ The following arguments are supported:
3434
* `name` - (Required, ForceNew) Name of audit. Valid length ranges from 3 to 128. Only alpha character or numbers or `_` supported.
3535
* `read_write_attribute` - (Required) Event attribute filter. 1 for readonly, 2 for writeonly, 3 for all.
3636
* `enable_kms_encry` - (Optional) Indicate whether the log is encrypt with KMS algorithm or not.
37-
* `key_id` - (Optional) Existing CMK unique key. This field can be get by data source `tencentcloud_audit_key_alias`.Caution: the region of the KMS must be as same as the `cos_region`.
37+
* `key_id` - (Optional) Existing CMK unique key. This field can be get by data source `tencentcloud_audit_key_alias`. Caution: the region of the KMS must be as same as the `cos_region`.
3838
* `log_file_prefix` - (Optional) The log file name prefix. The length ranges from 3 to 40. If not set, the account ID will be the log file prefix.
3939

4040
## Attributes Reference

0 commit comments

Comments
 (0)