[libvirt] [libvirt-test-api][PATCH 1/2] introduce a new helper to parse mountinfo

Luyao Huang lhuang at redhat.com
Mon Sep 14 03:43:34 UTC 2015


And will return list like this :
[{'devminor': '25', 'mountdir': '/sys/fs/cgroup/cpuset', 'devmajor': '0', 'mounttype': 'cgroup'},...]

Signed-off-by: Luyao Huang <lhuang at redhat.com>
---
 utils/utils.py | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/utils/utils.py b/utils/utils.py
index a6e6965..6909fed 100644
--- a/utils/utils.py
+++ b/utils/utils.py
@@ -925,3 +925,40 @@ def param_to_tuple_nolength(paramlist):
     lengh = max(d)
 
     return param_to_tuple(paramlist, int(lengh) + 1)
+
+def parse_mountinfo(string):
+    """a helper to parse mountinfo in /proc/self/mountinfo
+       and return a list contains multiple dict
+    """
+
+    ret = []
+    mount_list = string.split("\n")
+    for n in mount_list:
+        mount_dict = {}
+        if n.find("/") > 0:
+            tmp = n[:n.find("/")]
+            if len(tmp.split()) != 3:
+                continue
+
+            if tmp.split()[2].find(":") < 0:
+                continue
+
+            mount_dict['devmajor'] = tmp.split()[2].split(":")[0]
+            mount_dict['devminor'] = tmp.split()[2].split(":")[1]
+
+            tmp = n[n.find("/") + 1:]
+
+            mount_dict['mountdir'] = tmp.split()[0]
+
+            if tmp.find(" - ") < 0:
+                continue
+
+            tmp = tmp.split(" - ")[1]
+
+            mount_dict['mounttype'] = tmp.split()[0]
+            if tmp.split()[1].find("/") > 0:
+                mount_dict['sourcedir'] = tmp.split()[1]
+
+            ret.append(mount_dict)
+
+    return ret
-- 
1.8.3.1




More information about the libvir-list mailing list