]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: add function to convert from a readable string to Size
authorMohamad Gebai <mgebai@suse.com>
Sun, 31 Mar 2019 17:06:43 +0000 (13:06 -0400)
committerJan Fajerski <jfajerski@suse.com>
Wed, 8 Jan 2020 09:17:07 +0000 (10:17 +0100)
Signed-off-by: Mohamad Gebai <mgebai@suse.com>
(cherry picked from commit 50428062175623d561be01a8124e010a61221845)

src/ceph-volume/ceph_volume/util/disk.py

index 8ac215b8821ba850256fb214ee6abb4c1ceca393..0be90aecc015c322d91219c41612840576f4782c 100644 (file)
@@ -687,6 +687,26 @@ def human_readable_size(size):
         suffix=suffixes[suffix_index])
 
 
+def size_from_human_readable(s):
+    """
+    Takes a human readable string and converts into a Size. If no unit is
+    passed, bytes is assumed.
+    """
+    s = s.replace(' ', '')
+    if s[-1].isdigit():
+        return Size(b=float(s))
+    n = float(s[:-1])
+    if s[-1].lower() == 't':
+        return Size(tb=n)
+    if s[-1].lower() == 'g':
+        return Size(gb=n)
+    if s[-1].lower() == 'm':
+        return Size(mb=n)
+    if s[-1].lower() == 'k':
+        return Size(kb=n)
+    return None
+
+
 def get_partitions_facts(sys_block_path):
     partition_metadata = {}
     for folder in os.listdir(sys_block_path):