@@ -64,6 +64,7 @@ def __init__(self, module, pfsense=None):
64
64
65
65
self .root_elt = self .pfsense .interfaces
66
66
self .setup_interface_cmds = ""
67
+ self .setup_interface_pre_cmds = ""
67
68
68
69
##############################
69
70
# params processing
@@ -324,7 +325,7 @@ def _pre_remove_target_elt(self):
324
325
self ._remove_all_separators (self .target_elt .tag )
325
326
self ._remove_all_rules (self .target_elt .tag )
326
327
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 )
328
329
329
330
def _remove_all_rules (self , interface ):
330
331
""" delete all interface rules """
@@ -462,6 +463,16 @@ def _get_media_mode(self, interface):
462
463
'}\n '
463
464
'echo json_encode($mediaopts_list);' )
464
465
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
+
465
476
def get_update_cmds (self ):
466
477
""" build and return php commands to setup interfaces """
467
478
cmd = 'require_once("filter.inc");\n '
@@ -482,6 +493,10 @@ def get_update_cmds(self):
482
493
cmd += "if (is_subsystem_dirty('staticroutes') && (system_routing_configure() == 0)) clear_subsystem_dirty('staticroutes');"
483
494
return cmd
484
495
496
+ def _pre_update (self ):
497
+ """ tasks to run before making config changes """
498
+ return self .pfsense .phpshell (self .get_pre_update_cmds ())
499
+
485
500
def _update (self ):
486
501
""" make the target pfsense reload interfaces """
487
502
return self .pfsense .phpshell (self .get_update_cmds ())
0 commit comments