[Libvirt-cim] [PATCH 2/2] cimtest: Add default network existence check to 06_parent_net_pool.py

John Ferlan jferlan at redhat.com
Tue Aug 6 23:57:29 UTC 2013


On 07/31/2013 10:08 PM, Xu Wang wrote:
> From: Xu Wang <cngesaint at gmail.com>
> 
> The default network card name is 'eth0' or 'em1'. But if the network
> card name doesn't contain those values, error would occur. So this patch
> will check if the default network card name exists in the network
> card name list. If not, the network card name would changed into
> the first one in the network card name list except lo.
> 
> Signed-off-by: Xu Wang <gesaint at linux.vnet.ibm.com>
> ---
>  .../libvirt-cim/cimtest/RASD/06_parent_net_pool.py |   16 +++++++++++++---
>  1 files changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/suites/libvirt-cim/cimtest/RASD/06_parent_net_pool.py b/suites/libvirt-cim/cimtest/RASD/06_parent_net_pool.py
> index 2c1f285..5f330e1 100644
> --- a/suites/libvirt-cim/cimtest/RASD/06_parent_net_pool.py
> +++ b/suites/libvirt-cim/cimtest/RASD/06_parent_net_pool.py
> @@ -39,7 +39,7 @@
>  # -Netmask="255.255.255.0"
>  # -IPRangeStart="192.168.122.2"
>  # -IPRangeEnd="192.168.122.254"
> -# -ForwardDevice=  [ verified for 'None' and "eth0" ]
> +# -ForwardDevice=  [ verified for 'None' and network card name (default is 'eth0') ]
>  # -ForwardMode=0   [ verified for 1,2 as well ]
>  # 
>  # 
> @@ -47,6 +47,7 @@
>  #                                               Date : 18-05-2009
>  
>  import sys
> +import os
>  from sets import Set
>  from CimTest.Globals import logger
>  from XenKvmLib.const import do_main
> @@ -67,6 +68,15 @@ def main():
>      options = main.options
>      virt = options.virt
>      server = options.ip
> +    net_dev = 'eth0'
> +
> +    # The default device name may not named 'eth0', so this case would
> +    # return FAIL. The following code will check if default device exists in
> +    # the network card list and if not, source_dev will be changed into the 1st
> +    # network card in the list.
> +    net_info = os.popen('ip addr').read()
> +    if net_info.find(net_dev) == -1:
> +        net_dev = net_info.split(': ')[3]
>  
>      status, netpool_rasd = get_pool_rasds(server, virt, filter_default=False)
>      if status != PASS:
> @@ -80,8 +90,8 @@ def main():
>                    'IPRangeStart' : "192.168.122.2",
>                    'IPRangeEnd'   : "192.168.122.254"
>                  }
> -    exp_mode_device = [('None', 0L), ('None', 1L), ('eth0', 1L), 
> -                       ('None', 2L), ('eth0', 2L)]
> +    exp_mode_device = [('None', 0L), ('None', 1L), (net_dev, 1L), 
> +                       ('None', 2L), (net_dev, 2L)]

'git am' gives a warning about extraneous whitespace...  Thus...

s/1L), /1L),/


Beyond that - this test fails for me:

RASD - 06_parent_net_pool.py: FAIL
ERROR 	- Exception details: Mismatching Mode and device values, Got
[('None', 0L), ('None', 1L), ('em1', 1L), ('None', 2L), ('em1', 2L)],
Expected [('None', 0L), ('None', 1L), ('eth0', 1L), ('None', 2L),
('eth0', 2L)]
--------------------------------------------------------------------


It doesn't matter what I initialize 'net_dev' to (em1, foobar, etc), the
filling of 'n_rec' returns eth0.  I wasn't able to directly run the
wbemcli command in the comments to the code, but it seems from reading
the libvirt-cim code:

"src/Virt_SettingsDefineCapabilities.c"

set_net_pool_props():

                if (i == 1) {
                        CMSetProperty(inst, "ForwardDevice",
                                      (CMPIValue *)"eth0", CMPI_chars);
                }


It seems perhaps we need to fix that first!


John

>      for inst_type in inst_list:
>          logger.info("Verifying '%s' records", inst_type)
>  
> 




More information about the Libvirt-cim mailing list