fix: fix repeat certificates judgement logical in tencentcloud ssl uploader

main
Fu Diwei 2024-10-22 18:39:42 +08:00
parent 011130432c
commit 885cdfaec9
1 changed files with 14 additions and 19 deletions

View File

@ -49,33 +49,28 @@ func (u *TencentCloudSSLUploader) Upload(ctx context.Context, certPem string, pr
Repeatable: cast.BoolPtr(false), Repeatable: cast.BoolPtr(false),
} }
uploadCertificateResp, err := u.sdkClient.UploadCertificate(uploadCertificateReq) uploadCertificateResp, err := u.sdkClient.UploadCertificate(uploadCertificateReq)
if uploadCertificateResp != nil && uploadCertificateResp.Response != nil && uploadCertificateResp.Response.RepeatCertId != nil { if err != nil {
// 获取重复证书 return nil, fmt.Errorf("failed to execute sdk request 'ssl.UploadCertificate': %w", err)
}
// 获取证书详情
// REF: https://cloud.tencent.com/document/api/400/41673 // REF: https://cloud.tencent.com/document/api/400/41673
//
// P.S. 上传重复证书会返回上一次的证书 ID这里需要重新获取一遍证书名https://github.com/usual2970/certimate/pull/227
describeCertificateDetailReq := &tcSsl.DescribeCertificateDetailRequest{ describeCertificateDetailReq := &tcSsl.DescribeCertificateDetailRequest{
CertificateId: uploadCertificateResp.Response.RepeatCertId, CertificateId: uploadCertificateResp.Response.CertificateId,
} }
describeCertificateDetailResp, err := u.sdkClient.DescribeCertificateDetail(describeCertificateDetailReq) describeCertificateDetailResp, err := u.sdkClient.DescribeCertificateDetail(describeCertificateDetailReq)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeCertificateDetail': %w", err) return nil, fmt.Errorf("failed to execute sdk request 'ssl.DescribeCertificateDetail': %w", err)
} }
certId = *uploadCertificateResp.Response.RepeatCertId certId = *describeCertificateDetailResp.Response.CertificateId
certName = *describeCertificateDetailResp.Response.Alias certName = *describeCertificateDetailResp.Response.Alias
return &UploadResult{ return &UploadResult{
CertId: certId, CertId: certId,
CertName: certName, CertName: certName,
}, nil }, nil
}
if err != nil {
return nil, fmt.Errorf("failed to execute sdk request 'ssl.UploadCertificate': %w", err)
}
certId = *uploadCertificateResp.Response.CertificateId
return &UploadResult{
CertId: certId,
CertName: certName,
}, nil
} }
func (u *TencentCloudSSLUploader) createSdkClient() (*tcSsl.Client, error) { func (u *TencentCloudSSLUploader) createSdkClient() (*tcSsl.Client, error) {