Skip to content

Commit

Permalink
[feature] Added "config_deactivating" signal
Browse files Browse the repository at this point in the history
  • Loading branch information
pandafy committed Mar 1, 2024
1 parent ac01ff7 commit 2c16d95
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 1 deletion.
5 changes: 5 additions & 0 deletions openwisp_controller/config/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from .signals import (
config_backend_changed,
config_deactivated,
config_deactivating,
config_modified,
device_group_changed,
device_name_changed,
Expand Down Expand Up @@ -310,6 +311,10 @@ def enable_cache_invalidation(self):
DeviceChecksumView.invalidate_get_device_cache_on_config_deactivated,
dispatch_uid='config_deactivated_invalidate_get_device_cache',
)
config_deactivating.connect(
DeviceChecksumView.invalidate_get_device_cache_on_config_deactivated,
dispatch_uid='config_deactivated_invalidate_get_device_cache',
)
config_modified.connect(
DeviceChecksumView.invalidate_checksum_cache,
dispatch_uid='invalidate_checksum_cache',
Expand Down
15 changes: 15 additions & 0 deletions openwisp_controller/config/base/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from ..signals import (
config_backend_changed,
config_deactivated,
config_deactivating,
config_modified,
config_status_changed,
)
Expand Down Expand Up @@ -111,6 +112,7 @@ def __init__(self, *args, **kwargs):
self._initial_status = self.status
self._send_config_modified_after_save = False
self._send_config_deactivated = False
self._send_config_deactivating = False
self._send_config_status_changed = False

def __str__(self):
Expand Down Expand Up @@ -493,6 +495,8 @@ def save(self, *args, **kwargs):
if self._send_config_status_changed:
self._send_config_status_changed_signal()
self._send_config_status_changed = False
if self._send_config_deactivating and self.is_deactivating():
self._send_config_deactivating_signal()
if self._send_config_deactivated and self.is_deactivated():
self._send_config_deactivated_signal()
self._initial_status = self.status
Expand Down Expand Up @@ -544,6 +548,16 @@ def _send_config_modified_signal(self, action):
device=self.device,
)

def _send_config_deactivating_signal(self):
"""
Emits ``config_deactivating`` signal.
"""
config_deactivating.send(
sender=self.__class__,
instance=self,
previous_status=self._initial_status,
)

def _send_config_deactivated_signal(self):
"""
Emits ``config_deactivated`` signal.
Expand Down Expand Up @@ -604,6 +618,7 @@ def set_status_deactivating(self, save=True):
clears configuration and templates.
"""
self.config = {}
self._send_config_deactivating = True
self._set_status('deactivating', save, extra_update_fields=['config'])
self.templates.clear()

Expand Down
4 changes: 4 additions & 0 deletions openwisp_controller/config/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@
config_deactivated.__doc__ = """
Providing arguments: ['instance', 'previous_status']
"""
config_deactivating = Signal()
config_deactivating.__doc__ = """
Providing arguments: ['instance', 'previous_status']
"""
device_registered = Signal()
device_registered.__doc__ = """
Providing arguments: ['instance', 'is_new']
Expand Down
5 changes: 4 additions & 1 deletion openwisp_controller/connection/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

from openwisp_utils.admin_theme.menu import register_menu_subitem

from ..config.signals import config_modified
from ..config.signals import config_deactivating, config_modified
from .signals import is_working_changed

_TASK_NAME = 'openwisp_controller.connection.tasks.update_config'
Expand Down Expand Up @@ -44,6 +44,9 @@ def ready(self):
config_modified.connect(
self.config_modified_receiver, dispatch_uid='connection.update_config'
)
config_deactivating.connect(
self.config_modified_receiver, dispatch_uid='connection.update_config'
)

post_save.connect(
Credentials.auto_add_credentials_to_device,
Expand Down

0 comments on commit 2c16d95

Please sign in to comment.