on 2014/01/13 18:40, lvroyce(a)linux.vnet.ibm.com wrote:
From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
Abstract a helper function to parse cmd result.
Usage:
(1)get cmd result with subprocess.call or subprocess.Popen
(2) call pass_cmd_output to get formated outputs
Example:
blkid = subprocess.Popen(["cat", "/proc/mounts"],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
outs = blkid.communicate()[0]
output_items= ['path', 'mnt_point', 'type',
'option']
utils.parse_cmd_output(outs, output_items)
Sample output:
[{'path': '/dev/sda8', 'type': 'ext4',
'option': 'rw,relatime,data=ordered', 'mnt_point':
'/home'},
{'path': 'localhost:/home/royce/isorepo', 'type':
'nfs4',
'option': 'rw...addr=127.0.0.1', 'mnt_point':
'/mnt'}]
To prevent future mount of nfs path will hang,
we will try nfs path with a quick mount,
if this check fails, report warning to user.
Signed-off-by: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
---
src/kimchi/utils.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/kimchi/utils.py b/src/kimchi/utils.py
index af245c6..781525b 100644
--- a/src/kimchi/utils.py
+++ b/src/kimchi/utils.py
@@ -96,3 +96,11 @@ def check_url_path(path):
return False
return True
+
+
+def parse_cmd_output(output, output_items):
+ res = []
+ for line in output.split("\n"):
+ res.append(dict(zip(output_items, line.split())))
+
+ return res
This function looks useful. I think it deserves a better name. May I
suggest def parse_table_text(output, keys): ... ?
--
Thanks and best regards!
Zhou Zheng Sheng / 周征晟
E-mail: zhshzhou(a)linux.vnet.ibm.com
Telephone: 86-10-82454397