This commit is contained in:
Fu Diwei 2025-05-12 20:17:36 +08:00 committed by RHQYZ
parent 365fd0bd5b
commit 7936c34472

View File

@ -7,8 +7,9 @@ import (
"log/slog" "log/slog"
"strconv" "strconv"
"github.com/G-Core/gcorelabscdn-go/gcore"
gprovider "github.com/G-Core/gcorelabscdn-go/gcore/provider" gprovider "github.com/G-Core/gcorelabscdn-go/gcore/provider"
gresources "github.com/G-Core/gcorelabscdn-go/resources" "github.com/G-Core/gcorelabscdn-go/resources"
"github.com/usual2970/certimate/internal/pkg/core/deployer" "github.com/usual2970/certimate/internal/pkg/core/deployer"
"github.com/usual2970/certimate/internal/pkg/core/uploader" "github.com/usual2970/certimate/internal/pkg/core/uploader"
@ -26,7 +27,7 @@ type DeployerConfig struct {
type DeployerProvider struct { type DeployerProvider struct {
config *DeployerConfig config *DeployerConfig
logger *slog.Logger logger *slog.Logger
sdkClient *gresources.Service sdkClient *resources.Service
sslUploader uploader.Uploader sslUploader uploader.Uploader
} }
@ -91,7 +92,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
// 更新 CDN 资源详情 // 更新 CDN 资源详情
// REF: https://api.gcore.com/docs/cdn#tag/CDN-resources/operation/change_cdn_resource // REF: https://api.gcore.com/docs/cdn#tag/CDN-resources/operation/change_cdn_resource
updateResourceCertId, _ := strconv.ParseInt(upres.CertId, 10, 64) updateResourceCertId, _ := strconv.ParseInt(upres.CertId, 10, 64)
updateResourceReq := &gresources.UpdateRequest{ updateResourceReq := &resources.UpdateRequest{
Description: getResourceResp.Description, Description: getResourceResp.Description,
Active: getResourceResp.Active, Active: getResourceResp.Active,
OriginGroup: int(getResourceResp.OriginGroup), OriginGroup: int(getResourceResp.OriginGroup),
@ -100,6 +101,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
SSlEnabled: true, SSlEnabled: true,
SSLData: int(updateResourceCertId), SSLData: int(updateResourceCertId),
ProxySSLEnabled: getResourceResp.ProxySSLEnabled, ProxySSLEnabled: getResourceResp.ProxySSLEnabled,
Options: &gcore.Options{},
} }
if getResourceResp.ProxySSLCA != 0 { if getResourceResp.ProxySSLCA != 0 {
updateResourceReq.ProxySSLCA = &getResourceResp.ProxySSLCA updateResourceReq.ProxySSLCA = &getResourceResp.ProxySSLCA
@ -107,9 +109,6 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
if getResourceResp.ProxySSLData != 0 { if getResourceResp.ProxySSLData != 0 {
updateResourceReq.ProxySSLData = &getResourceResp.ProxySSLData updateResourceReq.ProxySSLData = &getResourceResp.ProxySSLData
} }
if getResourceResp.Options != nil {
updateResourceReq.Options = getResourceResp.Options
}
updateResourceResp, err := d.sdkClient.Update(context.TODO(), d.config.ResourceId, updateResourceReq) updateResourceResp, err := d.sdkClient.Update(context.TODO(), d.config.ResourceId, updateResourceReq)
d.logger.Debug("sdk request 'resources.Update'", slog.Int64("resourceId", d.config.ResourceId), slog.Any("request", updateResourceReq), slog.Any("response", updateResourceResp)) d.logger.Debug("sdk request 'resources.Update'", slog.Int64("resourceId", d.config.ResourceId), slog.Any("request", updateResourceReq), slog.Any("response", updateResourceResp))
if err != nil { if err != nil {
@ -119,7 +118,7 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
return &deployer.DeployResult{}, nil return &deployer.DeployResult{}, nil
} }
func createSdkClient(apiToken string) (*gresources.Service, error) { func createSdkClient(apiToken string) (*resources.Service, error) {
if apiToken == "" { if apiToken == "" {
return nil, errors.New("invalid gcore api token") return nil, errors.New("invalid gcore api token")
} }
@ -128,6 +127,6 @@ func createSdkClient(apiToken string) (*gresources.Service, error) {
gcoresdk.BASE_URL, gcoresdk.BASE_URL,
gprovider.WithSigner(gcoresdk.NewAuthRequestSigner(apiToken)), gprovider.WithSigner(gcoresdk.NewAuthRequestSigner(apiToken)),
) )
service := gresources.NewService(requester) service := resources.NewService(requester)
return service, nil return service, nil
} }