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":
|
if addr_method != "dhcp":
|
||||||
self.ipcmd.route_add_gateway(ifaceobj.name,
|
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):
|
def _down(self, ifaceobj, ifaceobj_getfunc=None):
|
||||||
try:
|
try:
|
||||||
@@ -323,6 +324,7 @@ class address(moduleBase):
|
|||||||
if addr_method != "dhcp":
|
if addr_method != "dhcp":
|
||||||
self.ipcmd.route_del_gateway(ifaceobj.name,
|
self.ipcmd.route_del_gateway(ifaceobj.name,
|
||||||
ifaceobj.get_attr_value_first('gateway'),
|
ifaceobj.get_attr_value_first('gateway'),
|
||||||
|
ifaceobj.get_attr_value_first('vrf'),
|
||||||
ifaceobj.get_attr_value_first('metric'))
|
ifaceobj.get_attr_value_first('metric'))
|
||||||
if ifaceobj.get_attr_value_first('address-purge')=='no':
|
if ifaceobj.get_attr_value_first('address-purge')=='no':
|
||||||
addrlist = ifaceobj.get_attr_value('address')
|
addrlist = ifaceobj.get_attr_value('address')
|
||||||
|
@@ -437,21 +437,27 @@ class iproute2(utilsBase):
|
|||||||
def link_get_status(self, ifacename):
|
def link_get_status(self, ifacename):
|
||||||
return self._cache_get('link', [ifacename, 'ifflag'], refresh=True)
|
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:
|
if not gateway:
|
||||||
return
|
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
|
# Add metric
|
||||||
if metric:
|
if metric:
|
||||||
cmd += 'metric %s' %metric
|
cmd += 'metric %s' %metric
|
||||||
cmd += ' dev %s' %ifacename
|
cmd += ' dev %s' %ifacename
|
||||||
self.exec_command(cmd)
|
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
|
# delete default gw
|
||||||
if not gateway:
|
if not gateway:
|
||||||
return
|
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:
|
if metric:
|
||||||
cmd += ' metric %s' %metric
|
cmd += ' metric %s' %metric
|
||||||
cmd += ' dev %s' %ifacename
|
cmd += ' dev %s' %ifacename
|
||||||
|
Reference in New Issue
Block a user