Conf Oclib Package Lightest

This commit is contained in:
mr
2026-02-03 16:12:57 +01:00
parent c3f769ccd5
commit 07ca18e347
4 changed files with 50 additions and 67 deletions

View File

@@ -8,18 +8,14 @@ import (
)
type Config struct {
MonitorPath string
MongoUrl string
DBName string
Logs string
LokiUrl string
NatsUrl string
Mode string
KubeHost string
KubePort string
KubeCA string
KubeCert string
KubeData string
MonitorPath string
Logs string
Mode string
KubeHost string
KubePort string
KubeCA string
KubeCert string
KubeData string
}
var instance *Config

View File

@@ -8,29 +8,30 @@ import (
"net/http"
"oc-schedulerd/conf"
oclib "cloud.o-forge.io/core/oc-lib"
"github.com/rs/zerolog"
)
type ContainerMonitor struct {
Monitor LocalMonitor
KubeCA string
KubeCert string
KubeData string
KubeHost string
KubePort string
Monitor LocalMonitor
KubeCA string
KubeCert string
KubeData string
KubeHost string
KubePort string
}
func NewContainerMonitor(UUID string, peerId string, duration int) (Executor){
func NewContainerMonitor(UUID string, peerId string, duration int) Executor {
return &ContainerMonitor{
Monitor: LocalMonitor{
Monitor: LocalMonitor{
ExecutionID: UUID,
PeerID: peerId,
Duration: duration,
LokiUrl: conf.GetConfig().LokiUrl,
MongoUrl: conf.GetConfig().MongoUrl,
DBName: conf.GetConfig().DBName,
PeerID: peerId,
Duration: duration,
LokiUrl: oclib.GetConfig().LokiUrl,
MongoUrl: oclib.GetConfig().MongoUrl,
DBName: oclib.GetConfig().MongoDatabase,
},
KubeCA: conf.GetConfig().KubeCA,
KubeCA: conf.GetConfig().KubeCA,
KubeCert: conf.GetConfig().KubeCert,
KubeData: conf.GetConfig().KubeData,
KubeHost: conf.GetConfig().KubeHost,
@@ -38,7 +39,7 @@ func NewContainerMonitor(UUID string, peerId string, duration int) (Executor){
}
}
func (cm *ContainerMonitor) PrepareMonitorExec() []string {
func (cm *ContainerMonitor) PrepareMonitorExec() []string {
args := []string{
"-e", cm.Monitor.ExecutionID,
@@ -49,7 +50,7 @@ func (cm *ContainerMonitor) PrepareMonitorExec() []string {
"-M", "kubernetes",
"-H", cm.KubeHost,
"-P", cm.KubePort,
"-C", cm.KubeCert,
"-C", cm.KubeCert,
"-D", cm.KubeData,
"-c", cm.KubeCA,
}
@@ -58,8 +59,8 @@ func (cm *ContainerMonitor) PrepareMonitorExec() []string {
args = append(args, "-t", fmt.Sprintf("%d", cm.Monitor.Duration))
}
return args
return args
}
// Contact the docker's API at the KubeHost's URL to :
@@ -67,8 +68,8 @@ func (cm *ContainerMonitor) PrepareMonitorExec() []string {
// - Create the container
// - Start the container
func (cm *ContainerMonitor) LaunchMonitor(args []string, l zerolog.Logger) {
var containerID string
var containerID string
imageName := "oc-monitord"
url := "http://" + cm.KubeHost + ":2375"
@@ -81,15 +82,15 @@ func (cm *ContainerMonitor) LaunchMonitor(args []string, l zerolog.Logger) {
d, _ := io.ReadAll(resp.Body)
l.Fatal().Msg("Couldn't find the oc-monitord image : " + string(d))
}
dataCreation := map[string]interface{}{"Image": imageName, "Cmd" : args}
dataCreation := map[string]interface{}{"Image": imageName, "Cmd": args}
byteData, err := json.Marshal(dataCreation)
if err != nil {
l.Fatal().Msg("Error when contacting the creating request body : " + err.Error())
}
r, _ := http.NewRequest("POST",url + "/containers/create", bytes.NewBuffer(byteData))
r.Header.Add("Content-Type","application/json")
r, _ := http.NewRequest("POST", url+"/containers/create", bytes.NewBuffer(byteData))
r.Header.Add("Content-Type", "application/json")
resp, err = http.DefaultClient.Do(r)
if err != nil {
l.Fatal().Msg("Error when contacting the docker API on " + url + ": " + err.Error())
@@ -116,9 +117,9 @@ func (cm *ContainerMonitor) LaunchMonitor(args []string, l zerolog.Logger) {
networkName := "oc"
dataNetwork, _ := json.Marshal(map[string]string{"Container" : containerID})
r, _ = http.NewRequest("POST",url + "/networks/" + networkName + "/connect", bytes.NewBuffer(dataNetwork))
r.Header.Add("Content-Type","application/json")
dataNetwork, _ := json.Marshal(map[string]string{"Container": containerID})
r, _ = http.NewRequest("POST", url+"/networks/"+networkName+"/connect", bytes.NewBuffer(dataNetwork))
r.Header.Add("Content-Type", "application/json")
resp, err = http.DefaultClient.Do(r)
if err != nil {
l.Fatal().Msg("Error when contacting the docker API on " + url + ": " + err.Error())
@@ -129,7 +130,7 @@ func (cm *ContainerMonitor) LaunchMonitor(args []string, l zerolog.Logger) {
return
}
resp, err = http.Post( url + "/containers/" + containerID + "/start", "", nil)
resp, err = http.Post(url+"/containers/"+containerID+"/start", "", nil)
if err != nil {
l.Fatal().Msg("Error when contacting the docker API on " + url + ": " + err.Error())
}
@@ -143,4 +144,4 @@ func (cm *ContainerMonitor) LaunchMonitor(args []string, l zerolog.Logger) {
// we can add logging with GET /containers/id/logs?stdout=true&follow=true
// logExecution(stdoutMonitord, l)
}
}

View File

@@ -5,6 +5,7 @@ import (
"oc-schedulerd/conf"
"os/exec"
oclib "cloud.o-forge.io/core/oc-lib"
"github.com/rs/zerolog"
)
@@ -12,20 +13,19 @@ type LocalMonitor struct {
ExecutionID string
PeerID string
Duration int
LokiUrl string
MongoUrl string
DBName string
LokiUrl string
MongoUrl string
DBName string
}
func NewLocalMonitor(UUID string, peerId string, duration int) (Executor){
func NewLocalMonitor(UUID string, peerId string, duration int) Executor {
return &LocalMonitor{
ExecutionID: UUID,
PeerID: peerId,
Duration: duration,
LokiUrl: conf.GetConfig().LokiUrl,
MongoUrl: conf.GetConfig().MongoUrl,
DBName: conf.GetConfig().DBName,
PeerID: peerId,
Duration: duration,
LokiUrl: oclib.GetConfig().LokiUrl,
MongoUrl: oclib.GetConfig().MongoUrl,
DBName: oclib.GetConfig().MongoDatabase,
}
}
@@ -46,7 +46,6 @@ func (lm *LocalMonitor) PrepareMonitorExec() []string {
"-d", lm.DBName,
}
if lm.Duration > 0 {
args = append(args, "-t", fmt.Sprintf("%d", lm.Duration))
}
@@ -54,7 +53,7 @@ func (lm *LocalMonitor) PrepareMonitorExec() []string {
return args
}
func (lm *LocalMonitor) LaunchMonitor(args []string, l zerolog.Logger) {
func (lm *LocalMonitor) LaunchMonitor(args []string, l zerolog.Logger) {
cmd := exec.Command(conf.GetConfig().MonitorPath, args...)
fmt.Printf("Command : %v\n", cmd)
@@ -70,4 +69,3 @@ func (lm *LocalMonitor) LaunchMonitor(args []string, l zerolog.Logger) {
logExecution(stdoutMonitord, l)
}

12
main.go
View File

@@ -14,18 +14,6 @@ func main() {
l := oclib.GetLogger()
o := oclib.GetConfLoader()
c := oclib.SetConfig(
o.GetStringDefault("MONGO_URL", "mongodb://127.0.0.1:27017"),
o.GetStringDefault("MONGO_DATABASE", "DC_myDC"),
o.GetStringDefault("NATS_URL", "nats://localhost:4222"),
o.GetStringDefault("LOKI_URL", ""),
o.GetStringDefault("LOG_LEVEL", "info"),
)
conf.GetConfig().DBName = c.MongoDatabase
conf.GetConfig().MongoUrl = c.MongoUrl
conf.GetConfig().NatsUrl = c.NATSUrl
conf.GetConfig().LokiUrl = c.LokiUrl
conf.GetConfig().Mode = o.GetStringDefault("MODE", "")
if conf.GetConfig().Mode == "container" {