mirror of
https://github.com/usual2970/certimate.git
synced 2025-06-07 21:19:51 +00:00
fix: #710
This commit is contained in:
parent
9d9ca88ebe
commit
1c3cb1b21b
@ -2,9 +2,11 @@ package tencentcloudcdn
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
tccdn "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606"
|
tccdn "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606"
|
||||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
||||||
@ -132,6 +134,49 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err)
|
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 循环获取部署任务详情,等待任务状态变更
|
||||||
|
// REF: https://cloud.tencent.com.cn/document/api/400/91658
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return nil, ctx.Err()
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
describeHostDeployRecordDetailReq := tcssl.NewDescribeHostDeployRecordDetailRequest()
|
||||||
|
describeHostDeployRecordDetailReq.DeployRecordId = common.StringPtr(fmt.Sprintf("%d", *deployCertificateInstanceResp.Response.DeployRecordId))
|
||||||
|
describeHostDeployRecordDetailResp, err := d.sdkClients.SSL.DescribeHostDeployRecordDetail(describeHostDeployRecordDetailReq)
|
||||||
|
d.logger.Debug("sdk request 'ssl.DescribeHostDeployRecordDetail'", slog.Any("request", describeHostDeployRecordDetailReq), slog.Any("response", describeHostDeployRecordDetailResp))
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeHostDeployRecordDetail': %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var runningCount, succeededCount, failedCount, totalCount int64
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount == nil {
|
||||||
|
return nil, errors.New("unexpected deployment job status")
|
||||||
|
} else {
|
||||||
|
if describeHostDeployRecordDetailResp.Response.RunningTotalCount != nil {
|
||||||
|
runningCount = *describeHostDeployRecordDetailResp.Response.RunningTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.SuccessTotalCount != nil {
|
||||||
|
succeededCount = *describeHostDeployRecordDetailResp.Response.SuccessTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.FailedTotalCount != nil {
|
||||||
|
failedCount = *describeHostDeployRecordDetailResp.Response.FailedTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount != nil {
|
||||||
|
totalCount = *describeHostDeployRecordDetailResp.Response.TotalCount
|
||||||
|
}
|
||||||
|
|
||||||
|
if succeededCount+failedCount == totalCount {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
d.logger.Info(fmt.Sprintf("waiting for deployment job completion (running: %d, succeeded: %d, failed: %d, total: %d) ...", runningCount, succeededCount, failedCount, totalCount))
|
||||||
|
time.Sleep(time.Second * 5)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &deployer.DeployResult{}, nil
|
return &deployer.DeployResult{}, nil
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
"time"
|
||||||
|
|
||||||
tcclb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317"
|
tcclb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317"
|
||||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
||||||
@ -151,6 +152,49 @@ func (d *DeployerProvider) deployViaSslService(ctx context.Context, cloudCertId
|
|||||||
return fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err)
|
return fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 循环获取部署任务详情,等待任务状态变更
|
||||||
|
// REF: https://cloud.tencent.com.cn/document/api/400/91658
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return ctx.Err()
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
describeHostDeployRecordDetailReq := tcssl.NewDescribeHostDeployRecordDetailRequest()
|
||||||
|
describeHostDeployRecordDetailReq.DeployRecordId = common.StringPtr(fmt.Sprintf("%d", *deployCertificateInstanceResp.Response.DeployRecordId))
|
||||||
|
describeHostDeployRecordDetailResp, err := d.sdkClients.SSL.DescribeHostDeployRecordDetail(describeHostDeployRecordDetailReq)
|
||||||
|
d.logger.Debug("sdk request 'ssl.DescribeHostDeployRecordDetail'", slog.Any("request", describeHostDeployRecordDetailReq), slog.Any("response", describeHostDeployRecordDetailResp))
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to execute sdk request 'ssl.DescribeHostDeployRecordDetail': %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var runningCount, succeededCount, failedCount, totalCount int64
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount == nil {
|
||||||
|
return errors.New("unexpected deployment job status")
|
||||||
|
} else {
|
||||||
|
if describeHostDeployRecordDetailResp.Response.RunningTotalCount != nil {
|
||||||
|
runningCount = *describeHostDeployRecordDetailResp.Response.RunningTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.SuccessTotalCount != nil {
|
||||||
|
succeededCount = *describeHostDeployRecordDetailResp.Response.SuccessTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.FailedTotalCount != nil {
|
||||||
|
failedCount = *describeHostDeployRecordDetailResp.Response.FailedTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount != nil {
|
||||||
|
totalCount = *describeHostDeployRecordDetailResp.Response.TotalCount
|
||||||
|
}
|
||||||
|
|
||||||
|
if succeededCount+failedCount == totalCount {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
d.logger.Info(fmt.Sprintf("waiting for deployment job completion (running: %d, succeeded: %d, failed: %d, total: %d) ...", runningCount, succeededCount, failedCount, totalCount))
|
||||||
|
time.Sleep(time.Second * 5)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
||||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
|
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
|
||||||
@ -102,6 +103,49 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
|||||||
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err)
|
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 循环获取部署任务详情,等待任务状态变更
|
||||||
|
// REF: https://cloud.tencent.com.cn/document/api/400/91658
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return nil, ctx.Err()
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
describeHostDeployRecordDetailReq := tcssl.NewDescribeHostDeployRecordDetailRequest()
|
||||||
|
describeHostDeployRecordDetailReq.DeployRecordId = common.StringPtr(fmt.Sprintf("%d", *deployCertificateInstanceResp.Response.DeployRecordId))
|
||||||
|
describeHostDeployRecordDetailResp, err := d.sdkClient.DescribeHostDeployRecordDetail(describeHostDeployRecordDetailReq)
|
||||||
|
d.logger.Debug("sdk request 'ssl.DescribeHostDeployRecordDetail'", slog.Any("request", describeHostDeployRecordDetailReq), slog.Any("response", describeHostDeployRecordDetailResp))
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeHostDeployRecordDetail': %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var runningCount, succeededCount, failedCount, totalCount int64
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount == nil {
|
||||||
|
return nil, errors.New("unexpected deployment job status")
|
||||||
|
} else {
|
||||||
|
if describeHostDeployRecordDetailResp.Response.RunningTotalCount != nil {
|
||||||
|
runningCount = *describeHostDeployRecordDetailResp.Response.RunningTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.SuccessTotalCount != nil {
|
||||||
|
succeededCount = *describeHostDeployRecordDetailResp.Response.SuccessTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.FailedTotalCount != nil {
|
||||||
|
failedCount = *describeHostDeployRecordDetailResp.Response.FailedTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount != nil {
|
||||||
|
totalCount = *describeHostDeployRecordDetailResp.Response.TotalCount
|
||||||
|
}
|
||||||
|
|
||||||
|
if succeededCount+failedCount == totalCount {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
d.logger.Info(fmt.Sprintf("waiting for deployment job completion (running: %d, succeeded: %d, failed: %d, total: %d) ...", runningCount, succeededCount, failedCount, totalCount))
|
||||||
|
time.Sleep(time.Second * 5)
|
||||||
|
}
|
||||||
|
|
||||||
return &deployer.DeployResult{}, nil
|
return &deployer.DeployResult{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,9 +2,11 @@ package tencentcloudecdn
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
tccdn "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606"
|
tccdn "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn/v20180606"
|
||||||
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
|
||||||
@ -103,7 +105,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
|||||||
} else {
|
} else {
|
||||||
d.logger.Info("found ecdn instances to deploy", slog.Any("instanceIds", instanceIds))
|
d.logger.Info("found ecdn instances to deploy", slog.Any("instanceIds", instanceIds))
|
||||||
|
|
||||||
// 证书部署到 ECDN 实例
|
// 证书部署到 CDN 实例
|
||||||
// REF: https://cloud.tencent.com/document/product/400/91667
|
// REF: https://cloud.tencent.com/document/product/400/91667
|
||||||
deployCertificateInstanceReq := tcssl.NewDeployCertificateInstanceRequest()
|
deployCertificateInstanceReq := tcssl.NewDeployCertificateInstanceRequest()
|
||||||
deployCertificateInstanceReq.CertificateId = common.StringPtr(upres.CertId)
|
deployCertificateInstanceReq.CertificateId = common.StringPtr(upres.CertId)
|
||||||
@ -115,6 +117,49 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err)
|
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DeployCertificateInstance': %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 循环获取部署任务详情,等待任务状态变更
|
||||||
|
// REF: https://cloud.tencent.com.cn/document/api/400/91658
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return nil, ctx.Err()
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
describeHostDeployRecordDetailReq := tcssl.NewDescribeHostDeployRecordDetailRequest()
|
||||||
|
describeHostDeployRecordDetailReq.DeployRecordId = common.StringPtr(fmt.Sprintf("%d", *deployCertificateInstanceResp.Response.DeployRecordId))
|
||||||
|
describeHostDeployRecordDetailResp, err := d.sdkClients.SSL.DescribeHostDeployRecordDetail(describeHostDeployRecordDetailReq)
|
||||||
|
d.logger.Debug("sdk request 'ssl.DescribeHostDeployRecordDetail'", slog.Any("request", describeHostDeployRecordDetailReq), slog.Any("response", describeHostDeployRecordDetailResp))
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeHostDeployRecordDetail': %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var runningCount, succeededCount, failedCount, totalCount int64
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount == nil {
|
||||||
|
return nil, errors.New("unexpected deployment job status")
|
||||||
|
} else {
|
||||||
|
if describeHostDeployRecordDetailResp.Response.RunningTotalCount != nil {
|
||||||
|
runningCount = *describeHostDeployRecordDetailResp.Response.RunningTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.SuccessTotalCount != nil {
|
||||||
|
succeededCount = *describeHostDeployRecordDetailResp.Response.SuccessTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.FailedTotalCount != nil {
|
||||||
|
failedCount = *describeHostDeployRecordDetailResp.Response.FailedTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount != nil {
|
||||||
|
totalCount = *describeHostDeployRecordDetailResp.Response.TotalCount
|
||||||
|
}
|
||||||
|
|
||||||
|
if succeededCount+failedCount == totalCount {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
d.logger.Info(fmt.Sprintf("waiting for deployment job completion (running: %d, succeeded: %d, failed: %d, total: %d) ...", runningCount, succeededCount, failedCount, totalCount))
|
||||||
|
time.Sleep(time.Second * 5)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &deployer.DeployResult{}, nil
|
return &deployer.DeployResult{}, nil
|
||||||
|
@ -116,30 +116,35 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
|||||||
|
|
||||||
describeHostDeployRecordDetailReq := tcssl.NewDescribeHostDeployRecordDetailRequest()
|
describeHostDeployRecordDetailReq := tcssl.NewDescribeHostDeployRecordDetailRequest()
|
||||||
describeHostDeployRecordDetailReq.DeployRecordId = common.StringPtr(fmt.Sprintf("%d", *deployCertificateInstanceResp.Response.DeployRecordId))
|
describeHostDeployRecordDetailReq.DeployRecordId = common.StringPtr(fmt.Sprintf("%d", *deployCertificateInstanceResp.Response.DeployRecordId))
|
||||||
describeHostDeployRecordDetailReq.Limit = common.Uint64Ptr(100)
|
|
||||||
describeHostDeployRecordDetailResp, err := d.sdkClient.DescribeHostDeployRecordDetail(describeHostDeployRecordDetailReq)
|
describeHostDeployRecordDetailResp, err := d.sdkClient.DescribeHostDeployRecordDetail(describeHostDeployRecordDetailReq)
|
||||||
d.logger.Debug("sdk request 'ssl.DescribeHostDeployRecordDetail'", slog.Any("request", describeHostDeployRecordDetailReq), slog.Any("response", describeHostDeployRecordDetailResp))
|
d.logger.Debug("sdk request 'ssl.DescribeHostDeployRecordDetail'", slog.Any("request", describeHostDeployRecordDetailReq), slog.Any("response", describeHostDeployRecordDetailResp))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeHostDeployRecordDetail': %w", err)
|
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeHostDeployRecordDetail': %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var runningCount, succeededCount, failedCount, totalCount int64
|
||||||
if describeHostDeployRecordDetailResp.Response.TotalCount == nil {
|
if describeHostDeployRecordDetailResp.Response.TotalCount == nil {
|
||||||
return nil, errors.New("unexpected deployment job status")
|
return nil, errors.New("unexpected deployment job status")
|
||||||
} else {
|
} else {
|
||||||
acc := int64(0)
|
if describeHostDeployRecordDetailResp.Response.RunningTotalCount != nil {
|
||||||
|
runningCount = *describeHostDeployRecordDetailResp.Response.RunningTotalCount
|
||||||
|
}
|
||||||
if describeHostDeployRecordDetailResp.Response.SuccessTotalCount != nil {
|
if describeHostDeployRecordDetailResp.Response.SuccessTotalCount != nil {
|
||||||
acc += *describeHostDeployRecordDetailResp.Response.SuccessTotalCount
|
succeededCount = *describeHostDeployRecordDetailResp.Response.SuccessTotalCount
|
||||||
}
|
}
|
||||||
if describeHostDeployRecordDetailResp.Response.FailedTotalCount != nil {
|
if describeHostDeployRecordDetailResp.Response.FailedTotalCount != nil {
|
||||||
acc += *describeHostDeployRecordDetailResp.Response.FailedTotalCount
|
failedCount = *describeHostDeployRecordDetailResp.Response.FailedTotalCount
|
||||||
|
}
|
||||||
|
if describeHostDeployRecordDetailResp.Response.TotalCount != nil {
|
||||||
|
totalCount = *describeHostDeployRecordDetailResp.Response.TotalCount
|
||||||
}
|
}
|
||||||
|
|
||||||
if acc == *describeHostDeployRecordDetailResp.Response.TotalCount {
|
if succeededCount+failedCount == totalCount {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
d.logger.Info("waiting for deployment job completion ...")
|
d.logger.Info(fmt.Sprintf("waiting for deployment job completion (running: %d, succeeded: %d, failed: %d, total: %d) ...", runningCount, succeededCount, failedCount, totalCount))
|
||||||
time.Sleep(time.Second * 5)
|
time.Sleep(time.Second * 5)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user