diff --git a/internal/deployer/huaweicloud_cdn.go b/internal/deployer/huaweicloud_cdn.go index 3548c256..9fb80430 100644 --- a/internal/deployer/huaweicloud_cdn.go +++ b/internal/deployer/huaweicloud_cdn.go @@ -13,6 +13,7 @@ import ( "github.com/usual2970/certimate/internal/domain" uploaderImpl "github.com/usual2970/certimate/internal/pkg/core/uploader/impl" + "github.com/usual2970/certimate/internal/pkg/utils/cast" ) type HuaweiCloudCDNDeployer struct { @@ -86,14 +87,14 @@ func (d *HuaweiCloudCDNDeployer) Deploy(ctx context.Context) error { d.infos = append(d.infos, toStr("已上传证书", uploadResult)) - updateDomainMultiCertificatesReqBodyContent.CertificateType = int32Ptr(2) - updateDomainMultiCertificatesReqBodyContent.SCMCertificateId = stringPtr(uploadResult.CertId) - updateDomainMultiCertificatesReqBodyContent.CertName = stringPtr(uploadResult.CertName) + updateDomainMultiCertificatesReqBodyContent.CertificateType = cast.Int32Ptr(2) + updateDomainMultiCertificatesReqBodyContent.SCMCertificateId = cast.StringPtr(uploadResult.CertId) + updateDomainMultiCertificatesReqBodyContent.CertName = cast.StringPtr(uploadResult.CertName) } else { - updateDomainMultiCertificatesReqBodyContent.CertificateType = int32Ptr(0) - updateDomainMultiCertificatesReqBodyContent.CertName = stringPtr(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())) - updateDomainMultiCertificatesReqBodyContent.Certificate = stringPtr(d.option.Certificate.Certificate) - updateDomainMultiCertificatesReqBodyContent.PrivateKey = stringPtr(d.option.Certificate.PrivateKey) + updateDomainMultiCertificatesReqBodyContent.CertificateType = cast.Int32Ptr(0) + updateDomainMultiCertificatesReqBodyContent.CertName = cast.StringPtr(fmt.Sprintf("certimate-%d", time.Now().UnixMilli())) + updateDomainMultiCertificatesReqBodyContent.Certificate = cast.StringPtr(d.option.Certificate.Certificate) + updateDomainMultiCertificatesReqBodyContent.PrivateKey = cast.StringPtr(d.option.Certificate.PrivateKey) } updateDomainMultiCertificatesReqBodyContent = mergeHuaweiCloudCDNConfig(showDomainFullConfigResp.Configs, updateDomainMultiCertificatesReqBodyContent) updateDomainMultiCertificatesReq := &huaweicloudCDNUpdateDomainMultiCertificatesRequest{ @@ -177,11 +178,11 @@ func mergeHuaweiCloudCDNConfig(src *cdnModel.ConfigsGetBody, dest *huaweicloudCD // 而且蛋疼的是查询接口返回的数据结构和更新接口传入的参数结构不一致,需要做很多转化 if *src.OriginProtocol == "follow" { - dest.AccessOriginWay = int32Ptr(1) + dest.AccessOriginWay = cast.Int32Ptr(1) } else if *src.OriginProtocol == "http" { - dest.AccessOriginWay = int32Ptr(2) + dest.AccessOriginWay = cast.Int32Ptr(2) } else if *src.OriginProtocol == "https" { - dest.AccessOriginWay = int32Ptr(3) + dest.AccessOriginWay = cast.Int32Ptr(3) } if src.ForceRedirect != nil { @@ -197,17 +198,9 @@ func mergeHuaweiCloudCDNConfig(src *cdnModel.ConfigsGetBody, dest *huaweicloudCD if src.Https != nil { if *src.Https.Http2Status == "on" { - dest.Http2 = int32Ptr(1) + dest.Http2 = cast.Int32Ptr(1) } } return dest } - -func int32Ptr(i int32) *int32 { - return &i -} - -func stringPtr(s string) *string { - return &s -} diff --git a/internal/pkg/core/uploader/impl/huaweicloud_scm.go b/internal/pkg/core/uploader/impl/huaweicloud_scm.go index 87b2890f..48e2d8bc 100644 --- a/internal/pkg/core/uploader/impl/huaweicloud_scm.go +++ b/internal/pkg/core/uploader/impl/huaweicloud_scm.go @@ -11,6 +11,7 @@ import ( scmRegion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/scm/v3/region" "github.com/usual2970/certimate/internal/pkg/core/uploader" + "github.com/usual2970/certimate/internal/pkg/utils/cast" "github.com/usual2970/certimate/internal/pkg/utils/x509" ) @@ -21,6 +22,7 @@ type HuaweiCloudSCMUploaderConfig struct { } type HuaweiCloudSCMUploader struct { + config *HuaweiCloudSCMUploaderConfig client *scm.ScmClient } @@ -31,6 +33,7 @@ func NewHuaweiCloudSCMUploader(config *HuaweiCloudSCMUploaderConfig) (*HuaweiClo } return &HuaweiCloudSCMUploader{ + config: config, client: client, }, nil } @@ -49,10 +52,10 @@ func (u *HuaweiCloudSCMUploader) Upload(ctx context.Context, certPem string, pri listCertificatesOffset := int32(0) for { listCertificatesReq := &scmModel.ListCertificatesRequest{ - Limit: int32Ptr(listCertificatesLimit), - Offset: int32Ptr(listCertificatesOffset), - SortDir: stringPtr("DESC"), - SortKey: stringPtr("certExpiredTime"), + Limit: cast.Int32Ptr(listCertificatesLimit), + Offset: cast.Int32Ptr(listCertificatesOffset), + SortDir: cast.StringPtr("DESC"), + SortKey: cast.StringPtr("certExpiredTime"), } listCertificatesResp, err := u.client.ListCertificates(listCertificatesReq) if err != nil { @@ -129,7 +132,7 @@ func (u *HuaweiCloudSCMUploader) Upload(ctx context.Context, certPem string, pri }, nil } -func createClient(region, accessKeyId, secretAccessKey string) (*scm.ScmClient, error) { +func (u *HuaweiCloudSCMUploader) createClient(region, accessKeyId, secretAccessKey string) (*scm.ScmClient, error) { auth, err := basic.NewCredentialsBuilder(). WithAk(accessKeyId). WithSk(secretAccessKey). @@ -158,11 +161,3 @@ func createClient(region, accessKeyId, secretAccessKey string) (*scm.ScmClient, client := scm.NewScmClient(hcClient) return client, nil } - -func int32Ptr(i int32) *int32 { - return &i -} - -func stringPtr(s string) *string { - return &s -} diff --git a/internal/pkg/utils/cast/cast.go b/internal/pkg/utils/cast/cast.go new file mode 100644 index 00000000..bdf4b2a1 --- /dev/null +++ b/internal/pkg/utils/cast/cast.go @@ -0,0 +1,9 @@ +package cast + +func Int32Ptr(i int32) *int32 { + return &i +} + +func StringPtr(s string) *string { + return &s +}