@@ -4,7 +4,10 @@ import (
44 "context"
55 "errors"
66 "fmt"
7+ "log"
8+ "strings"
79 "testing"
10+ "time"
811
912 "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
1013
@@ -15,6 +18,58 @@ import (
1518 ssl "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl/v20191205"
1619)
1720
21+ func init () {
22+ resource .AddTestSweepers ("tencentcloud_ssl_certificate" , & resource.Sweeper {
23+ Name : "tencentcloud_ssl_certificate" ,
24+ F : testSweepSslCertificate ,
25+ })
26+ }
27+
28+ func testSweepSslCertificate (region string ) error {
29+ logId := getLogId (contextNil )
30+ ctx := context .WithValue (context .TODO (), logIdKey , logId )
31+
32+ sharedClient , err := sharedClientForRegion (region )
33+ if err != nil {
34+ return fmt .Errorf ("getting tencentcloud client error: %s" , err .Error ())
35+ }
36+ client := sharedClient .(* TencentCloudClient )
37+
38+ sslService := SSLService {
39+ client : client .apiV3Conn ,
40+ }
41+ describeRequest := ssl .NewDescribeCertificatesRequest ()
42+ instances , err := sslService .DescribeCertificates (ctx , describeRequest )
43+ if err != nil {
44+ return fmt .Errorf ("get instance list error: %s" , err .Error ())
45+ }
46+
47+ for _ , v := range instances {
48+
49+ instanceId := * v .CertificateId
50+ instanceName := * v .Alias
51+ now := time .Now ()
52+ createTime := stringTotime (* v .CertBeginTime )
53+ interval := now .Sub (createTime ).Minutes ()
54+
55+ if strings .HasPrefix (instanceName , keepResource ) || strings .HasPrefix (instanceName , defaultResource ) {
56+ continue
57+ }
58+
59+ if needProtect == 1 && int64 (interval ) < 30 {
60+ continue
61+ }
62+
63+ request := ssl .NewDeleteCertificateRequest ()
64+ request .CertificateId = helper .String (instanceId )
65+ if _ , err = sslService .DeleteCertificate (ctx , request ); err != nil {
66+ log .Printf ("[ERROR] sweep instance %s error: %s" , instanceId , err .Error ())
67+ }
68+ }
69+
70+ return nil
71+ }
72+
1873func TestAccTencentCloudSslCertificate_basic (t * testing.T ) {
1974 t .Parallel ()
2075 resource .Test (t , resource.TestCase {
0 commit comments