From a4eb08d4b9504cad85185c334294f690159c4496 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 2 Nov 2023 17:12:23 +0100 Subject: [PATCH] only free up robot if he is working --- public/swagger/swagger.json | 33 ++++++--------------------------- routers/api/v1/robot/robot.go | 7 ++++++- testclient/testrobot.py | 5 ----- 3 files changed, 12 insertions(+), 33 deletions(-) diff --git a/public/swagger/swagger.json b/public/swagger/swagger.json index 5742b2f..2c047ab 100644 --- a/public/swagger/swagger.json +++ b/public/swagger/swagger.json @@ -174,7 +174,7 @@ { "description": "Enable or disable permit join. 0 = disable, 1 = enable.", "name": "enabled", - "in": "path", + "in": "params", "required": true, "schema": { "type": "integer", @@ -371,7 +371,10 @@ "description": "Job freed up" }, "400": { - "description": "Invalid robot id" + "description": "Invalid request body" + }, + "422": { + "description": "Invalid robot id or robot is not running or waiting" } } } @@ -471,31 +474,7 @@ "RobotName": { "type": "string" }, - "Task": { - "$ref": "#/definitions/ControlTask" - } - }, - "x-go-package": "jannex/robot-control-manager/modules/structs" - }, - "ControlTask": { - "type": "object", - "properties": { - "ConnectedModule": { - "type": "integer", - "format": "int64" - }, - "X": { - "type": "integer", - "format": "int64" - }, - "Y": { - "type": "integer", - "format": "int64" - }, - "Z": { - "type": "integer", - "format": "int64" - } + "Task": {} }, "x-go-package": "jannex/robot-control-manager/modules/structs" }, diff --git a/routers/api/v1/robot/robot.go b/routers/api/v1/robot/robot.go index 771868e..071b57c 100644 --- a/routers/api/v1/robot/robot.go +++ b/routers/api/v1/robot/robot.go @@ -378,7 +378,7 @@ func FreeUpJob(c *fiber.Ctx) error { // "400": // description: Invalid request body // "422": - // description: Invalid robot id + // description: Invalid robot id or robot is not running or waiting var params structs.RobotIdParams @@ -393,6 +393,11 @@ func FreeUpJob(c *fiber.Ctx) error { return c.SendStatus(fiber.StatusUnprocessableEntity) } + if foundRobot.Status != utils.RobotStatusRunning && foundRobot.Status != utils.RobotStatusWaiting { + logger.AddSystemLog(rslogger.LogTypeWarning, "Robot %v is not running or waiting. Cannot free up job.", params.RobotId) + return c.SendStatus(fiber.StatusUnprocessableEntity) + } + robot.FreeUpJob(foundRobot, utils.RobotStatusIdle) logger.AddRobotLog(rslogger.LogTypeWarning, foundRobot.Type, foundRobot.Id, "Job freed up") diff --git a/testclient/testrobot.py b/testclient/testrobot.py index fee0af6..ceff037 100644 --- a/testclient/testrobot.py +++ b/testclient/testrobot.py @@ -23,9 +23,6 @@ class RexRobot: print("permit join disabled") exit(1) # esp should here restart - def setCurrentJobId(self, jobId): - self.currentJobId = jobId - # generate random id def randomId(): return random.randint(0, 100) @@ -45,8 +42,6 @@ for i in range(1): RexRobot("764") RexRobot("770")''' - - #rex = RexRobot("k5") app = Flask(__name__)