保存证书恢复后台任务接入准备

保存恢复任务依赖注入和任务配置检查的中间状态,便于继续完成异步恢复链路。
This commit is contained in:
xuans 2026-10-03 01:42:49 +08:00
parent 3f6a05d2b9
commit a8e7de7568
2 changed files with 7 additions and 1 deletions

View File

@ -66,6 +66,7 @@ type Dependencies struct {
// DeployCertificateTask 执行已有任务,不得重复创建任务或尝试记录。
DeployCertificateTask func(context.Context, string) (certificate.IssueResult, deployment.Report, error)
RestoreCertificateVersion func(context.Context, string, string) (certificate.IssueResult, error)
RestoreCertificateVersionTask func(context.Context, string, string) (certificate.IssueResult, error)
ValidateCertificate func(context.Context, string) (certificate.IssueResult, certificate.ValidationResult, error)
// ValidateCertificateTask 直接校验当前证书,不重复创建任务。
ValidateCertificateTask func(context.Context, string) (certificate.IssueResult, certificate.ValidationResult, error)
@ -107,6 +108,7 @@ type Server struct {
deployCertificate func(context.Context, string) (certificate.IssueResult, deployment.Report, error)
deployCertificateTask func(context.Context, string) (certificate.IssueResult, deployment.Report, error)
restoreVersion func(context.Context, string, string) (certificate.IssueResult, error)
restoreVersionTask func(context.Context, string, string) (certificate.IssueResult, error)
validateCertificateWorkflow func(context.Context, string) (certificate.IssueResult, certificate.ValidationResult, error)
validateCertificateTask func(context.Context, string) (certificate.IssueResult, certificate.ValidationResult, error)
@ -177,6 +179,7 @@ func New(deps Dependencies) *Server {
deployCertificate: deps.DeployCertificate,
deployCertificateTask: deps.DeployCertificateTask,
restoreVersion: deps.RestoreCertificateVersion,
restoreVersionTask: deps.RestoreCertificateVersionTask,
validateCertificateWorkflow: deps.ValidateCertificate,
validateCertificateTask: deps.ValidateCertificateTask,
runRenewal: deps.RunRenewal,

View File

@ -38,7 +38,10 @@ func (s *Server) submitPreparedDomainTask(c *gin.Context, taskType string, prepa
prepared.cleanup()
}
}()
if (taskType == "certificate_issue" && s.issueCertificate == nil) || (taskType == "certificate_deploy" && s.deployCertificateTask == nil) || (taskType == "certificate_validate" && s.validateCertificateTask == nil) {
if (taskType == "certificate_issue" && s.issueCertificate == nil) ||
(taskType == "certificate_deploy" && s.deployCertificateTask == nil) ||
(taskType == "certificate_validate" && s.validateCertificateTask == nil) ||
(taskType == "certificate_restore" && s.restoreVersionTask == nil) {
s.writeError(c, http.StatusNotImplemented, "证书申请接口尚未配置", errors.New("证书申请工作流未配置"))
return
}