@@ -1321,6 +1321,12 @@ func resourceTencentCloudTkeCluster() *schema.Resource {
13211321 Optional : true ,
13221322 Description : "Specify id of existing CLS log topic, or auto create a new topic by leave it empty." ,
13231323 },
1324+ "delete_event_log_and_topic" : {
1325+ Type : schema .TypeBool ,
1326+ Optional : true ,
1327+ Description : "when you want to close the cluster event persistence or delete the cluster, you can use this parameter to determine " +
1328+ "whether the event persistence log set and topic created by default will be deleted." ,
1329+ },
13241330 },
13251331 },
13261332 },
@@ -1346,6 +1352,13 @@ func resourceTencentCloudTkeCluster() *schema.Resource {
13461352 Optional : true ,
13471353 Description : "Specify id of existing CLS log topic, or auto create a new topic by leave it empty." ,
13481354 },
1355+ "delete_audit_log_and_topic" : {
1356+ Type : schema .TypeBool ,
1357+ Optional : true ,
1358+ Description : "when you want to close the cluster audit log or delete the cluster, you can use " +
1359+ "this parameter to determine whether the audit log set and topic created by default will" +
1360+ " be deleted." ,
1361+ },
13491362 },
13501363 },
13511364 },
@@ -2295,7 +2308,7 @@ func resourceTencentCloudTkeClusterCreate(d *schema.ResourceData, meta interface
22952308 logSetId := v ["log_set_id" ].(string )
22962309 topicId := v ["topic_id" ].(string )
22972310 if enabled {
2298- err := service .SwitchEventPersistence (ctx , id , logSetId , topicId , enabled )
2311+ err := service .SwitchEventPersistence (ctx , id , logSetId , topicId , enabled , false )
22992312 if err != nil {
23002313 return err
23012314 }
@@ -2307,7 +2320,7 @@ func resourceTencentCloudTkeClusterCreate(d *schema.ResourceData, meta interface
23072320 logSetId := v ["log_set_id" ].(string )
23082321 topicId := v ["topic_id" ].(string )
23092322 if enabled {
2310- err := service .SwitchClusterAudit (ctx , id , logSetId , topicId , enabled )
2323+ err := service .SwitchClusterAudit (ctx , id , logSetId , topicId , enabled , false )
23112324 if err != nil {
23122325 return err
23132326 }
@@ -2862,12 +2875,15 @@ func resourceTencentCloudTkeClusterUpdate(d *schema.ResourceData, meta interface
28622875 enabled := false
28632876 logSetId := ""
28642877 topicId := ""
2878+ deleteEventLog := false
28652879 if ok {
28662880 enabled = v ["enabled" ].(bool )
28672881 logSetId = v ["log_set_id" ].(string )
28682882 topicId = v ["topic_id" ].(string )
2883+ deleteEventLog = v ["delete_event_log_and_topic" ].(bool )
28692884 }
2870- err := tkeService .SwitchEventPersistence (ctx , id , logSetId , topicId , enabled )
2885+
2886+ err := tkeService .SwitchEventPersistence (ctx , id , logSetId , topicId , enabled , deleteEventLog )
28712887 if err != nil {
28722888 return err
28732889 }
@@ -2878,12 +2894,15 @@ func resourceTencentCloudTkeClusterUpdate(d *schema.ResourceData, meta interface
28782894 enabled := false
28792895 logSetId := ""
28802896 topicId := ""
2897+ deleteAuditLog := false
28812898 if ok {
28822899 enabled = v ["enabled" ].(bool )
28832900 logSetId = v ["log_set_id" ].(string )
28842901 topicId = v ["topic_id" ].(string )
2902+ deleteAuditLog = v ["delete_audit_log_and_topic" ].(bool )
28852903 }
2886- err := tkeService .SwitchClusterAudit (ctx , id , logSetId , topicId , enabled )
2904+
2905+ err := tkeService .SwitchClusterAudit (ctx , id , logSetId , topicId , enabled , deleteAuditLog )
28872906 if err != nil {
28882907 return err
28892908 }
@@ -2903,8 +2922,40 @@ func resourceTencentCloudTkeClusterDelete(d *schema.ResourceData, meta interface
29032922 logId := getLogId (contextNil )
29042923 ctx := context .WithValue (context .TODO (), logIdKey , logId )
29052924 service := TkeService {client : meta .(* TencentCloudClient ).apiV3Conn }
2925+ deleteEventLogSetAndTopic := false
2926+ enableEventLog := false
2927+ deleteAuditLogSetAndTopic := false
2928+ if v , ok := helper .InterfacesHeadMap (d , "event_persistence" ); ok {
2929+ deleteEventLogSetAndTopic = v ["delete_event_log_and_topic" ].(bool )
2930+ // get cluster current enabled status
2931+ enableEventLog = v ["enabled" ].(bool )
2932+ }
2933+
2934+ if v , ok := helper .InterfacesHeadMap (d , "cluster_audit" ); ok {
2935+ deleteAuditLogSetAndTopic = v ["delete_audit_log_and_topic" ].(bool )
2936+ }
29062937
29072938 err := resource .Retry (writeRetryTimeout , func () * resource.RetryError {
2939+ if deleteEventLogSetAndTopic && enableEventLog {
2940+ err := service .SwitchEventPersistence (ctx , d .Id (), "" , "" , false , true )
2941+ if e , ok := err .(* errors.TencentCloudSDKError ); ok {
2942+ if e .GetCode () != "FailedOperation.ClusterNotFound" {
2943+ return retryError (err , InternalError )
2944+ }
2945+ } else if err != nil {
2946+ return retryError (err , InternalError )
2947+ }
2948+ }
2949+ if deleteAuditLogSetAndTopic {
2950+ err := service .SwitchClusterAudit (ctx , d .Id (), "" , "" , false , true )
2951+ if e , ok := err .(* errors.TencentCloudSDKError ); ok {
2952+ if e .GetCode () != "ResourceNotFound.ClusterNotFound" {
2953+ return retryError (err , InternalError )
2954+ }
2955+ } else if err != nil {
2956+ return retryError (err , InternalError )
2957+ }
2958+ }
29082959 err := service .DeleteCluster (ctx , d .Id ())
29092960
29102961 if e , ok := err .(* errors.TencentCloudSDKError ); ok {
0 commit comments