[Kimchi-devel] [project-kimchi][PATCH 1/3] utils: Add a helper function to parse cmd result

Royce Lv lvroyce at linux.vnet.ibm.com
Wed Dec 18 06:31:59 UTC 2013


On 2013年12月17日 20:50, Ramon Medeiros wrote:
> On 12/17/2013 10:10 AM, lvroyce0210 at gmail.com wrote:
>> From: Royce Lv <lvroyce at 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.pass_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'}]
>>
>> Signed-off-by: Royce Lv <lvroyce at linux.vnet.ibm.com>
>> ---
>> src/kimchi/utils.py | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/src/kimchi/utils.py b/src/kimchi/utils.py
>> index f7eda93..1890a28 100644
>> --- a/src/kimchi/utils.py
>> +++ b/src/kimchi/utils.py
>> @@ -84,3 +84,10 @@ def import_class(class_path):
>>
>> def import_module(module_name):
>> return __import__(module_name, fromlist=[''])
>> +
>> +def parse_cmd_output(output, output_items):
>> + res = []
>> + for line in output.split("\n"):
> can you get the Popen result and use readlines, to get a array with 
> the lines, instead of striping it?
Hi Ramon,

Thanks for your review, I think for file read result it is OK, but seems 
for popen.communicate just pull out the raw output , and only stdout 
provide readlines interface, which official doc does not recommend 
because of deadlock problem. 
(http://docs.python.org/3.3/library/subprocess.html#subprocess.Popen.communicate).

>> + res.append(dict(zip(output_items, line.split())))
>> +
>> + return res
>
>

-- 
project-kimchi mailing list <project-kimchi at googlegroups.com>
https://groups.google.com/forum/#!forum/project-kimchi
--- 
You received this message because you are subscribed to the Google Groups "project-kimchi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to project-kimchi+unsubscribe at googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



More information about the Kimchi-devel mailing list