]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume util normalize comma with dot for str-to-int conversion
authorAlfredo Deza <adeza@redhat.com>
Fri, 21 Dec 2018 20:24:25 +0000 (15:24 -0500)
committerAlfredo Deza <adeza@redhat.com>
Wed, 2 Jan 2019 19:18:59 +0000 (14:18 -0500)
Signed-off-by: Alfredo Deza <adeza@redhat.com>
src/ceph-volume/ceph_volume/util/__init__.py

index dfa83fc46d35fb962da8e0fbd67876cf88dc1183..73f404721ed47f7aa8c1f9429f41061667d36d74 100644 (file)
@@ -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)