mirror of
https://github.com/usual2970/certimate.git
synced 2025-06-08 13:39:53 +00:00
refactor: clean code
This commit is contained in:
parent
94f162c189
commit
4f512a6cdd
@ -13,7 +13,7 @@ import (
|
||||
"github.com/usual2970/certimate/internal/pkg/core/deployer"
|
||||
"github.com/usual2970/certimate/internal/pkg/core/uploader"
|
||||
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-scm"
|
||||
hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud"
|
||||
typeutil "github.com/usual2970/certimate/internal/pkg/utils/type"
|
||||
)
|
||||
|
||||
type DeployerConfig struct {
|
||||
@ -102,9 +102,9 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
||||
updateDomainMultiCertificatesReqBodyContent := &hccdnmodel.UpdateDomainMultiCertificatesRequestBodyContent{}
|
||||
updateDomainMultiCertificatesReqBodyContent.DomainName = d.config.Domain
|
||||
updateDomainMultiCertificatesReqBodyContent.HttpsSwitch = 1
|
||||
updateDomainMultiCertificatesReqBodyContent.CertificateType = hwsdk.Int32Ptr(2)
|
||||
updateDomainMultiCertificatesReqBodyContent.ScmCertificateId = hwsdk.StringPtr(upres.CertId)
|
||||
updateDomainMultiCertificatesReqBodyContent.CertName = hwsdk.StringPtr(upres.CertName)
|
||||
updateDomainMultiCertificatesReqBodyContent.CertificateType = typeutil.ToPtr(int32(2))
|
||||
updateDomainMultiCertificatesReqBodyContent.ScmCertificateId = typeutil.ToPtr(upres.CertId)
|
||||
updateDomainMultiCertificatesReqBodyContent.CertName = typeutil.ToPtr(upres.CertName)
|
||||
updateDomainMultiCertificatesReqBodyContent = assign(updateDomainMultiCertificatesReqBodyContent, showDomainFullConfigResp.Configs)
|
||||
updateDomainMultiCertificatesReq := &hccdnmodel.UpdateDomainMultiCertificatesRequest{
|
||||
Body: &hccdnmodel.UpdateDomainMultiCertificatesRequestBody{
|
||||
@ -159,11 +159,11 @@ func assign(source *hccdnmodel.UpdateDomainMultiCertificatesRequestBodyContent,
|
||||
}
|
||||
|
||||
if *target.OriginProtocol == "follow" {
|
||||
source.AccessOriginWay = hwsdk.Int32Ptr(1)
|
||||
source.AccessOriginWay = typeutil.ToPtr(int32(1))
|
||||
} else if *target.OriginProtocol == "http" {
|
||||
source.AccessOriginWay = hwsdk.Int32Ptr(2)
|
||||
source.AccessOriginWay = typeutil.ToPtr(int32(2))
|
||||
} else if *target.OriginProtocol == "https" {
|
||||
source.AccessOriginWay = hwsdk.Int32Ptr(3)
|
||||
source.AccessOriginWay = typeutil.ToPtr(int32(3))
|
||||
}
|
||||
|
||||
if target.ForceRedirect != nil {
|
||||
@ -181,7 +181,7 @@ func assign(source *hccdnmodel.UpdateDomainMultiCertificatesRequestBodyContent,
|
||||
|
||||
if target.Https != nil {
|
||||
if *target.Https.Http2Status == "on" {
|
||||
source.Http2 = hwsdk.Int32Ptr(1)
|
||||
source.Http2 = typeutil.ToPtr(int32(1))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ import (
|
||||
"github.com/usual2970/certimate/internal/pkg/core/deployer"
|
||||
"github.com/usual2970/certimate/internal/pkg/core/uploader"
|
||||
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-elb"
|
||||
hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud"
|
||||
typeutil "github.com/usual2970/certimate/internal/pkg/utils/type"
|
||||
)
|
||||
|
||||
type DeployerConfig struct {
|
||||
@ -125,8 +125,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri
|
||||
CertificateId: d.config.CertificateId,
|
||||
Body: &hcelbmodel.UpdateCertificateRequestBody{
|
||||
Certificate: &hcelbmodel.UpdateCertificateOption{
|
||||
Certificate: hwsdk.StringPtr(certPEM),
|
||||
PrivateKey: hwsdk.StringPtr(privkeyPEM),
|
||||
Certificate: typeutil.ToPtr(certPEM),
|
||||
PrivateKey: typeutil.ToPtr(privkeyPEM),
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -162,7 +162,7 @@ func (d *DeployerProvider) deployToLoadbalancer(ctx context.Context, certPEM str
|
||||
var listListenersMarker *string = nil
|
||||
for {
|
||||
listListenersReq := &hcelbmodel.ListListenersRequest{
|
||||
Limit: hwsdk.Int32Ptr(listListenersLimit),
|
||||
Limit: typeutil.ToPtr(listListenersLimit),
|
||||
Marker: listListenersMarker,
|
||||
Protocol: &[]string{"HTTPS", "TERMINATED_HTTPS"},
|
||||
LoadbalancerId: &[]string{showLoadBalancerResp.Loadbalancer.Id},
|
||||
@ -254,7 +254,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL
|
||||
ListenerId: cloudListenerId,
|
||||
Body: &hcelbmodel.UpdateListenerRequestBody{
|
||||
Listener: &hcelbmodel.UpdateListenerOption{
|
||||
DefaultTlsContainerRef: hwsdk.StringPtr(cloudCertId),
|
||||
DefaultTlsContainerRef: typeutil.ToPtr(cloudCertId),
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -303,7 +303,7 @@ func (d *DeployerProvider) modifyListenerCertificate(ctx context.Context, cloudL
|
||||
}
|
||||
|
||||
if showListenerResp.Listener.SniMatchAlgo != "" {
|
||||
updateListenerReq.Body.Listener.SniMatchAlgo = hwsdk.StringPtr(showListenerResp.Listener.SniMatchAlgo)
|
||||
updateListenerReq.Body.Listener.SniMatchAlgo = typeutil.ToPtr(showListenerResp.Listener.SniMatchAlgo)
|
||||
}
|
||||
}
|
||||
updateListenerResp, err := d.sdkClient.UpdateListener(updateListenerReq)
|
||||
|
@ -20,7 +20,7 @@ import (
|
||||
"github.com/usual2970/certimate/internal/pkg/core/deployer"
|
||||
"github.com/usual2970/certimate/internal/pkg/core/uploader"
|
||||
uploadersp "github.com/usual2970/certimate/internal/pkg/core/uploader/providers/huaweicloud-waf"
|
||||
hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud"
|
||||
typeutil "github.com/usual2970/certimate/internal/pkg/utils/type"
|
||||
)
|
||||
|
||||
type DeployerConfig struct {
|
||||
@ -141,8 +141,8 @@ func (d *DeployerProvider) deployToCertificate(ctx context.Context, certPEM stri
|
||||
CertificateId: d.config.CertificateId,
|
||||
Body: &hcwafmodel.UpdateCertificateRequestBody{
|
||||
Name: *showCertificateResp.Name,
|
||||
Content: hwsdk.StringPtr(certPEM),
|
||||
Key: hwsdk.StringPtr(privkeyPEM),
|
||||
Content: typeutil.ToPtr(certPEM),
|
||||
Key: typeutil.ToPtr(privkeyPEM),
|
||||
},
|
||||
}
|
||||
updateCertificateResp, err := d.sdkClient.UpdateCertificate(updateCertificateReq)
|
||||
@ -174,9 +174,9 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM stri
|
||||
listHostPageSize := int32(100)
|
||||
for {
|
||||
listHostReq := &hcwafmodel.ListHostRequest{
|
||||
Hostname: hwsdk.StringPtr(strings.TrimPrefix(d.config.Domain, "*")),
|
||||
Page: hwsdk.Int32Ptr(listHostPage),
|
||||
Pagesize: hwsdk.Int32Ptr(listHostPageSize),
|
||||
Hostname: typeutil.ToPtr(strings.TrimPrefix(d.config.Domain, "*")),
|
||||
Page: typeutil.ToPtr(listHostPage),
|
||||
Pagesize: typeutil.ToPtr(listHostPageSize),
|
||||
}
|
||||
listHostResp, err := d.sdkClient.ListHost(listHostReq)
|
||||
d.logger.Debug("sdk request 'waf.ListHost'", slog.Any("request", listHostReq), slog.Any("response", listHostResp))
|
||||
@ -208,8 +208,8 @@ func (d *DeployerProvider) deployToCloudServer(ctx context.Context, certPEM stri
|
||||
updateHostReq := &hcwafmodel.UpdateHostRequest{
|
||||
InstanceId: hostId,
|
||||
Body: &hcwafmodel.UpdateHostRequestBody{
|
||||
Certificateid: hwsdk.StringPtr(upres.CertId),
|
||||
Certificatename: hwsdk.StringPtr(upres.CertName),
|
||||
Certificateid: typeutil.ToPtr(upres.CertId),
|
||||
Certificatename: typeutil.ToPtr(upres.CertName),
|
||||
},
|
||||
}
|
||||
updateHostResp, err := d.sdkClient.UpdateHost(updateHostReq)
|
||||
@ -241,9 +241,9 @@ func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM stri
|
||||
listPremiumHostPageSize := int32(100)
|
||||
for {
|
||||
listPremiumHostReq := &hcwafmodel.ListPremiumHostRequest{
|
||||
Hostname: hwsdk.StringPtr(strings.TrimPrefix(d.config.Domain, "*")),
|
||||
Page: hwsdk.StringPtr(fmt.Sprintf("%d", listPremiumHostPage)),
|
||||
Pagesize: hwsdk.StringPtr(fmt.Sprintf("%d", listPremiumHostPageSize)),
|
||||
Hostname: typeutil.ToPtr(strings.TrimPrefix(d.config.Domain, "*")),
|
||||
Page: typeutil.ToPtr(fmt.Sprintf("%d", listPremiumHostPage)),
|
||||
Pagesize: typeutil.ToPtr(fmt.Sprintf("%d", listPremiumHostPageSize)),
|
||||
}
|
||||
listPremiumHostResp, err := d.sdkClient.ListPremiumHost(listPremiumHostReq)
|
||||
d.logger.Debug("sdk request 'waf.ListPremiumHost'", slog.Any("request", listPremiumHostReq), slog.Any("response", listPremiumHostResp))
|
||||
@ -275,8 +275,8 @@ func (d *DeployerProvider) deployToPremiumHost(ctx context.Context, certPEM stri
|
||||
updatePremiumHostReq := &hcwafmodel.UpdatePremiumHostRequest{
|
||||
HostId: hostId,
|
||||
Body: &hcwafmodel.UpdatePremiumHostRequestBody{
|
||||
Certificateid: hwsdk.StringPtr(upres.CertId),
|
||||
Certificatename: hwsdk.StringPtr(upres.CertName),
|
||||
Certificateid: typeutil.ToPtr(upres.CertId),
|
||||
Certificatename: typeutil.ToPtr(upres.CertName),
|
||||
},
|
||||
}
|
||||
updatePremiumHostResp, err := d.sdkClient.UpdatePremiumHost(updatePremiumHostReq)
|
||||
|
@ -16,12 +16,12 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
xerrors "github.com/pkg/errors"
|
||||
|
||||
"github.com/usual2970/certimate/internal/pkg/core/deployer"
|
||||
wangsucdn "github.com/usual2970/certimate/internal/pkg/sdk3rd/wangsu/cdn"
|
||||
certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
|
||||
typeutil "github.com/usual2970/certimate/internal/pkg/utils/type"
|
||||
)
|
||||
|
||||
type DeployerConfig struct {
|
||||
@ -101,10 +101,10 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
||||
return nil, xerrors.Wrap(err, "failed to encrypt private key")
|
||||
}
|
||||
certificateNewVersionInfo := &wangsucdn.CertificateVersion{
|
||||
PrivateKey: tea.String(encryptedPrivateKey),
|
||||
Certificate: tea.String(certPEM),
|
||||
PrivateKey: typeutil.ToPtr(encryptedPrivateKey),
|
||||
Certificate: typeutil.ToPtr(certPEM),
|
||||
IdentificationInfo: &wangsucdn.CertificateVersionIdentificationInfo{
|
||||
CommonName: tea.String(certX509.Subject.CommonName),
|
||||
CommonName: typeutil.ToPtr(certX509.Subject.CommonName),
|
||||
SubjectAlternativeNames: &certX509.DNSNames,
|
||||
},
|
||||
}
|
||||
@ -123,8 +123,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
||||
// 创建证书
|
||||
createCertificateReq := &wangsucdn.CreateCertificateRequest{
|
||||
Timestamp: timestamp,
|
||||
Name: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())),
|
||||
AutoRenew: tea.String("Off"),
|
||||
Name: typeutil.ToPtr(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())),
|
||||
AutoRenew: typeutil.ToPtr("Off"),
|
||||
NewVersion: certificateNewVersionInfo,
|
||||
}
|
||||
createCertificateResp, err := d.sdkClient.CreateCertificate(createCertificateReq)
|
||||
@ -146,8 +146,8 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
||||
// 更新证书
|
||||
updateCertificateReq := &wangsucdn.UpdateCertificateRequest{
|
||||
Timestamp: timestamp,
|
||||
Name: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())),
|
||||
AutoRenew: tea.String("Off"),
|
||||
Name: typeutil.ToPtr(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())),
|
||||
AutoRenew: typeutil.ToPtr("Off"),
|
||||
NewVersion: certificateNewVersionInfo,
|
||||
}
|
||||
updateCertificateResp, err := d.sdkClient.UpdateCertificate(d.config.CertificateId, updateCertificateReq)
|
||||
@ -174,18 +174,18 @@ func (d *DeployerProvider) Deploy(ctx context.Context, certPEM string, privkeyPE
|
||||
// 创建部署任务
|
||||
// REF: https://www.wangsu.com/document/api-doc/27034
|
||||
createDeploymentTaskReq := &wangsucdn.CreateDeploymentTaskRequest{
|
||||
Name: tea.String(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())),
|
||||
Target: tea.String(d.config.Environment),
|
||||
Name: typeutil.ToPtr(fmt.Sprintf("certimate_%d", time.Now().UnixMilli())),
|
||||
Target: typeutil.ToPtr(d.config.Environment),
|
||||
Actions: &[]wangsucdn.DeploymentTaskAction{
|
||||
{
|
||||
Action: tea.String("deploy_cert"),
|
||||
CertificateId: tea.String(wangsuCertId),
|
||||
Version: tea.Int32(wangsuCertVer),
|
||||
Action: typeutil.ToPtr("deploy_cert"),
|
||||
CertificateId: typeutil.ToPtr(wangsuCertId),
|
||||
Version: typeutil.ToPtr(wangsuCertVer),
|
||||
},
|
||||
},
|
||||
}
|
||||
if d.config.WebhookId != "" {
|
||||
createDeploymentTaskReq.Webhook = tea.String(d.config.WebhookId)
|
||||
createDeploymentTaskReq.Webhook = typeutil.ToPtr(d.config.WebhookId)
|
||||
}
|
||||
createDeploymentTaskResp, err := d.sdkClient.CreateDeploymentTask(createDeploymentTaskReq)
|
||||
d.logger.Debug("sdk request 'cdn.CreateCertificate'", slog.Any("request", createDeploymentTaskReq), slog.Any("response", createDeploymentTaskResp))
|
||||
|
@ -18,8 +18,8 @@ import (
|
||||
xerrors "github.com/pkg/errors"
|
||||
|
||||
"github.com/usual2970/certimate/internal/pkg/core/uploader"
|
||||
hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud"
|
||||
certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
|
||||
typeutil "github.com/usual2970/certimate/internal/pkg/utils/type"
|
||||
)
|
||||
|
||||
type UploaderConfig struct {
|
||||
@ -78,7 +78,7 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE
|
||||
var listCertificatesMarker *string = nil
|
||||
for {
|
||||
listCertificatesReq := &hcelbmodel.ListCertificatesRequest{
|
||||
Limit: hwsdk.Int32Ptr(listCertificatesLimit),
|
||||
Limit: typeutil.ToPtr(listCertificatesLimit),
|
||||
Marker: listCertificatesMarker,
|
||||
Type: &[]string{"server"},
|
||||
}
|
||||
@ -136,10 +136,10 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE
|
||||
createCertificateReq := &hcelbmodel.CreateCertificateRequest{
|
||||
Body: &hcelbmodel.CreateCertificateRequestBody{
|
||||
Certificate: &hcelbmodel.CreateCertificateOption{
|
||||
ProjectId: hwsdk.StringPtr(projectId),
|
||||
Name: hwsdk.StringPtr(certName),
|
||||
Certificate: hwsdk.StringPtr(certPEM),
|
||||
PrivateKey: hwsdk.StringPtr(privkeyPEM),
|
||||
ProjectId: typeutil.ToPtr(projectId),
|
||||
Name: typeutil.ToPtr(certName),
|
||||
Certificate: typeutil.ToPtr(certPEM),
|
||||
PrivateKey: typeutil.ToPtr(privkeyPEM),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -13,8 +13,8 @@ import (
|
||||
xerrors "github.com/pkg/errors"
|
||||
|
||||
"github.com/usual2970/certimate/internal/pkg/core/uploader"
|
||||
hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud"
|
||||
certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
|
||||
typeutil "github.com/usual2970/certimate/internal/pkg/utils/type"
|
||||
)
|
||||
|
||||
type UploaderConfig struct {
|
||||
@ -74,10 +74,10 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE
|
||||
listCertificatesOffset := int32(0)
|
||||
for {
|
||||
listCertificatesReq := &hcscmmodel.ListCertificatesRequest{
|
||||
Limit: hwsdk.Int32Ptr(listCertificatesLimit),
|
||||
Offset: hwsdk.Int32Ptr(listCertificatesOffset),
|
||||
SortDir: hwsdk.StringPtr("DESC"),
|
||||
SortKey: hwsdk.StringPtr("certExpiredTime"),
|
||||
Limit: typeutil.ToPtr(listCertificatesLimit),
|
||||
Offset: typeutil.ToPtr(listCertificatesOffset),
|
||||
SortDir: typeutil.ToPtr("DESC"),
|
||||
SortKey: typeutil.ToPtr("certExpiredTime"),
|
||||
}
|
||||
listCertificatesResp, err := u.sdkClient.ListCertificates(listCertificatesReq)
|
||||
u.logger.Debug("sdk request 'scm.ListCertificates'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp))
|
||||
|
@ -18,8 +18,8 @@ import (
|
||||
xerrors "github.com/pkg/errors"
|
||||
|
||||
"github.com/usual2970/certimate/internal/pkg/core/uploader"
|
||||
hwsdk "github.com/usual2970/certimate/internal/pkg/sdk3rd/huaweicloud"
|
||||
certutil "github.com/usual2970/certimate/internal/pkg/utils/cert"
|
||||
typeutil "github.com/usual2970/certimate/internal/pkg/utils/type"
|
||||
)
|
||||
|
||||
type UploaderConfig struct {
|
||||
@ -79,8 +79,8 @@ func (u *UploaderProvider) Upload(ctx context.Context, certPEM string, privkeyPE
|
||||
listCertificatesPageSize := int32(100)
|
||||
for {
|
||||
listCertificatesReq := &hcwafmodel.ListCertificatesRequest{
|
||||
Page: hwsdk.Int32Ptr(listCertificatesPage),
|
||||
Pagesize: hwsdk.Int32Ptr(listCertificatesPageSize),
|
||||
Page: typeutil.ToPtr(listCertificatesPage),
|
||||
Pagesize: typeutil.ToPtr(listCertificatesPageSize),
|
||||
}
|
||||
listCertificatesResp, err := u.sdkClient.ListCertificates(listCertificatesReq)
|
||||
u.logger.Debug("sdk request 'waf.ShowCertificate'", slog.Any("request", listCertificatesReq), slog.Any("response", listCertificatesResp))
|
||||
|
@ -1,9 +0,0 @@
|
||||
package huaweicloudsdk
|
||||
|
||||
func Int32Ptr(i int32) *int32 {
|
||||
return &i
|
||||
}
|
||||
|
||||
func StringPtr(s string) *string {
|
||||
return &s
|
||||
}
|
@ -24,29 +24,3 @@ func IsNil(obj any) bool {
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// 将对象转换为指针。
|
||||
//
|
||||
// 入参:
|
||||
// - 待转换的对象。
|
||||
//
|
||||
// 出参:
|
||||
// - 返回对象的指针。
|
||||
func ToPtr[T any](v T) (p *T) {
|
||||
return &v
|
||||
}
|
||||
|
||||
// 将指针转换为对象。
|
||||
//
|
||||
// 入参:
|
||||
// - 待转换的指针。
|
||||
//
|
||||
// 出参:
|
||||
// - 返回指针指向的对象。如果指针为空,则返回对象的零值。
|
||||
func ToObj[T any](p *T) (v T) {
|
||||
if p == nil {
|
||||
return v
|
||||
}
|
||||
|
||||
return *p
|
||||
}
|
27
internal/pkg/utils/type/cast.go
Normal file
27
internal/pkg/utils/type/cast.go
Normal file
@ -0,0 +1,27 @@
|
||||
package typeutil
|
||||
|
||||
// 将对象转换为指针。
|
||||
//
|
||||
// 入参:
|
||||
// - 待转换的对象。
|
||||
//
|
||||
// 出参:
|
||||
// - 返回对象的指针。
|
||||
func ToPtr[T any](v T) (p *T) {
|
||||
return &v
|
||||
}
|
||||
|
||||
// 将指针转换为对象。
|
||||
//
|
||||
// 入参:
|
||||
// - 待转换的指针。
|
||||
//
|
||||
// 出参:
|
||||
// - 返回指针指向的对象。如果指针为空,则返回对象的零值。
|
||||
func ToVal[T any](p *T) (v T) {
|
||||
if IsNil(p) {
|
||||
return v
|
||||
}
|
||||
|
||||
return *p
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user