mirror of
https://github.com/woodchen-ink/certimate.git
synced 2025-07-18 17:31:55 +08:00
fix: #769
This commit is contained in:
parent
0448538073
commit
9b3c7e16c0
@ -77,6 +77,26 @@ func (r *CertificateRepository) GetByWorkflowNodeId(ctx context.Context, workflo
|
|||||||
return r.castRecordToModel(records[0])
|
return r.castRecordToModel(records[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *CertificateRepository) GetByWorkflowRunIdAndNodeId(ctx context.Context, workflowRunId string, workflowNodeId string) (*domain.Certificate, error) {
|
||||||
|
records, err := app.GetApp().FindRecordsByFilter(
|
||||||
|
domain.CollectionNameCertificate,
|
||||||
|
"workflowRunId={:workflowRunId} && workflowNodeId={:workflowNodeId} && deleted=null",
|
||||||
|
"-created",
|
||||||
|
1, 0,
|
||||||
|
dbx.Params{"workflowRunId": workflowRunId},
|
||||||
|
dbx.Params{"workflowNodeId": workflowNodeId},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(records) == 0 {
|
||||||
|
return nil, domain.ErrRecordNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.castRecordToModel(records[0])
|
||||||
|
}
|
||||||
|
|
||||||
func (r *CertificateRepository) Save(ctx context.Context, certificate *domain.Certificate) (*domain.Certificate, error) {
|
func (r *CertificateRepository) Save(ctx context.Context, certificate *domain.Certificate) (*domain.Certificate, error) {
|
||||||
collection, err := app.GetApp().FindCollectionByNameOrId(domain.CollectionNameCertificate)
|
collection, err := app.GetApp().FindCollectionByNameOrId(domain.CollectionNameCertificate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -105,7 +105,7 @@ func (n *applyNode) Process(ctx context.Context) error {
|
|||||||
|
|
||||||
// 保存 ARI 记录
|
// 保存 ARI 记录
|
||||||
if applyResult.ARIReplaced && lastOutput != nil {
|
if applyResult.ARIReplaced && lastOutput != nil {
|
||||||
lastCertificate, _ := n.certRepo.GetByWorkflowNodeId(ctx, lastOutput.NodeId)
|
lastCertificate, _ := n.certRepo.GetByWorkflowRunIdAndNodeId(ctx, lastOutput.RunId, lastOutput.NodeId)
|
||||||
if lastCertificate != nil {
|
if lastCertificate != nil {
|
||||||
lastCertificate.ACMERenewed = true
|
lastCertificate.ACMERenewed = true
|
||||||
n.certRepo.Save(ctx, lastCertificate)
|
n.certRepo.Save(ctx, lastCertificate)
|
||||||
@ -155,7 +155,7 @@ func (n *applyNode) checkCanSkip(ctx context.Context, lastOutput *domain.Workflo
|
|||||||
return false, "the configuration item 'KeyAlgorithm' changed"
|
return false, "the configuration item 'KeyAlgorithm' changed"
|
||||||
}
|
}
|
||||||
|
|
||||||
lastCertificate, _ := n.certRepo.GetByWorkflowNodeId(ctx, lastOutput.NodeId)
|
lastCertificate, _ := n.certRepo.GetByWorkflowRunIdAndNodeId(ctx, lastOutput.RunId, lastOutput.NodeId)
|
||||||
if lastCertificate != nil {
|
if lastCertificate != nil {
|
||||||
renewalInterval := time.Duration(thisNodeCfg.SkipBeforeExpiryDays) * time.Hour * 24
|
renewalInterval := time.Duration(thisNodeCfg.SkipBeforeExpiryDays) * time.Hour * 24
|
||||||
expirationTime := time.Until(lastCertificate.ExpireAt)
|
expirationTime := time.Until(lastCertificate.ExpireAt)
|
||||||
|
@ -50,6 +50,7 @@ func (n *nodeOutputer) GetOutputs() map[string]any {
|
|||||||
|
|
||||||
type certificateRepository interface {
|
type certificateRepository interface {
|
||||||
GetByWorkflowNodeId(ctx context.Context, workflowNodeId string) (*domain.Certificate, error)
|
GetByWorkflowNodeId(ctx context.Context, workflowNodeId string) (*domain.Certificate, error)
|
||||||
|
GetByWorkflowRunIdAndNodeId(ctx context.Context, workflowRunId string, workflowNodeId string) (*domain.Certificate, error)
|
||||||
Save(ctx context.Context, certificate *domain.Certificate) (*domain.Certificate, error)
|
Save(ctx context.Context, certificate *domain.Certificate) (*domain.Certificate, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ func (n *uploadNode) checkCanSkip(ctx context.Context, lastOutput *domain.Workfl
|
|||||||
return false, "the configuration item 'PrivateKey' changed"
|
return false, "the configuration item 'PrivateKey' changed"
|
||||||
}
|
}
|
||||||
|
|
||||||
lastCertificate, _ := n.certRepo.GetByWorkflowNodeId(ctx, lastOutput.NodeId)
|
lastCertificate, _ := n.certRepo.GetByWorkflowRunIdAndNodeId(ctx, lastOutput.RunId, lastOutput.NodeId)
|
||||||
if lastCertificate != nil {
|
if lastCertificate != nil {
|
||||||
daysLeft := int(time.Until(lastCertificate.ExpireAt).Hours() / 24)
|
daysLeft := int(time.Until(lastCertificate.ExpireAt).Hours() / 24)
|
||||||
n.outputs[outputKeyForCertificateValidity] = strconv.FormatBool(daysLeft > 0)
|
n.outputs[outputKeyForCertificateValidity] = strconv.FormatBool(daysLeft > 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user