On Wed, Mar 14, 2012 at 1:33 PM, Qingtang Zhou <qz...@redhat.com> wrote:
> * On 2012-03-14 12:05:47 +0800, yanglei.f...@gmail.com 
> (yanglei.f...@gmail.com) wrote:
>> From: Lei Yang <yanglei.f...@gmail.com>
>>
>> Before dhclient, we need to check if it has been running,and then kill it
>> Signed-off-by: Lei Yang <yanglei.f...@gmail.com>
>> ---
>>  client/tests/kvm/tests/nic_bonding.py |    8 ++++++++
>>  1 files changed, 8 insertions(+), 0 deletions(-)
>>
>> diff --git a/client/tests/kvm/tests/nic_bonding.py 
>> b/client/tests/kvm/tests/nic_bonding.py
>> index 6266058..c976466 100644
>> --- a/client/tests/kvm/tests/nic_bonding.py
>> +++ b/client/tests/kvm/tests/nic_bonding.py
>> @@ -36,6 +36,14 @@ def run_nic_bonding(test, params, env):
>>                 for vlan, nic in enumerate(params.get("nics").split())]
>>      setup_cmd = "ifenslave bond0 " + " ".join(ifnames)
>>      session_serial.cmd(setup_cmd)
>> +    #do a pgrep to check if dhclient has already been running
>> +    pgrep_cmd = "pgrep dhclient"
>> +    cmd_output = session_serial.cmd(pgrep_cmd)
> Hi, Lei,
> I think your idea is checking existing dhclient process before run
> 'dhclient' cmd, right?

Right.

> But this 'session_serial.cmd' will raise an exception called 'ShellCmdError'
> if no dhclient process existed (pgrep returns 1 when no matched process is
> found), this exception would interrupt your test process.
>

Good, I have noticed this before, I will change it, thanks

Lei

> There are 2 way to avoid this problem,
> 1) Change session_serial.cmd to session_serial.cmd_status which
>   doesn't care about the return value of a command.
>   (please refer to virt/aexpect.py file)
> 2) Add a try...except... block here, a example:
>
> try:
>    cmd_output = session_serial.cmd(pgrep_cmd)
> except aexpect.ShellCmdError:
>    pass
> else:
>    #if dhclient is there, killl it
>    logging.info("dhclient already is running,kill it")
>    session_serial.cmd("killall -9 dhclient")
>    time.sleep(1)
>
>> +    #if dhclient is there, killl it
>> +    if cmd_output != '':
>> +            logging.info("dhclient already is running,kill it")
>> +            session_serial.cmd("killall -9 dhclient")
>> +            time.sleep(1)
> Oh, BTW, autotest's recommended indentation is 4 space, same as
> python standard. (See CODING_STYLE file in the top directory of
> autotest)
>
>>      session_serial.cmd("dhclient bond0")
>>
>>      try:
>> --
>> 1.7.5.4
>>
>> _______________________________________________
>> Autotest mailing list
>> Autotest@test.kernel.org
>> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to