diff --git a/Makefile b/Makefile index 22fca77..d9632c1 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ clean: rm -rf oc-schedulerd docker: - DOCKER_BUILDKIT=1 docker build -t oc-schedulerd --build-arg MONITORD_IMAGE=oc-monitord -f Dockerfile . --build-arg=HOST=$(HOST) + DOCKER_BUILDKIT=1 docker build -t oc-schedulerd --build-arg MONITORD_IMAGE=oc-monitord -f Dockerfile . --build-arg=HOST=$(HOST) --build-arg=KUBERNETES_HOST=$(KUBERNETES_HOST) --build-arg=KUBERNETES_SERVICE_PORT=$(KUBERNETES_SERVICE_PORT) --build-arg=KUBE_CA=$(KUBE_CA) --build-arg=KUBE_CERT=$(KUBE_CERT) --build-arg=KUBE_DATA=$(KUBE_DATA) docker tag oc-schedulerd:latest oc/oc-schedulerd:0.0.1 publish-kind: diff --git a/daemons/execution_manager.go b/daemons/execution_manager.go index 096ad31..db566b1 100644 --- a/daemons/execution_manager.go +++ b/daemons/execution_manager.go @@ -26,7 +26,7 @@ func (em *ExecutionManager) RetrieveNextExecutions() { if exec.ExecDate.Before(time.Now().UTC()) { logger.Info().Msg("Will execute " + execId + " soon") go em.executeExecution(&exec) - delete(executions,execId) + delete(executions, execId) } } } @@ -60,7 +60,7 @@ func (em *ExecutionManager) executeExecution(execution *workflow_execution.Workf } args := executor.PrepareMonitorExec() - executor.LaunchMonitor(args,logger) + executor.LaunchMonitor(args, logger) // if exec_method == "k8s" { // logger.Error().Msg("TODO : executing oc-monitor in a k8s") @@ -76,7 +76,7 @@ func (em *ExecutionManager) executeExecution(execution *workflow_execution.Workf // ExecutionID: Execution.ExecutionsID, // PeerID: Execution.CreatorID, // LokiUrl: conf.GetConfig().LokiUrl, - + // } // monitor.LaunchLocalMonitor() // } diff --git a/daemons/schedule_manager.go b/daemons/schedule_manager.go index 329bcc9..0198718 100644 --- a/daemons/schedule_manager.go +++ b/daemons/schedule_manager.go @@ -24,7 +24,7 @@ type ScheduledExecution struct { func (sb *ScheduledExecution) DeleteSchedules(uuid string) { Executions.Mu.Lock() defer Executions.Mu.Unlock() - delete(sb.Execs,uuid) + delete(sb.Execs, uuid) } func (sb *ScheduledExecution) AddSchedules(new_executions []*workflow_execution.WorkflowExecution, logger zerolog.Logger) { @@ -39,10 +39,10 @@ func (sb *ScheduledExecution) AddSchedules(new_executions []*workflow_execution. } func (sb *ScheduledExecution) execIsSet(exec *workflow_execution.WorkflowExecution) bool { - if _, ok := sb.Execs[exec.UUID]; ok{ + if _, ok := sb.Execs[exec.UUID]; ok { return true } - + return false } @@ -58,18 +58,21 @@ type ScheduleManager struct { // on workflows' scheduling. Messages must contain // workflow execution ID, to allow retrieval of execution infos func (s *ScheduleManager) ListenNATS() { - nc, err := nats.Connect(oclib.GetConfig().NATSUrl) - if err != nil { - s.Logger.Error().Msg("Could not connect to NATS") - return + for { + nc, err := nats.Connect(oclib.GetConfig().NATSUrl) + if err != nil { + s.Logger.Error().Msg("Could not connect to NATS") + time.Sleep(10 * time.Second) + continue + } + defer nc.Close() + var wg sync.WaitGroup + wg.Add(2) + go s.listenForChange(nc, tools.REMOVE.GenerateKey(oclib.WORKFLOW.String()), true, wg) + go s.listenForChange(nc, tools.CREATE.GenerateKey(oclib.WORKFLOW.String()), false, wg) + wg.Wait() + break } - defer nc.Close() - var wg sync.WaitGroup - wg.Add(2) - go s.listenForChange(nc, tools.REMOVE.GenerateKey(oclib.WORKFLOW.String()), true, wg) - go s.listenForChange(nc, tools.CREATE.GenerateKey(oclib.WORKFLOW.String()), false, wg) - wg.Wait() - } // Goroutine listening to a NATS server for updates @@ -121,7 +124,7 @@ func (s *ScheduleManager) getExecution(from time.Time, to time.Time) (exec_list } res := oclib.NewRequest(oclib.LibDataEnum(oclib.WORKFLOW_EXECUTION), "", "", []string{}, nil).Search(&f, "", false) if res.Code != 200 { - s.Logger.Error().Msg("Error loading") + s.Logger.Error().Msg("Error loading " + res.Err) return } for _, exec := range res.Data {