From 3d8e36436c6d20f705a932e85e1d80f8ca776b97 Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 12 Mar 2026 11:48:11 +0100 Subject: [PATCH] Create a Verification on manual check --- daemons/schedule_manager.go | 31 +++++++++++++++++++++---------- go.mod | 2 +- go.sum | 4 ++++ 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/daemons/schedule_manager.go b/daemons/schedule_manager.go index 9938d32..87a7c99 100644 --- a/daemons/schedule_manager.go +++ b/daemons/schedule_manager.go @@ -9,6 +9,7 @@ import ( oclib "cloud.o-forge.io/core/oc-lib" "cloud.o-forge.io/core/oc-lib/dbs" "cloud.o-forge.io/core/oc-lib/models/common/enum" + "cloud.o-forge.io/core/oc-lib/models/execution_verification" "cloud.o-forge.io/core/oc-lib/models/resources/native_tools" "cloud.o-forge.io/core/oc-lib/models/workflow_execution" "cloud.o-forge.io/core/oc-lib/tools" @@ -94,19 +95,29 @@ func (s *ScheduleManager) getExecution(from time.Time, to time.Time) (exec_list func (s *ScheduleManager) ExecuteWorkflow(resp tools.NATSResponse) { var event native_tools.WorkflowEventParams json.Unmarshal(resp.Payload, &event) - access := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), nil) - if d := access.LoadOne(fmt.Sprintf("%v", event.WorkflowResourceID)); d.Err == "" { - eventExec := &workflow_execution.WorkflowExecution{ - WorkflowID: d.Data.GetID(), - ExecDate: time.Now(), - ExecutionsID: uuid.New().String(), - State: enum.SCHEDULED, + if event.ManualCheck { + access := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.EXECUTION_VERIFICATION), nil) + exec := &execution_verification.ExecutionVerification{ + WorkflowID: event.WorkflowResourceID, + Payload: event.Payload, } - exec := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW_EXECUTION), nil).StoreOne(eventExec.Serialize(eventExec)) - if execc := exec.ToWorkflowExecution(); execc != nil { - Executions.AddSchedules([]*workflow_execution.WorkflowExecution{execc}, s.Logger) + access.StoreOne(exec.Serialize(exec)) + } else { + access := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW), nil) + if d := access.LoadOne(fmt.Sprintf("%v", event.WorkflowResourceID)); d.Err == "" { + eventExec := &workflow_execution.WorkflowExecution{ + WorkflowID: d.Data.GetID(), + ExecDate: time.Now(), + ExecutionsID: uuid.New().String(), + State: enum.SCHEDULED, + } + exec := oclib.NewRequestAdmin(oclib.LibDataEnum(oclib.WORKFLOW_EXECUTION), nil).StoreOne(eventExec.Serialize(eventExec)) + if execc := exec.ToWorkflowExecution(); execc != nil { + Executions.AddSchedules([]*workflow_execution.WorkflowExecution{execc}, s.Logger) + } } } + } func (s *ScheduleManager) GetNextScheduledWorkflows(_ tools.NATSResponse) { diff --git a/go.mod b/go.mod index 8b1308c..fdaf733 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module oc-schedulerd go 1.25.0 require ( - cloud.o-forge.io/core/oc-lib v0.0.0-20260312083310-f5e199132416 + cloud.o-forge.io/core/oc-lib v0.0.0-20260312104524-e28b79ac0d62 github.com/beego/beego v1.12.12 github.com/google/uuid v1.6.0 github.com/goraz/onion v0.1.3 diff --git a/go.sum b/go.sum index b07653c..176a436 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,10 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20260212123952-403913d8cf13 h1:DNIPQ7C+7wjbj cloud.o-forge.io/core/oc-lib v0.0.0-20260212123952-403913d8cf13/go.mod h1:jmyBwmsac/4V7XPL347qawF60JsBCDmNAMfn/ySXKYo= cloud.o-forge.io/core/oc-lib v0.0.0-20260312083310-f5e199132416 h1:QHR5pzCI/HUawu8pst5Ggio6WPCUUf8XYjNMVk8kSqo= cloud.o-forge.io/core/oc-lib v0.0.0-20260312083310-f5e199132416/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= +cloud.o-forge.io/core/oc-lib v0.0.0-20260312104017-9645e71b540b h1:f7ATkNQhf6Mzt98aTNaRcQ+B/QMKcAtwVHsHjt7Ju5I= +cloud.o-forge.io/core/oc-lib v0.0.0-20260312104017-9645e71b540b/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= +cloud.o-forge.io/core/oc-lib v0.0.0-20260312104524-e28b79ac0d62 h1:sHzacZxPIKHyjL4EkgG/c7MI8gM1xmLdhaoUx2ZsH+M= +cloud.o-forge.io/core/oc-lib v0.0.0-20260312104524-e28b79ac0d62/go.mod h1:+ENuvBfZdESSvecoqGY/wSvRlT3vinEolxKgwbOhUpA= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=