From aa5323fbcfdc6c21177cb800884712b0252b84a0 Mon Sep 17 00:00:00 2001 From: Alfredo Deza Date: Fri, 21 Dec 2018 15:24:25 -0500 Subject: [PATCH] ceph-volume util normalize comma with dot for str-to-int conversion Signed-off-by: Alfredo Deza --- src/ceph-volume/ceph_volume/util/__init__.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ceph-volume/ceph_volume/util/__init__.py b/src/ceph-volume/ceph_volume/util/__init__.py index dfa83fc46d35f..73f404721ed47 100644 --- a/src/ceph-volume/ceph_volume/util/__init__.py +++ b/src/ceph-volume/ceph_volume/util/__init__.py @@ -30,10 +30,21 @@ def str_to_int(string, round_down=True): """ Parses a string number into an integer, optionally converting to a float and rounding down. + + Some LVM values may come with a comma instead of a dot to define decimals. + This function normalizes a comma into a dot """ error_msg = "Unable to convert to integer: '%s'" % str(string) try: - integer = float(string) + integer = float(string.replace(',', '.')) + except AttributeError: + # this might be a integer already, so try to use it, otherwise raise + # the original exception + if isinstance(string, (int, float)): + integer = string + else: + logger.exception(error_msg) + raise RuntimeError(error_msg) except (TypeError, ValueError): logger.exception(error_msg) raise RuntimeError(error_msg) -- 2.39.5