mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
addons: link: ifquery-check now validates admin state
[12:57:29] root:~ # ifquery -a auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto swp1 iface swp1 post-up ip link set dev swp1 down auto swp2 iface swp2 link-down yes auto swp3 iface swp3 link-down no auto swp4 iface swp4 [12:57:29] root:~ # [12:57:29] root:~ # [12:57:30] root:~ # [12:57:30] root:~ # ifquery -ac auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp [pass] auto swp1 iface swp1 (link is down) [fail] post-up ip link set dev swp1 down [] auto swp2 iface swp2 [pass] link-down yes [pass] auto swp3 iface swp3 [pass] link-down no [pass] auto swp4 iface swp4 [12:57:31] root:~ # Signed-off-by: Julien Fortin <jfortin@nvidia.com>
This commit is contained in:
@ -123,11 +123,22 @@ class link(Addon, moduleBase):
|
||||
else:
|
||||
ifaceobjcurr.update_config_with_status('link-type', link_type, 1)
|
||||
|
||||
link_down = ifaceobj.get_attr_value_first('link-down')
|
||||
if link_down:
|
||||
link_up = self.cache.link_is_up(ifaceobj.name)
|
||||
link_should_be_down = utils.get_boolean_from_string(link_down)
|
||||
self._query_check_link_down(ifaceobj, ifaceobjcurr)
|
||||
|
||||
def _query_check_link_down(self, ifaceobj, ifaceobjcurr):
|
||||
link_down = ifaceobj.get_attr_value_first('link-down')
|
||||
|
||||
if link_down:
|
||||
link_should_be_down = utils.get_boolean_from_string(link_down)
|
||||
else:
|
||||
link_should_be_down = False
|
||||
|
||||
link_up = self.cache.link_is_up(ifaceobj.name)
|
||||
|
||||
if not link_up and not link_should_be_down and not link_down:
|
||||
ifaceobjcurr.status_str = 'link is down'
|
||||
ifaceobjcurr.status = ifaceStatus.ERROR
|
||||
elif link_down:
|
||||
if link_should_be_down and link_up:
|
||||
status = 1
|
||||
link_down = 'no'
|
||||
@ -153,7 +164,7 @@ class link(Addon, moduleBase):
|
||||
op_handler = self._run_ops.get(operation)
|
||||
if not op_handler:
|
||||
return
|
||||
if (operation != 'query-running' and
|
||||
if (operation != 'query-running' and operation != 'query-checkcurr' and
|
||||
not self._is_my_interface(ifaceobj)):
|
||||
return
|
||||
if operation == 'query-checkcurr':
|
||||
|
Reference in New Issue
Block a user