@@ -72,7 +72,7 @@ func resourceTencentCloudAudit() *schema.Resource {
72
72
"key_id" : {
73
73
Type : schema .TypeString ,
74
74
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`." ,
76
76
},
77
77
"log_file_prefix" : {
78
78
Type : schema .TypeString ,
@@ -96,16 +96,8 @@ func resourceTencentCloudAudit() *schema.Resource {
96
96
97
97
func resourceTencentCloudAuditCreate (d * schema.ResourceData , meta interface {}) (errRet error ) {
98
98
defer logElapsed ("resource.tencentcloud_audit.create" )()
99
- logId := getLogId (contextNil )
100
99
request := audit .NewCreateAuditRequest ()
101
100
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
-
109
101
name := d .Get ("name" ).(string )
110
102
cosBucketName := d .Get ("cos_bucket" ).(string )
111
103
cosRegion := d .Get ("cos_region" ).(string )
@@ -140,15 +132,22 @@ func resourceTencentCloudAuditCreate(d *schema.ResourceData, meta interface{}) (
140
132
request .ReadWriteAttribute = helper .IntInt64 (readWriteAttribute )
141
133
request .LogFilePrefix = & logFilePrefix
142
134
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
+
145
149
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
152
151
}
153
152
154
153
auditSwitch := d .Get ("audit_switch" ).(bool )
@@ -168,12 +167,6 @@ func resourceTencentCloudAuditRead(d *schema.ResourceData, meta interface{}) (er
168
167
logId := getLogId (contextNil )
169
168
request := audit .NewDescribeAuditRequest ()
170
169
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
- }()
177
170
auditId := d .Id ()
178
171
179
172
request .AuditName = & auditId
@@ -200,12 +193,12 @@ func resourceTencentCloudAuditRead(d *schema.ResourceData, meta interface{}) (er
200
193
return nil
201
194
}
202
195
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 )
206
199
_ = 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 )
209
202
if * response .Response .IsEnableKmsEncry > 0 {
210
203
_ = d .Set ("key_id" , response .Response .KeyId )
211
204
}
@@ -270,17 +263,24 @@ func resourceTencentCloudAuditUpdate(d *schema.ResourceData, meta interface{}) (
270
263
request .ReadWriteAttribute = helper .IntInt64 (readWriteAttribute )
271
264
request .LogFilePrefix = & logFilePrefix
272
265
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
+ })
275
278
if err != nil {
279
+ log .Printf ("[CRITAL]%s delete audit %s failed, reason:%s\n " , logId , name , err .Error ())
276
280
return err
277
281
}
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 )
284
284
}
285
285
}
286
286
if d .HasChange ("audit_switch" ) {
@@ -303,12 +303,7 @@ func resourceTencentCloudAuditDelete(d *schema.ResourceData, meta interface{}) (
303
303
304
304
logId := getLogId (contextNil )
305
305
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
+
312
307
auditId := d .Id ()
313
308
314
309
request .AuditName = & auditId
@@ -331,28 +326,39 @@ func modifyAuditSwitch(auditname string, auditSwitch bool, meta interface{}) (er
331
326
if auditSwitch {
332
327
request := audit .NewStartLoggingRequest ()
333
328
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
+ })
336
341
if err != nil {
337
342
return err
338
343
}
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
- }
344
344
} else {
345
345
request := audit .NewStopLoggingRequest ()
346
346
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
+ })
349
359
if err != nil {
350
360
return err
351
361
}
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
- }
357
362
}
363
+ return nil
358
364
}
0 commit comments