mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
addons: address: purge ifalias when no alias keyword is provided
Ticket: CM-13044 Reviewed By: Roopa, Nikhil G, Daniel W, Testing Done: For some reason we can't simply write into a file when we want to purge the ifalias, we have to exec a command. I wasn't able to make it work in any other way. add an alias to an interface, ifreload, ip link show interface modify it, ifreload, ip link show interface remove it, ifreload, ip link show interface Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
This commit is contained in:
@@ -446,6 +446,14 @@ class address(moduleBase):
|
||||
def _up(self, ifaceobj, ifaceobj_getfunc=None):
|
||||
if not self.ipcmd.link_exists(ifaceobj.name):
|
||||
return
|
||||
|
||||
alias = ifaceobj.get_attr_value_first('alias')
|
||||
current_alias = self.ipcmd.link_get_alias(ifaceobj.name)
|
||||
if alias and alias != current_alias:
|
||||
self.ipcmd.link_set_alias(ifaceobj.name, alias)
|
||||
elif not alias and current_alias:
|
||||
self.ipcmd.link_set_alias(ifaceobj.name, '')
|
||||
|
||||
addr_method = ifaceobj.addr_method
|
||||
force_reapply = False
|
||||
try:
|
||||
@@ -472,9 +480,6 @@ class address(moduleBase):
|
||||
force_reapply)
|
||||
self._process_mtu_config(ifaceobj, ifaceobj_getfunc)
|
||||
|
||||
alias = ifaceobj.get_attr_value_first('alias')
|
||||
if alias:
|
||||
self.ipcmd.link_set_alias(ifaceobj.name, alias)
|
||||
try:
|
||||
self.ipcmd.batch_commit()
|
||||
except Exception as e:
|
||||
|
@@ -477,8 +477,11 @@ class iproute2(utilsBase):
|
||||
self._cache_update([ifacename, 'mtu'], mtu)
|
||||
|
||||
def link_set_alias(self, ifacename, alias):
|
||||
utils.exec_commandl(['ip', 'link', 'set', 'dev', ifacename,
|
||||
'alias', alias])
|
||||
if not alias:
|
||||
utils.exec_user_command('echo "" > /sys/class/net/%s/ifalias'
|
||||
% ifacename)
|
||||
else:
|
||||
self.write_file('/sys/class/net/%s/ifalias' % ifacename, alias)
|
||||
|
||||
def link_get_alias(self, ifacename):
|
||||
return self.read_file_oneline('/sys/class/net/%s/ifalias'
|
||||
|
Reference in New Issue
Block a user