From 28ac7d4d181a0a9678099e579310d463c5057f06 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Thu, 6 Jun 2019 16:02:35 -0400 Subject: [PATCH] 15000: Accept negative durations in config, fix crashing error log. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- services/api/lib/config_loader.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/api/lib/config_loader.rb b/services/api/lib/config_loader.rb index 90b6d9ddc7..6aeb6fce29 100644 --- a/services/api/lib/config_loader.rb +++ b/services/api/lib/config_loader.rb @@ -126,7 +126,7 @@ class ConfigLoader if cfg[k].is_a? Integer cfg[k] = cfg[k].seconds elsif cfg[k].is_a? String - cfg[k] = ConfigLoader.parse_duration cfg[k] + cfg[k] = ConfigLoader.parse_duration(cfg[k], cfgkey: cfgkey) end end @@ -155,13 +155,13 @@ class ConfigLoader end end - def self.parse_duration durstr - duration_re = /(\d+(\.\d+)?)(s|m|h)/ + def self.parse_duration durstr, cfgkey: + duration_re = /-?(\d+(\.\d+)?)(s|m|h)/ dursec = 0 while durstr != "" mt = duration_re.match durstr if !mt - raise "#{cfgkey} not a valid duration: '#{cfg[k]}', accepted suffixes are s, m, h" + raise "#{cfgkey} not a valid duration: '#{durstr}', accepted suffixes are s, m, h" end multiplier = {s: 1, m: 60, h: 3600} dursec += (Float(mt[1]) * multiplier[mt[3].to_sym]) -- 2.30.2