diff --git a/src/job.cr b/src/job.cr index e877cc25e5e1c448be774fc4567d8d41a2af16da..8c7eb2d0d4a661563d378427e57dfc61d092d319 100644 --- a/src/job.cr +++ b/src/job.cr @@ -323,7 +323,7 @@ class JobHash ihealth idata_readiness priority - renew_seconds + borrow_seconds timeout_seconds deadline_utc ) @@ -875,10 +875,11 @@ class JobHash end def renew_addtime(secs) - if self.renew_seconds? - self.renew_seconds += secs + if self.borrow_seconds? + self.borrow_seconds += secs else - self.renew_seconds = secs + self.borrow_seconds = self.timeout_seconds + self.borrow_seconds += secs end end diff --git a/src/lifecycle.cr b/src/lifecycle.cr index b45d2451193db348a30cf0e4c96408285e775a83..69615551cc682fd06e8537a584673b514cf932a3 100644 --- a/src/lifecycle.cr +++ b/src/lifecycle.cr @@ -27,8 +27,8 @@ def get_timeout(job, stage) : Int32 when "running" secs = job.timeout_seconds when "renew" - if job.hash_int32.has_key? "renew_seconds" - secs = job.renew_seconds + if job.hash_int32.has_key? "borrow_seconds" + secs = job.borrow_seconds return secs else JOB_STAGE_TIMEOUT[stage] diff --git a/src/update_job_parameter.cr b/src/update_job_parameter.cr index f576db5f049372abefe45d73aeb6134b8bf89000..61fe0af4a5c41ddfe1d1249729bf5e97d1ca793b 100644 --- a/src/update_job_parameter.cr +++ b/src/update_job_parameter.cr @@ -1,5 +1,6 @@ # SPDX-License-Identifier: MulanPSL-2.0+ # Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved. +require "time" class Sched @@ -12,6 +13,7 @@ class Sched # Update job attributes from a hash of parameters def update_job_from_hash(params : Hash(String, String)) : Result + results = [] of String job_id = params["job_id"]? return Result.error(HTTP::Status::BAD_REQUEST, "Error: Missing job_id") unless job_id @@ -40,6 +42,7 @@ class Sched update_milestones(job, value) when "renew_seconds" result = renew_job(job, value) + results << result.message return result unless result.success end end @@ -48,7 +51,7 @@ class Sched send_job_event(job.id64, params.to_json) report_workflow_job_event(job.id64, job) - Result.success("") + Result.success(results.join("\n")) end # Helper method to update job state or stage @@ -80,7 +83,10 @@ class Sched end job.renew_addtime(value.to_i32) - Result.success("Renewed job for #{value} seconds") + borrow_seconds = job.hash_int32["borrow_seconds"]? || 0 + dispatch_time = Time.parse_iso8601(job.hash_plain["dispatch_time"]?) + new_time = dispatch_time + borrow_seconds.seconds + Result.success(new_time.to_s("%Y-%m-%dT%H:%M:%S%:z")) end end