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
(cherry picked from commit d1db332350
)
This commit is contained in:
parent
eeaaef7090
commit
f3bac8b95c
|
@ -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)
|
||||
|
@ -574,6 +581,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)
|
||||
|
@ -592,6 +601,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)
|
||||
|
|
|
@ -894,6 +894,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)
|
||||
|
|
Loading…
Reference in New Issue