]> git-server-git.apps.pok.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)
committerMohamad Gebai <mgebai@suse.com>
Thu, 25 Apr 2019 17:03:35 +0000 (13:03 -0400)
Signed-off-by: Mohamad Gebai <mgebai@suse.com>
(cherry picked from commit 50428062175623d561be01a8124e010a61221845)

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

index 96417027db34e1f6952a6a68da8557006ee9043a..98239be3a445fdf7c8f02c6f8f4fb52354571faf 100644 (file)
@@ -686,6 +686,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):