@@ -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
9797func 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}
0 commit comments