From b39a91dfe7960191303ac8cb8c892e1262adf252 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 (cherry picked from commit aa5323fbcfdc6c21177cb800884712b0252b84a0) --- 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 cdcf3a5b0d9c..db6e8c72451d 100644 --- a/src/ceph-volume/ceph_volume/util/__init__.py +++ b/src/ceph-volume/ceph_volume/util/__init__.py @@ -31,10 +31,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.47.3