@@ -4,11 +4,14 @@ import (
4
4
"fmt"
5
5
"log"
6
6
"strings"
7
+ "time"
7
8
9
+ "github.com/avast/retry-go/v4"
8
10
"github.com/go-acme/lego/v4/certificate"
9
11
"github.com/paraparty/acme-task/imagex"
10
12
"github.com/paraparty/acme-task/model"
11
13
volc "github.com/volcengine/volc-sdk-golang/base"
14
+ volcImagex "github.com/volcengine/volc-sdk-golang/service/imagex"
12
15
)
13
16
14
17
func ImageXHandler (task * model.Task , certificates * certificate.Resource ) error {
@@ -23,16 +26,38 @@ func ImageXHandler(task *model.Task, certificates *certificate.Resource) error {
23
26
SecretAccessKey : task .TaskDetails .Credential .SecretKey ,
24
27
})
25
28
26
- addedCert , err := imagex .AddCert (imagexService , certificates )
29
+ var addedCert * model.AddCertResponse
30
+ err := retry .Do (func () error {
31
+ var err error
32
+ addedCert , err = imagex .AddCert (imagexService , certificates )
33
+ if err != nil {
34
+ return err
35
+ }
36
+ return nil
37
+ }, retry .Attempts (3 ), retry .Delay (time .Second * 5 ), retry .OnRetry (func (n uint , err error ) {
38
+ log .Printf ("add cert error: retry:%d err:%+v" , n , err )
39
+ }))
27
40
if err != nil {
28
41
return err
29
42
}
30
43
31
- servicesInfo , err := imagexService .GetImageServices ("" )
44
+ var servicesInfo * volcImagex.GetServicesResult
45
+ err = retry .Do (func () error {
46
+ var err error
47
+ servicesInfo , err = imagexService .GetImageServices ("" )
48
+ if err != nil {
49
+ return err
50
+ }
51
+ return nil
52
+ }, retry .Attempts (3 ), retry .OnRetry (func (n uint , err error ) {
53
+ log .Printf ("get service info error: retry:%d err:%+v" , n , err )
54
+ }))
32
55
if err != nil {
33
56
return err
34
57
}
35
58
59
+ time .Sleep (time .Second * 5 )
60
+
36
61
for _ , service := range servicesInfo .Services {
37
62
log .Printf ("now processing service %s(%s)" , service .ServiceName , service .ServiceId )
38
63
@@ -47,9 +72,17 @@ func ImageXHandler(task *model.Task, certificates *certificate.Resource) error {
47
72
continue
48
73
}
49
74
50
- err := imagex .EnableServiceHttps (imagexService , service .ServiceId , domain .DomainName , addedCert .CertId )
51
- if err != nil {
52
- log .Printf ("%v" , err )
75
+ setCertErr := retry .Do (func () error {
76
+ retryErr := imagex .EnableServiceHttps (imagexService , service .ServiceId , domain .DomainName , addedCert .CertId )
77
+ if retryErr != nil {
78
+ return retryErr
79
+ }
80
+ return nil
81
+ }, retry .Attempts (3 ), retry .Delay (time .Second * 5 ), retry .OnRetry (func (n uint , err error ) {
82
+ log .Printf ("set cert for %s(%s):%s retry:%d err:%+v" , service .ServiceName , service .ServiceId , domain .DomainName , n , err )
83
+ }))
84
+ if setCertErr != nil {
85
+ log .Printf ("%v" , setCertErr )
53
86
continue
54
87
}
55
88
0 commit comments