Skip to content

Commit 2763d31

Browse files
committed
[pfsense_interface] Run interface_bring_down() in _pre_command() when removing interface
1 parent 3ab7e3c commit 2763d31

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

plugins/module_utils/interface.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def __init__(self, module, pfsense=None):
6464

6565
self.root_elt = self.pfsense.interfaces
6666
self.setup_interface_cmds = ""
67+
self.setup_interface_pre_cmds = ""
6768

6869
##############################
6970
# params processing
@@ -324,7 +325,7 @@ def _pre_remove_target_elt(self):
324325
self._remove_all_separators(self.target_elt.tag)
325326
self._remove_all_rules(self.target_elt.tag)
326327

327-
self.setup_interface_cmds += "interface_bring_down('{0}');\n".format(self.target_elt.tag)
328+
self.setup_interface_pre_cmds += "interface_bring_down('{0}');\n".format(self.target_elt.tag)
328329

329330
def _remove_all_rules(self, interface):
330331
""" delete all interface rules """
@@ -462,6 +463,16 @@ def _get_media_mode(self, interface):
462463
'}\n'
463464
'echo json_encode($mediaopts_list);')
464465

466+
def get_pre_update_cmds(self):
467+
""" build and return php commands to setup interfaces before changing config """
468+
cmd = 'require_once("filter.inc");\n'
469+
cmd += 'require_once("interfaces.inc");\n'
470+
471+
if self.setup_interface_pre_cmds != "":
472+
cmd += self.setup_interface_pre_cmds
473+
474+
return cmd
475+
465476
def get_update_cmds(self):
466477
""" build and return php commands to setup interfaces """
467478
cmd = 'require_once("filter.inc");\n'
@@ -482,6 +493,10 @@ def get_update_cmds(self):
482493
cmd += "if (is_subsystem_dirty('staticroutes') && (system_routing_configure() == 0)) clear_subsystem_dirty('staticroutes');"
483494
return cmd
484495

496+
def _pre_update(self):
497+
""" tasks to run before making config changes """
498+
return self.pfsense.phpshell(self.get_pre_update_cmds())
499+
485500
def _update(self):
486501
""" make the target pfsense reload interfaces """
487502
return self.pfsense.phpshell(self.get_update_cmds())

0 commit comments

Comments
 (0)