Save and display execution records

This commit is contained in:
yoan
2024-11-20 15:47:51 +08:00
parent 03b2a9da66
commit 2d10fa0218
18 changed files with 405 additions and 54 deletions

View File

@@ -2,6 +2,7 @@ package nodeprocessor
import (
"context"
"time"
"github.com/usual2970/certimate/internal/applicant"
"github.com/usual2970/certimate/internal/domain"
@@ -45,8 +46,16 @@ func (a *applyNode) Run(ctx context.Context) error {
}
if output != nil && output.Succeed {
a.AddOutput(ctx, a.node.Name, "已申请过")
return nil
cert, err := a.outputRepo.GetCertificate(ctx, a.node.Id)
if err != nil {
a.AddOutput(ctx, a.node.Name, "获取证书失败", err.Error())
return err
}
if time.Until(cert.ExpireAt) > domain.ValidityDuration {
a.AddOutput(ctx, a.node.Name, "已申请过证书,且证书在有效期内")
return nil
}
}
// 获取Applicant
@@ -65,12 +74,18 @@ func (a *applyNode) Run(ctx context.Context) error {
a.AddOutput(ctx, a.node.Name, "申请成功")
// 记录申请结果
// 保持一个节点只有一个输出
outputId := ""
if output != nil {
outputId = output.Id
}
output = &domain.WorkflowOutput{
Workflow: GetWorkflowId(ctx),
NodeId: a.node.Id,
Node: a.node,
Succeed: true,
Output: a.node.Output,
Meta: domain.Meta{Id: outputId},
}
cert, err := x509.ParseCertificateFromPEM(certificate.Certificate)