From 4be09d3cea223789be2754cf745381640a665003 Mon Sep 17 00:00:00 2001 From: Renato Maia Date: Wed, 18 Nov 2020 16:44:14 -0300 Subject: [PATCH] Informar estado de jobs atualizado ao reconectar com o servidor. [SOMA-6696][SOMA-6693] --- sga/application.lua | 4 ++-- sga/client.lua | 50 ++++++++++++++++++++++----------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/sga/application.lua b/sga/application.lua index dfc4415..25411a9 100644 --- a/sga/application.lua +++ b/sga/application.lua @@ -142,7 +142,7 @@ function application.run(self) local sga_type = self.config.sga_type or self.driver.type or "machine" - local reg_ok, reg_err = self.client:register(sga_type, nodes, self.server:get_persisted_jobs()) + local reg_ok, reg_err = self.client:register(sga_type, nodes, self.server) if not reg_ok then return nil, "Failed registering: " .. tostring(reg_err) end @@ -156,7 +156,7 @@ function application.run(self) self.logger:debug(msg) local ok, err = fn() if not ok then - ok, err = self.client:register(sga_type, self.driver:get_nodes(), self.server:get_persisted_jobs()) + ok, err = self.client:register(sga_type, self.driver:get_nodes(), self.server) if not ok then self.logger:error("Failed registering: " .. err) end diff --git a/sga/client.lua b/sga/client.lua index d039907..005a7e0 100644 --- a/sga/client.lua +++ b/sga/client.lua @@ -53,10 +53,7 @@ local do_post = do_request("post") local Client = safer.readonly { - register = function(self, sga_type, nodes, persisted_jobs) - assert(type(persisted_jobs) == "table") - assert(type(persisted_jobs.lost) == "table") - assert(type(persisted_jobs.retrieved) == "table") + register = function(self, sga_type, nodes, server) local sga_name = self.config.sga_name @@ -71,32 +68,35 @@ local Client = safer.readonly { return nil, "Sandbox root does not exist or is not a directory: "..self.config.sandbox_root_dir end + local regdata = { + name = sga_name, + type = sga_type, + platform = self.config.platform, + project_root_dir = self.config.project_root_dir, + algorithm_root_dir = self.config.algorithm_root_dir, + sandbox_root_dir = self.config.sandbox_root_dir, + nodes = nodes, + actions = { + path = self.base_uri.."/v1/sga/"..sga_name.."/path", + paths = self.base_uri.."/v1/sga/"..sga_name.."/paths", + job = self.base_uri.."/v1/sga/"..sga_name.."/job", + shutdown = self.base_uri.."/v1/sga/"..sga_name.."/shutdown", + }, + resources = self.config.resources, + extra_config = self.config.extra_config + } + local response, err repeat + local persisted_jobs = server:get_persisted_jobs() + regdata.persistent_data = { + lost = persisted_jobs.lost, + retrieved = persisted_jobs.retrieved, + } response, err = do_post({ url = self.config.csbase_server.."/v1/sga", headers = {["Content-Type"] = "application/json"}, - data = dkjson.encode({ - name = sga_name, - type = sga_type, - platform = self.config.platform, - project_root_dir = self.config.project_root_dir, - algorithm_root_dir = self.config.algorithm_root_dir, - sandbox_root_dir = self.config.sandbox_root_dir, - nodes = nodes, - actions = { - path = self.base_uri.."/v1/sga/"..sga_name.."/path", - paths = self.base_uri.."/v1/sga/"..sga_name.."/paths", - job = self.base_uri.."/v1/sga/"..sga_name.."/job", - shutdown = self.base_uri.."/v1/sga/"..sga_name.."/shutdown", - }, - persistent_data = { - lost = persisted_jobs.lost, - retrieved = persisted_jobs.retrieved, - }, - resources = self.config.resources, - extra_config = self.config.extra_config - }), + data = dkjson.encode(regdata), }) if not response then err = err:gsub("^[^:]+:%d+: ", "") -- GitLab