oc-schedulerd/daemons/execute_monitor_local.go

42 lines
955 B
Go
Raw Normal View History

2024-07-29 15:46:44 +02:00
package daemons
2024-08-09 18:44:33 +02:00
import (
"oc-schedulerd/conf"
2024-08-09 18:44:33 +02:00
"os/exec"
"github.com/rs/zerolog"
2024-08-09 18:44:33 +02:00
)
2024-07-29 15:46:44 +02:00
type LocalMonitor struct {
LokiURL string
KubeURL string
WorkflowName string
Logger zerolog.Logger
2024-07-29 15:46:44 +02:00
}
func (lm *LocalMonitor) LaunchLocalMonitor() {
if lm.LokiURL == "" || lm.KubeURL == "" || lm.WorkflowName == "" {
lm.Logger.Error().Msg("Missing parameter in LocalMonitor")
2024-07-29 15:46:44 +02:00
}
// For dev purposes, in prod KubeURL must be a kube API's URL
if lm.KubeURL == "localhost" {
2024-08-09 18:44:33 +02:00
lm.execLocalKube()
} else {
2024-08-09 18:44:33 +02:00
lm.execRemoteKube()
2024-07-29 15:46:44 +02:00
}
}
func (lm *LocalMonitor) execLocalKube() {
cmd := exec.Command(conf.GetConfig().MonitorPath, "-w", lm.WorkflowName, "-u", lm.LokiURL, "-m", conf.GetConfig().MongoUrl, "-d", conf.GetConfig().DBName)
err := cmd.Start()
if err != nil {
lm.Logger.Error().Msg("Could not start oc-monitor for " + lm.WorkflowName + " : " + err.Error())
2024-08-09 18:44:33 +02:00
}
2024-07-29 15:46:44 +02:00
}
// TODO : implement this
func (lm *LocalMonitor) execRemoteKube() {
2024-07-29 15:46:44 +02:00
}