On 07/31/2013 10:08 PM, Xu Wang wrote:
From: Xu Wang <cngesaint(a)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(a)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)