Network service is failing with DPDK

Network service is failing and not started when interface is binded
with dpdk driver and interface config file is available.
In such case, removing config file for the interface which is binded with
dpdk driver.

Change-Id: Id445fbfe7abdd54c2ea522960224c7f0e412dd30
Closes-Bug:  #1657661
This commit is contained in:
Jaganathan Palanisamy 2017-01-19 03:00:33 -05:00
parent 81d2a7d871
commit d1db332350
2 changed files with 18 additions and 0 deletions

View File

@ -34,6 +34,13 @@ def ifcfg_config_path(name):
return "/etc/sysconfig/network-scripts/ifcfg-%s" % name
def remove_ifcfg_config(ifname):
if re.match('[\w-]+$', ifname):
ifcfg_file = ifcfg_config_path(ifname)
if os.path.exists(ifcfg_file):
os.remove(ifcfg_file)
# NOTE(dprince): added here for testability
def bridge_config_path(name):
return ifcfg_config_path(name)
@ -584,6 +591,8 @@ class IfcfgNetConfig(os_net_config.NetConfig):
# Bind the dpdk interface
utils.bind_dpdk_interfaces(ifname, ovs_dpdk_port.driver, self.noop)
if not self.noop:
remove_ifcfg_config(ifname)
data = self._add_common(ovs_dpdk_port)
logger.debug('ovs dpdk port data: %s' % data)
@ -602,6 +611,8 @@ class IfcfgNetConfig(os_net_config.NetConfig):
# checks are added at the object creation stage.
ifname = dpdk_port.members[0].name
utils.bind_dpdk_interfaces(ifname, dpdk_port.driver, self.noop)
if not self.noop:
remove_ifcfg_config(ifname)
data = self._add_common(ovs_dpdk_bond)
logger.debug('ovs dpdk bond data: %s' % data)

View File

@ -935,6 +935,13 @@ class TestIfcfgNetConfigApply(base.TestCase):
return self.temp_ifcfg_file.name
self.stubs.Set(impl_ifcfg, 'ifcfg_config_path', test_ifcfg_path)
def test_remove_ifcfg_config(name):
ifcfg_file = self.temp_ifcfg_file.name
if os.path.exists(ifcfg_file):
os.remove(ifcfg_file)
self.stubs.Set(impl_ifcfg, 'remove_ifcfg_config',
test_remove_ifcfg_config)
def test_routes_path(name):
return self.temp_route_file.name
self.stubs.Set(impl_ifcfg, 'route_config_path', test_routes_path)