From d7713e6f823dd62a33a27996e1da8e29f3f7b7c5 Mon Sep 17 00:00:00 2001 From: Dan van der Ster Date: Wed, 13 Dec 2017 17:02:44 +0100 Subject: [PATCH] mgr/balancer: cast config vals to int or float upmap_max_iterations and other config vals need to be numeric. Cast them appropriately. Signed-off-by: Dan van der Ster Fixes: http://tracker.ceph.com/issues/22429 --- src/pybind/mgr/balancer/module.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pybind/mgr/balancer/module.py b/src/pybind/mgr/balancer/module.py index 8fddaa686665..c7fa70cbbdc4 100644 --- a/src/pybind/mgr/balancer/module.py +++ b/src/pybind/mgr/balancer/module.py @@ -606,8 +606,8 @@ class Module(MgrModule): def do_upmap(self, plan): self.log.info('do_upmap') - max_iterations = self.get_config('upmap_max_iterations', 10) - max_deviation = self.get_config('upmap_max_deviation', .01) + max_iterations = int(self.get_config('upmap_max_iterations', 10)) + max_deviation = float(self.get_config('upmap_max_deviation', .01)) ms = plan.initial pools = [str(i['pool_name']) for i in ms.osdmap_dump.get('pools',[])] @@ -632,10 +632,10 @@ class Module(MgrModule): def do_crush_compat(self, plan): self.log.info('do_crush_compat') - max_iterations = self.get_config('crush_compat_max_iterations', 25) + max_iterations = int(self.get_config('crush_compat_max_iterations', 25)) if max_iterations < 1: return False - step = self.get_config('crush_compat_step', .5) + step = float(self.get_config('crush_compat_step', .5)) if step <= 0 or step >= 1.0: return False max_misplaced = float(self.get_config('max_misplaced', -- 2.47.3