On 05/28/2012 03:04 AM, tangchen wrote:
> hi~
>
> On 05/28/2012 02:38 PM, Alex Jia wrote:
>> On 05/25/2012 09:52 PM, Chris Evich wrote:
>>> On 05/25/2012 06:26 AM, Alex Jia wrote:
>>>> IMHO, we should reuse virsh_dumpxml() then give a optional
>>>> 'to_file' parameter rather than defining many similar function,
>>>> for example,
>>>>
>>>> def virsh_dumpxml(name, to_file="", uri="") if to_file: cmd =
>>>> "dumpxml %s>  %s" % (name, to_file) else: cmd = "dumpxml %s" %
>>>> name
>>>>
>>>> return virsh_cmd(cmd, uri)
>>>
>>> I like this idea.
>>>
>>>>
>>>> And then I saw each virsh cmd need to deal with exception
>>>> case, we should do it in virsh_cmd() to simplify codes.
>>>
>>> I don't quite understand your meaning here, could you explain
>>> further?
>>>
>> virsh_cmd() is a common function and will run all of virsh cmds by
>> utils.run() then it just returns stdout now, a caller will do
>> result check and catch a error further, if we can put these work in
>> virsh_cmd(), I think it will simplify our codes.
>>
> I thought about this before.
>
> The problem here is that users cannot judge if the virsh command runs
> correctly through stdout returned by virsh_cmd(). So we make
> virsh_cmd() raise an exception when the command is wrong.
>
> My idea was catching and handling exception in virsh_cmd(), and
> making virsh_cmd() return two values: command's exit status and
> stdout. In this way, users don't need to handle exceptions, and they
> are able to know the command is wrong with exit status.
>
> But if we do so, wherever virsh_cmd() is called should be modified.
> It will be a large number of work. I am still thinking about it.
> There may be something coincident with your idea. :)
>

Yes, changing the behavior too much will break a lot of stuff (I did it
before :)  What about adding an optional keyword parameter like
'extended_return=False'? When set 'True' make it return cmd_result
instance.  Or, if we want to shell users away from dealing with
cmd_result, return a tuple instead, like '(stdout,stderr,exitcode)'.  I 
think this could be a good compromise.

-- 
Chris Evich, RHCA, RHCE, RHCDS, RHCSS
Quality Assurance Engineer
e-mail: cevich + `@' + redhat.com o: 1-888-RED-HAT1 x44214
_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to