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

addons: mgmtvrf with static IP needs to support 'gateway'

Ticket: CM-10281
Reviewed By: Roopa Prabhu
Testing Done: Tested with the configuration mentioned in the bug id

Due to bug CM-10188, defualt route via gateway is not installed in time.
It needs 2 sec delay, and fix to CM-10188 shall rectify this issue.

Signed-off-by: Nikhil <nikhil@cumulusnetworks.com>
This commit is contained in:
Nikhil
2016-04-25 18:48:01 -07:00
parent f466af7a8c
commit 016e9325b6
2 changed files with 13 additions and 5 deletions

View File

@@ -313,7 +313,8 @@ class address(moduleBase):
if addr_method != "dhcp":
self.ipcmd.route_add_gateway(ifaceobj.name,
ifaceobj.get_attr_value_first('gateway'))
ifaceobj.get_attr_value_first('gateway'),
ifaceobj.get_attr_value_first('vrf'))
def _down(self, ifaceobj, ifaceobj_getfunc=None):
try:
@@ -323,6 +324,7 @@ class address(moduleBase):
if addr_method != "dhcp":
self.ipcmd.route_del_gateway(ifaceobj.name,
ifaceobj.get_attr_value_first('gateway'),
ifaceobj.get_attr_value_first('vrf'),
ifaceobj.get_attr_value_first('metric'))
if ifaceobj.get_attr_value_first('address-purge')=='no':
addrlist = ifaceobj.get_attr_value('address')

View File

@@ -437,21 +437,27 @@ class iproute2(utilsBase):
def link_get_status(self, ifacename):
return self._cache_get('link', [ifacename, 'ifflag'], refresh=True)
def route_add_gateway(self, ifacename, gateway, metric=None):
def route_add_gateway(self, ifacename, gateway, vrf=None, metric=None):
if not gateway:
return
cmd = 'ip route add default via %s' %gateway
if not vrf:
cmd = 'ip route add default via %s' %gateway
else:
cmd = 'ip route add table %s default via %s' %(vrf, gateway)
# Add metric
if metric:
cmd += 'metric %s' %metric
cmd += ' dev %s' %ifacename
self.exec_command(cmd)
def route_del_gateway(self, ifacename, gateway, metric=None):
def route_del_gateway(self, ifacename, gateway, vrf=None, metric=None):
# delete default gw
if not gateway:
return
cmd = 'ip route del default via %s' %gateway
if not vrf:
cmd = 'ip route del default via %s' %gateway
else:
cmd = 'ip route del table %s default via %s' %(vrf, gateway)
if metric:
cmd += ' metric %s' %metric
cmd += ' dev %s' %ifacename