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:
@@ -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')
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user