From 86de7496cb1de37306c09afa4c016dfb983e9b9d Mon Sep 17 00:00:00 2001 From: kuzxnia Date: Sat, 16 Mar 2024 02:12:24 +0100 Subject: [PATCH] fixed 2 agents pool same job --- lbot/database/client.go | 6 +++++- lbot/lbot.go | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lbot/database/client.go b/lbot/database/client.go index a6b8199..7425b50 100644 --- a/lbot/database/client.go +++ b/lbot/database/client.go @@ -200,9 +200,13 @@ func (c *MongoClient) RunJob(job config.Job) error { } func (c *MongoClient) SaveWorkload(workload *Workload) error { + oldVersion := workload.Version + workload.Version = primitive.NewObjectID() + _, err := c.client.Database(config.DB).Collection(config.WorkloadCollection). - UpdateOne(context.TODO(), bson.M{"_id": workload.Id}, bson.M{"$set": workload}) + UpdateOne(context.TODO(), bson.M{"_id": workload.Id, "version": oldVersion}, bson.M{"$set": workload}) if err != nil { + workload.Version = oldVersion return err } diff --git a/lbot/lbot.go b/lbot/lbot.go index 2e2087b..bcab1ba 100644 --- a/lbot/lbot.go +++ b/lbot/lbot.go @@ -196,6 +196,7 @@ func (l *Lbot) HandleWorkload() { err := l.SetWorkloadState(workload, database.WorkloadStateToRun) if err != nil { + log.Println("Fetched command with: ", err) // if not saved, propably other agent taked return } @@ -274,7 +275,6 @@ func (l *Lbot) UpdateRunningAgents() error { return err } - log.Info("before agents update") runningAgents, err := client.GetAgentWithHeartbeatWithin() if err != nil { return err @@ -289,7 +289,6 @@ func (l *Lbot) UpdateRunningAgents() error { } } - log.Info("after agents update") return nil } @@ -337,6 +336,7 @@ func (l *Lbot) GenerateWorkload(command *database.Command) ([]*database.Workload log.Println("Generating workloads for agents ", l.runningAgents) for i := 0; i < int(l.runningAgents); i++ { workload := database.Workload{ + Id: primitive.NewObjectID(), CommandId: command.Id, Data: command.Data, State: database.WorkloadStateCreated.String(),