From 6bacb24a2a0b9ebaf4df1c52da86c10feea4ba25 Mon Sep 17 00:00:00 2001 From: Gagan Deep Date: Mon, 6 Jan 2025 15:40:43 +0530 Subject: [PATCH] [req-changes] "Client" > "Clients" --- docs/user/checks.rst | 34 +++++++++---------- docs/user/settings.rst | 28 +++++++-------- openwisp_monitoring/check/apps.py | 6 ++-- openwisp_monitoring/check/base/models.py | 8 ++--- openwisp_monitoring/check/classes/__init__.py | 2 +- .../check/classes/wifi_client.py | 8 ++--- openwisp_monitoring/check/settings.py | 12 +++---- openwisp_monitoring/check/tasks.py | 18 +++++----- openwisp_monitoring/check/tests/__init__.py | 6 ++-- .../check/tests/test_models.py | 24 ++++++------- openwisp_monitoring/check/tests/test_tasks.py | 28 +++++++-------- .../check/tests/test_wifi_client.py | 26 +++++++------- .../monitoring/configuration.py | 16 ++++----- tests/openwisp2/settings.py | 6 ++-- 14 files changed, 110 insertions(+), 112 deletions(-) diff --git a/docs/user/checks.rst b/docs/user/checks.rst index dd94592a..2ce05cff 100644 --- a/docs/user/checks.rst +++ b/docs/user/checks.rst @@ -63,38 +63,38 @@ parameters used for iperf3 checks (e.g. timing, port, username, password, ` to enable alerts for the iperf3 check. -.. _wifi_client_check: +.. _wifi_clients_check: -WiFi Client ------------ +WiFi Clients +------------ This check sends alerts based on the total number of WiFi Clients connected to a device. It sends two types of alerts: -- **Maximum WiFi Users**: When the total number of WiFi clients connected - to an access point exceeds a predetermined threshold. This functionality - provides valuable insights into the network's performance, signaling - when a specific access point is overwhelmed by an excessive number of - WiFi users. -- **Minimum WiFi Users**: When the total number of WiFi clients connected - to an access point remains at zero for a duration exceeding the - specified tolerance period. It serves as an indicator of whether the +- **Maximum WiFi Clients**: When the total number of WiFi clients + connected to an access point exceeds a predetermined threshold. This + functionality provides valuable insights into the network's performance, + signaling when a specific access point is overwhelmed by an excessive + number of WiFi clients. +- **Minimum WiFi Clients**: When the total number of WiFi clients + connected to an access point remains at zero for a duration exceeding + the specified tolerance period. It serves as an indicator of whether the access point is malfunctioning or if its placement is hindering user connectivity. This check is **disabled by default**. To enable auto creation of this -check, set :ref:`openwisp_monitoring_auto_wifi_client_check` to ``True`` +check, set :ref:`openwisp_monitoring_auto_wifi_clients_check` to ``True`` and configure the task scheduling in your Django project: .. code-block:: python from datetime import timedelta - OPENWISP_MONITORING_AUTO_WIFI_CLIENT_CHECK = True + OPENWISP_MONITORING_AUTO_WIFI_CLIENTS_CHECK = True CELERY_BEAT_SCHEDULE.update( { - "run_wifi_client_checks": { - "task": "openwisp_monitoring.check.tasks.run_wifi_client_checks", + "run_wifi_clients_checks": { + "task": "openwisp_monitoring.check.tasks.run_wifi_clients_checks", # Run check every 5 minutes "schedule": timedelta(minutes=5), "relative": True, @@ -102,10 +102,10 @@ and configure the task scheduling in your Django project: } ) -You can also :doc:`add the WiFi Client check +You can also :doc:`add the WiFi Clients check ` directly from the device page. You can use the -:ref:`openwisp_monitoring_wifi_client_check_snooze_schedule` setting to +:ref:`openwisp_monitoring_wifi_clients_check_snooze_schedule` setting to disable this check on specific dates, such as during scheduled maintenance, to avoid generating unnecessary alerts. diff --git a/docs/user/settings.rst b/docs/user/settings.rst index 9bbdd0f7..435bb1de 100644 --- a/docs/user/settings.rst +++ b/docs/user/settings.rst @@ -297,24 +297,24 @@ check when running on multiple servers. Make sure it is always greater than the total iperf3 check time, i.e. greater than the TCP + UDP test time. By default, it is set to **600 seconds (10 mins)**. -.. _openwisp_monitoring_auto_wifi_client_check: +.. _openwisp_monitoring_auto_wifi_clients_check: -``OPENWISP_MONITORING_AUTO_WIFI_CLIENT_CHECK`` ----------------------------------------------- +``OPENWISP_MONITORING_AUTO_WIFI_CLIENTS_CHECK`` +----------------------------------------------- ============ ========= **type**: ``bool`` **default**: ``False`` ============ ========= -This setting allows you to choose whether :ref:`WiFi Client -` checks should be created automatically for newly +This setting allows you to choose whether :ref:`WiFi Clients +` checks should be created automatically for newly registered devices. It's disabled by default. .. _openwisp_monitoring_wifi_client_check_snooze_schedule: -``OPENWISP_MONITORING_WIFI_CLIENT_CHECK_SNOOZE_SCHEDULE`` ---------------------------------------------------------- +``OPENWISP_MONITORING_WIFI_CLIENTS_CHECK_SNOOZE_SCHEDULE`` +---------------------------------------------------------- ============ ======== **type**: ``list`` @@ -330,26 +330,26 @@ E.g.: .. code-block:: python - OPENWISP_MONITORING_WIFI_CLIENT_CHECK_SNOOZE_SCHEDULE = [ + OPENWISP_MONITORING_WIFI_CLIENTS_CHECK_SNOOZE_SCHEDULE = [ # Date ranges can expand over months ("12-24", "01-05"), # Date ranges can be single day ("01-26", "01-26"), ] -.. _openwisp_monitoring_wifi_client_check_interval: +.. _openwisp_monitoring_wifi_clients_check_interval: -``OPENWISP_MONITORING_WIFI_CLIENT_CHECK_INTERVAL`` --------------------------------------------------- +``OPENWISP_MONITORING_WIFI_CLIENTS_CHECK_INTERVAL`` +--------------------------------------------------- ============ ======= **type**: ``int`` **default**: ``5`` ============ ======= -This setting allows you to configure the WiFi Client check interval used -by :ref:`WiFi Client checks `. By default it is set to -5 minutes. +This setting allows you to configure the WiFi Clients check interval used +by :ref:`WiFi Clients checks `. By default it is set +to 5 minutes. .. _openwisp_monitoring_auto_charts: diff --git a/openwisp_monitoring/check/apps.py b/openwisp_monitoring/check/apps.py index 38145591..7518271d 100644 --- a/openwisp_monitoring/check/apps.py +++ b/openwisp_monitoring/check/apps.py @@ -41,11 +41,11 @@ def _connect_signals(self): dispatch_uid='auto_iperf3_check', ) - if app_settings.AUTO_WIFI_CLIENT_CHECK: - from .base.models import auto_wifi_client_check_receiver + if app_settings.AUTO_WIFI_CLIENTS_CHECK: + from .base.models import auto_wifi_clients_check_receiver post_save.connect( - auto_wifi_client_check_receiver, + auto_wifi_clients_check_receiver, sender=load_model('config', 'Device'), dispatch_uid='auto_wifi_clients_check', ) diff --git a/openwisp_monitoring/check/base/models.py b/openwisp_monitoring/check/base/models.py index 562f12d7..5c17c299 100644 --- a/openwisp_monitoring/check/base/models.py +++ b/openwisp_monitoring/check/base/models.py @@ -13,7 +13,7 @@ auto_create_config_check, auto_create_iperf3_check, auto_create_ping, - auto_create_wifi_client_check, + auto_create_wifi_clients_check, ) from openwisp_utils.base import TimeStampedEditableModel @@ -163,8 +163,8 @@ def auto_iperf3_check_receiver(sender, instance, created, **kwargs): ) -def auto_wifi_client_check_receiver(sender, instance, created, **kwargs): - """Implements OPENWISP_MONITORING_AUTO_WIFI_CLIENT_CHECK. +def auto_wifi_clients_check_receiver(sender, instance, created, **kwargs): + """Implements OPENWISP_MONITORING_AUTO_WIFI_CLIENTS_CHECK. The creation step is executed in the background. """ @@ -173,7 +173,7 @@ def auto_wifi_client_check_receiver(sender, instance, created, **kwargs): if not created: return transaction_on_commit( - lambda: auto_create_wifi_client_check.delay( + lambda: auto_create_wifi_clients_check.delay( model=sender.__name__.lower(), app_label=sender._meta.app_label, object_id=str(instance.pk), diff --git a/openwisp_monitoring/check/classes/__init__.py b/openwisp_monitoring/check/classes/__init__.py index 3ad70518..d2c0637a 100644 --- a/openwisp_monitoring/check/classes/__init__.py +++ b/openwisp_monitoring/check/classes/__init__.py @@ -1,4 +1,4 @@ from .config_applied import ConfigApplied # noqa from .iperf3 import Iperf3 # noqa from .ping import Ping # noqa -from .wifi_client import WifiClient # noqa +from .wifi_client import WifiClients # noqa diff --git a/openwisp_monitoring/check/classes/wifi_client.py b/openwisp_monitoring/check/classes/wifi_client.py index c9ce6589..ca57fffb 100644 --- a/openwisp_monitoring/check/classes/wifi_client.py +++ b/openwisp_monitoring/check/classes/wifi_client.py @@ -8,7 +8,7 @@ AlertSettings = load_model('monitoring', 'AlertSettings') -class WifiClient(BaseCheck): +class WifiClients(BaseCheck): def check(self, store=True): values = timeseries_db.read( key='wifi_clients', @@ -21,7 +21,7 @@ def check(self, store=True): ( timezone.localtime() - timezone.timedelta( - minutes=app_settings.WIFI_CLIENT_CHECK_INTERVAL + minutes=app_settings.WIFI_CLIENTS_CHECK_INTERVAL ) ).timestamp() ), @@ -35,9 +35,9 @@ def check(self, store=True): return result def store_result(self, result): - max_metric = self._get_metric('max_wifi_clients') + max_metric = self._get_metric('wifi_clients_max') max_metric.write(result) - min_metric = self._get_metric('min_wifi_clients') + min_metric = self._get_metric('wifi_clients_min') min_metric.write(result) def _get_metric(self, configuration): diff --git a/openwisp_monitoring/check/settings.py b/openwisp_monitoring/check/settings.py index e8d62c90..e1996d56 100644 --- a/openwisp_monitoring/check/settings.py +++ b/openwisp_monitoring/check/settings.py @@ -8,7 +8,7 @@ ('openwisp_monitoring.check.classes.Ping', 'Ping'), ('openwisp_monitoring.check.classes.ConfigApplied', 'Configuration Applied'), ('openwisp_monitoring.check.classes.Iperf3', 'Iperf3'), - ('openwisp_monitoring.check.classes.WifiClient', 'Wifi Client'), + ('openwisp_monitoring.check.classes.WifiClients', 'WiFi Clients'), ), ) AUTO_PING = get_settings_value('AUTO_PING', True) @@ -20,12 +20,12 @@ getattr(settings, 'OPENWISP_CONTROLLER_MANAGEMENT_IP_ONLY', True), ) PING_CHECK_CONFIG = get_settings_value('PING_CHECK_CONFIG', {}) -AUTO_WIFI_CLIENT_CHECK = get_settings_value('AUTO_WIFI_CLIENT_CHECK', False) -WIFI_CLIENT_CHECK_SNOOZE_SCHEDULE = get_settings_value( - 'WIFI_CLIENT_CHECK_SNOOZE_SCHEDULE', [] +AUTO_WIFI_CLIENTS_CHECK = get_settings_value('AUTO_WIFI_CLIENTS_CHECK', False) +WIFI_CLIENTS_CHECK_SNOOZE_SCHEDULE = get_settings_value( + 'WIFI_CLIENTS_CHECK_SNOOZE_SCHEDULE', [] ) -WIFI_CLIENT_CHECK_INTERVAL = int( - get_settings_value('WIFI_CLIENT_CHECK_INTERVAL', 5) +WIFI_CLIENTS_CHECK_INTERVAL = int( + get_settings_value('WIFI_CLIENTS_CHECK_INTERVAL', 5) ) # in minutes AUTO_IPERF3 = get_settings_value('AUTO_IPERF3', False) IPERF3_CHECK_CONFIG = get_settings_value('IPERF3_CHECK_CONFIG', {}) diff --git a/openwisp_monitoring/check/tasks.py b/openwisp_monitoring/check/tasks.py index cea3d485..0e5c02fb 100644 --- a/openwisp_monitoring/check/tasks.py +++ b/openwisp_monitoring/check/tasks.py @@ -10,7 +10,7 @@ from openwisp_utils.tasks import OpenwispCeleryTask -from .settings import CHECKS_LIST, WIFI_CLIENT_CHECK_SNOOZE_SCHEDULE +from .settings import CHECKS_LIST, WIFI_CLIENTS_CHECK_SNOOZE_SCHEDULE logger = logging.getLogger(__name__) @@ -54,12 +54,12 @@ def run_checks(checks=None): @shared_task(time_limit=2 * 60 * 60) -def run_wifi_client_checks(): - if WIFI_CLIENT_CHECK_SNOOZE_SCHEDULE: +def run_wifi_clients_checks(): + if WIFI_CLIENTS_CHECK_SNOOZE_SCHEDULE: today = timezone.localdate() # Format as MM-DD today_month_day = today.strftime("%m-%d") - for start_date, end_date in WIFI_CLIENT_CHECK_SNOOZE_SCHEDULE: + for start_date, end_date in WIFI_CLIENTS_CHECK_SNOOZE_SCHEDULE: # Check if the date range wraps around the new year if start_date <= end_date: # Normal range within the same year @@ -70,7 +70,7 @@ def run_wifi_client_checks(): if today_month_day >= start_date or today_month_day <= end_date: return - run_checks(checks=['openwisp_monitoring.check.classes.WifiClient']) + run_checks(checks=['openwisp_monitoring.check.classes.WifiClients']) @shared_task(time_limit=30 * 60) @@ -174,16 +174,16 @@ def auto_create_iperf3_check( @shared_task(base=OpenwispCeleryTask) -def auto_create_wifi_client_check( +def auto_create_wifi_clients_check( model, app_label, object_id, check_model=None, content_type_model=None ): """Implements the auto creation of the wifi_clients check. Called by the - openwisp_monitoring.check.models.auto_wifi_client_check_receiver. + openwisp_monitoring.check.models.auto_wifi_clients_check_receiver. """ Check = check_model or get_check_model() - check_path = 'openwisp_monitoring.check.classes.WifiClient' + check_path = 'openwisp_monitoring.check.classes.WifiClients' has_check = Check.objects.filter( object_id=object_id, content_type__model='device', check_type=check_path ).exists() @@ -193,7 +193,7 @@ def auto_create_wifi_client_check( content_type_model = content_type_model or ContentType ct = content_type_model.objects.get_by_natural_key(app_label=app_label, model=model) check = Check( - name='Wifi Client', + name='Wifi Clients', check_type=check_path, content_type=ct, object_id=object_id, diff --git a/openwisp_monitoring/check/tests/__init__.py b/openwisp_monitoring/check/tests/__init__.py index 9a7a2b21..bc587aa6 100644 --- a/openwisp_monitoring/check/tests/__init__.py +++ b/openwisp_monitoring/check/tests/__init__.py @@ -1,7 +1,7 @@ from django.db.models.signals import post_save from swapper import load_model -from ..base.models import auto_wifi_client_check_receiver +from ..base.models import auto_wifi_clients_check_receiver Device = load_model('config', 'Device') @@ -24,7 +24,7 @@ class AutoWifiClientCheck(object): def setUpClass(cls): super().setUpClass() post_save.connect( - auto_wifi_client_check_receiver, + auto_wifi_clients_check_receiver, sender=Device, dispatch_uid='auto_wifi_clients_check', ) @@ -33,7 +33,7 @@ def setUpClass(cls): def tearDownClass(cls): super().tearDownClass() post_save.disconnect( - auto_wifi_client_check_receiver, + auto_wifi_clients_check_receiver, sender=Device, dispatch_uid='auto_wifi_clients_check', ) diff --git a/openwisp_monitoring/check/tests/test_models.py b/openwisp_monitoring/check/tests/test_models.py index 415da515..1c145b90 100644 --- a/openwisp_monitoring/check/tests/test_models.py +++ b/openwisp_monitoring/check/tests/test_models.py @@ -9,12 +9,12 @@ from ...device.tests import TestDeviceMonitoringMixin from .. import settings as app_settings -from ..classes import ConfigApplied, Iperf3, Ping, WifiClient +from ..classes import ConfigApplied, Iperf3, Ping, WifiClients from ..tasks import ( auto_create_config_check, auto_create_iperf3_check, auto_create_ping, - auto_create_wifi_client_check, + auto_create_wifi_clients_check, ) from . import AutoWifiClientCheck @@ -29,7 +29,7 @@ class TestModels(AutoWifiClientCheck, TestDeviceMonitoringMixin, TransactionTest _PING = app_settings.CHECK_CLASSES[0][0] _CONFIG_APPLIED = app_settings.CHECK_CLASSES[1][0] _IPERF3 = app_settings.CHECK_CLASSES[2][0] - _WIFI_CLIENT = app_settings.CHECK_CLASSES[3][0] + _WIFI_CLIENTS = app_settings.CHECK_CLASSES[3][0] def test_check_str(self): c = Check(name='Test check') @@ -64,10 +64,10 @@ def test_check_class(self): self.assertEqual(c.check_class, Iperf3) with self.subTest('Test WiFi Client check Class'): c = Check( - name='WiFi Client class check', - check_type=self._WIFI_CLIENT, + name='WiFi Clients class check', + check_type=self._WIFI_CLIENTS, ) - self.assertEqual(c.check_class, WifiClient) + self.assertEqual(c.check_class, WifiClients) def test_base_check_class(self): path = 'openwisp_monitoring.check.classes.base.BaseCheck' @@ -117,12 +117,12 @@ def test_check_instance(self): with self.subTest('Test WiFi Client check instance'): c = Check( name='WiFi Client class check', - check_type=self._WIFI_CLIENT, + check_type=self._WIFI_CLIENTS, content_object=obj, params={}, ) i = c.check_instance - self.assertIsInstance(i, WifiClient) + self.assertIsInstance(i, WifiClients) self.assertEqual(i.related_object, obj) self.assertEqual(i.params, c.params) @@ -162,10 +162,10 @@ def test_auto_check_creation(self): c3 = Check.objects.filter(check_type=self._IPERF3).first() self.assertEqual(c3.content_object, d) self.assertEqual(self._IPERF3, c3.check_type) - with self.subTest('Test AUTO_WIFI_CLIENT_CHECK'): - c1 = Check.objects.filter(check_type=self._WIFI_CLIENT).first() + with self.subTest('Test AUTO_WIFI_CLIENTS_CHECK'): + c1 = Check.objects.filter(check_type=self._WIFI_CLIENTS).first() self.assertEqual(c1.content_object, d) - self.assertEqual(self._WIFI_CLIENT, c1.check_type) + self.assertEqual(self._WIFI_CLIENTS, c1.check_type) def test_device_deleted(self): self.assertEqual(Check.objects.count(), 0) @@ -285,7 +285,7 @@ def test_no_duplicate_check_created(self): app_label=Device._meta.app_label, object_id=str(d.pk), ) - auto_create_wifi_client_check.delay( + auto_create_wifi_clients_check.delay( model=Device.__name__.lower(), app_label=Device._meta.app_label, object_id=str(d.pk), diff --git a/openwisp_monitoring/check/tests/test_tasks.py b/openwisp_monitoring/check/tests/test_tasks.py index a1595f03..809f9728 100644 --- a/openwisp_monitoring/check/tests/test_tasks.py +++ b/openwisp_monitoring/check/tests/test_tasks.py @@ -8,16 +8,16 @@ class TestRunWifiClientChecks(TestCase): - _WIFI_CLIENT = app_settings.CHECK_CLASSES[3][0] + _WIFI_CLIENTS = app_settings.CHECK_CLASSES[3][0] @patch.object(tasks, 'run_checks') - def test_wifi_client_check_snooze_schedule_empty(self, mocked_run_checks): - tasks.run_wifi_client_checks() - mocked_run_checks.assert_called_with(checks=[self._WIFI_CLIENT]) + def test_wifi_clients_check_snooze_schedule_empty(self, mocked_run_checks): + tasks.run_wifi_clients_checks() + mocked_run_checks.assert_called_with(checks=[self._WIFI_CLIENTS]) @patch.object( tasks, - 'WIFI_CLIENT_CHECK_SNOOZE_SCHEDULE', + 'WIFI_CLIENTS_CHECK_SNOOZE_SCHEDULE', [ ('01-26', '01-26'), ('06-15', '08-31'), @@ -25,31 +25,31 @@ def test_wifi_client_check_snooze_schedule_empty(self, mocked_run_checks): ], ) @patch.object(tasks, 'run_checks') - def test_wifi_client_check_snooze_schedule(self, mocked_run_checks, *args): + def test_wifi_clients_check_snooze_schedule(self, mocked_run_checks, *args): with freeze_time('2025-01-26'): - tasks.run_wifi_client_checks() + tasks.run_wifi_clients_checks() mocked_run_checks.assert_not_called() with freeze_time('2025-06-15'): - tasks.run_wifi_client_checks() + tasks.run_wifi_clients_checks() mocked_run_checks.assert_not_called() with freeze_time('2025-07-10'): - tasks.run_wifi_client_checks() + tasks.run_wifi_clients_checks() mocked_run_checks.assert_not_called() with freeze_time('2025-08-31'): - tasks.run_wifi_client_checks() + tasks.run_wifi_clients_checks() mocked_run_checks.assert_not_called() with freeze_time('2024-12-30'): - tasks.run_wifi_client_checks() + tasks.run_wifi_clients_checks() mocked_run_checks.assert_not_called() with freeze_time('2025-01-03'): - tasks.run_wifi_client_checks() + tasks.run_wifi_clients_checks() mocked_run_checks.assert_not_called() with freeze_time('2024-12-12'): - tasks.run_wifi_client_checks() - mocked_run_checks.assert_called_with(checks=[self._WIFI_CLIENT]) + tasks.run_wifi_clients_checks() + mocked_run_checks.assert_called_with(checks=[self._WIFI_CLIENTS]) diff --git a/openwisp_monitoring/check/tests/test_wifi_client.py b/openwisp_monitoring/check/tests/test_wifi_client.py index 32691620..43cae22f 100644 --- a/openwisp_monitoring/check/tests/test_wifi_client.py +++ b/openwisp_monitoring/check/tests/test_wifi_client.py @@ -17,10 +17,10 @@ class TestWifiClient( TestDeviceMonitoringMixin, TransactionTestCase, ): - _WIFI_CLIENT = settings.CHECK_CLASSES[3][0] + _WIFI_CLIENTS = settings.CHECK_CLASSES[3][0] def test_store_result(self): - def _assert_wifi_client_metric(key): + def _assert_wifi_clients_metric(key): metric = metric_qs.get(key=key) self.assertEqual(metric.content_object, device) points = self._read_metric(metric, limit=None) @@ -31,39 +31,39 @@ def _assert_wifi_client_metric(key): device_data = self.create_test_data(no_resources=True, assertions=False) device = Device.objects.get(id=device_data.id) metric_qs = Metric.objects.filter( - key__in=['max_wifi_clients', 'min_wifi_clients'] + key__in=['wifi_clients_max', 'wifi_clients_min'] ) alert_settings_qs = AlertSettings.objects.filter( - metric__key__in=['max_wifi_clients', 'min_wifi_clients'] + metric__key__in=['wifi_clients_max', 'wifi_clients_min'] ) - # check created automatically by AUTO_WIFI_CLIENT_CHECK + # check created automatically by AUTO_WIFI_CLIENTS_CHECK self.assertEqual(Check.objects.count(), 4) self.assertEqual(metric_qs.count(), 0) self.assertEqual(alert_settings_qs.count(), 0) - check = Check.objects.filter(check_type=self._WIFI_CLIENT).first() + check = Check.objects.filter(check_type=self._WIFI_CLIENTS).first() result = check.perform_check() self.assertEqual(result, 3) self.assertEqual(metric_qs.count(), 2) self.assertEqual(alert_settings_qs.count(), 2) - max_wifi_clients = _assert_wifi_client_metric('max_wifi_clients') - self.assertEqual(max_wifi_clients.alertsettings.operator, '>') - min_wifi_clients = _assert_wifi_client_metric('min_wifi_clients') - self.assertEqual(min_wifi_clients.alertsettings.operator, '<') + wifi_clients_max = _assert_wifi_clients_metric('wifi_clients_max') + self.assertEqual(wifi_clients_max.alertsettings.operator, '>') + wifi_clients_min = _assert_wifi_clients_metric('wifi_clients_min') + self.assertEqual(wifi_clients_min.alertsettings.operator, '<') def test_device_no_wifi_client(self): device = self._create_device() - check = Check.objects.filter(check_type=self._WIFI_CLIENT).first() + check = Check.objects.filter(check_type=self._WIFI_CLIENTS).first() result = check.perform_check() self.assertEqual(result, 0) max_wifi_client = Metric.objects.filter( - key='max_wifi_clients', object_id=device.id + key='wifi_clients_max', object_id=device.id ).first() points = self._read_metric(max_wifi_client, limit=None) self.assertEqual(len(points), 1) self.assertEqual(points[0]['clients'], 0) min_wifi_client = Metric.objects.filter( - key='min_wifi_clients', object_id=device.id + key='wifi_clients_min', object_id=device.id ).first() points = self._read_metric(min_wifi_client, limit=None) self.assertEqual(len(points), 1) diff --git a/openwisp_monitoring/monitoring/configuration.py b/openwisp_monitoring/monitoring/configuration.py index 9764d015..11f3c2e4 100644 --- a/openwisp_monitoring/monitoring/configuration.py +++ b/openwisp_monitoring/monitoring/configuration.py @@ -283,12 +283,12 @@ def _get_access_tech(): } }, }, - 'max_wifi_clients': { - 'label': _('Max WiFi Clients'), + 'wifi_clients_max': { + 'label': _('WiFi Clients (Maximum)'), 'name': '{name}', - 'key': 'max_wifi_clients', + 'key': 'wifi_clients_max', 'field_name': 'clients', - 'alert_settings': {'operator': '>', 'threshold': 40, 'tolerance': 60}, + 'alert_settings': {'operator': '>', 'threshold': 50, 'tolerance': 120}, 'notification': { 'problem': { 'verbose_name': 'Max WiFi clients PROBLEM', @@ -317,12 +317,12 @@ def _get_access_tech(): }, }, }, - 'min_wifi_clients': { - 'label': _('Min WiFi Clients'), + 'wifi_clients_min': { + 'label': _('WiFi Clients (Minimum)'), 'name': '{name}', - 'key': 'min_wifi_clients', + 'key': 'wifi_clients_min', 'field_name': 'clients', - 'alert_settings': {'operator': '<', 'threshold': 0, 'tolerance': 240}, + 'alert_settings': {'operator': '<', 'threshold': 1, 'tolerance': 1440}, 'notification': { 'problem': { 'verbose_name': 'Min WiFi clients PROBLEM', diff --git a/tests/openwisp2/settings.py b/tests/openwisp2/settings.py index 3b466205..2322594a 100644 --- a/tests/openwisp2/settings.py +++ b/tests/openwisp2/settings.py @@ -190,8 +190,8 @@ ), 'relative': True, }, - 'run_wifi_client_checks': { - 'task': 'openwisp_monitoring.check.tasks.run_wifi_client_checks', + 'run_wifi_clients_checks': { + 'task': 'openwisp_monitoring.check.tasks.run_wifi_clients_checks', 'schedule': timedelta(minutes=5), 'relative': True, }, @@ -227,8 +227,6 @@ OPENWISP_MONITORING_API_BASEURL = 'http://testserver' # for testing AUTO_IPERF3 OPENWISP_MONITORING_AUTO_IPERF3 = True - # for testing AUTO_WIFI_CLIENT_CHECK - # OPENWISP_MONITORING_AUTO_WIFI_CLIENT_CHECK = True # Temporarily added to identify slow tests TEST_RUNNER = 'openwisp_utils.tests.TimeLoggingTestRunner'