1
0
mirror of https://github.com/CumulusNetworks/ifupdown2.git synced 2024-05-06 15:54:50 +00:00

netlink: force python to load ifupdown2's nlmanager cpy instead of python-nlmanager

Ticket: CM-13453
Reviewed By: Roopa, Nikhil G, Daniel W
Testing Done: ifupdown2-tests

We had an issue where python-nlmanager and ifupdown2's nlmanager differed
When netd starts it loads ifupdown2's addons, so it also tries to do the
imports. Since the current working directy is not /usr/share/ifupdown2 but
netd directory it won't load ifupdown2's nlmanager first but python-nlmanager
if it exists.

Here we insert/hardcode /usr/share/ifupdown2/ first in the path to make sure
we load the right nlmanager

Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
This commit is contained in:
Julien Fortin
2016-11-10 19:14:43 +01:00
parent 9f30b2cca7
commit fa724923e1

View File

@ -6,7 +6,6 @@
try:
from ifupdownaddons.utilsbase import utilsBase
from nlmanager.nlmanager import NetlinkManager
import ifupdown.ifupdownflags as ifupdownflags
except ImportError, e:
raise ImportError(str(e) + "- required module not found")
@ -17,7 +16,16 @@ class Netlink(utilsBase):
def __init__(self, *args, **kargs):
utilsBase.__init__(self, *args, **kargs)
self._nlmanager_api = NetlinkManager(extra_debug=False)
try:
import sys
sys.path.insert(0, '/usr/share/ifupdown2/')
from nlmanager.nlmanager import NetlinkManager
# this should force the use of the local nlmanager
self._nlmanager_api = NetlinkManager(extra_debug=False)
except Exception as e:
self.logger.error('cannot initialize ifupdown2\'s '
'netlink manager: %s' % str(e))
raise
def get_iface_index(self, ifacename):
if ifupdownflags.flags.DRYRUN: return