Skip to content

Commit 148f4cf

Browse files
committed
[fix] Fix creation of checks for existing devices #348
Fixes #348 (cherry picked from commit e151a9c)
1 parent 4e27edb commit 148f4cf

File tree

3 files changed

+65
-57
lines changed

3 files changed

+65
-57
lines changed
Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,10 @@
1-
import swapper
21
from django.db import migrations
32

4-
from openwisp_monitoring.check.settings import AUTO_PING
5-
from openwisp_monitoring.check.tasks import auto_create_ping
6-
7-
8-
def create_device_ping(apps, schema_editor):
9-
if AUTO_PING:
10-
ContentType = apps.get_model('contenttypes', 'ContentType')
11-
Check = apps.get_model('check', 'Check')
12-
Device = apps.get_model('config', 'Device')
13-
for device in Device.objects.all():
14-
auto_create_ping(
15-
model=Device.__name__.lower(),
16-
app_label=Device._meta.app_label,
17-
object_id=str(device.pk),
18-
check_model=Check,
19-
content_type_model=ContentType,
20-
)
21-
223

234
class Migration(migrations.Migration):
245

256
dependencies = [
26-
('check', '0002_check_unique_together'),
27-
swapper.dependency('monitoring', 'Metric'),
7+
('check', '0001_initial_squashed_0002_check_unique_together'),
288
]
299

30-
operations = [
31-
migrations.RunPython(create_device_ping, reverse_code=migrations.RunPython.noop)
32-
]
10+
operations = []
Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,10 @@
11
from django.db import migrations
22

3-
from openwisp_monitoring.check.settings import AUTO_CONFIG_CHECK
4-
from openwisp_monitoring.check.tasks import auto_create_config_check
5-
6-
7-
def add_config_applied_checks(apps, schema_editor):
8-
if not AUTO_CONFIG_CHECK:
9-
return
10-
ContentType = apps.get_model('contenttypes', 'ContentType')
11-
Check = apps.get_model('check', 'Check')
12-
Device = apps.get_model('config', 'Device')
13-
for device in Device.objects.all():
14-
auto_create_config_check(
15-
model=Device.__name__.lower(),
16-
app_label=Device._meta.app_label,
17-
object_id=str(device.pk),
18-
check_model=Check,
19-
content_type_model=ContentType,
20-
)
21-
22-
23-
def remove_config_applied_checks(apps, schema_editor):
24-
Check = apps.get_model('check', 'Check')
25-
Metric = apps.get_model('monitoring', 'Metric')
26-
Check.objects.filter(
27-
check='openwisp_monitoring.check.classes.ConfigApplied'
28-
).delete()
29-
Metric.objects.filter(configuration='config_applied').delete()
30-
313

324
class Migration(migrations.Migration):
335

346
dependencies = [
357
('check', '0004_rename_active_to_is_active'),
368
]
379

38-
operations = [
39-
migrations.RunPython(
40-
add_config_applied_checks, reverse_code=remove_config_applied_checks
41-
)
42-
]
10+
operations = []
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import swapper
2+
from django.db import migrations
3+
4+
from openwisp_monitoring.check.settings import AUTO_CONFIG_CHECK, AUTO_PING
5+
from openwisp_monitoring.check.tasks import auto_create_config_check, auto_create_ping
6+
7+
8+
def create_ping_checks(apps, schema_editor):
9+
if AUTO_PING:
10+
ContentType = apps.get_model('contenttypes', 'ContentType')
11+
Check = apps.get_model('check', 'Check')
12+
Device = apps.get_model('config', 'Device')
13+
for device in Device.objects.all():
14+
auto_create_ping(
15+
model=Device.__name__.lower(),
16+
app_label=Device._meta.app_label,
17+
object_id=str(device.pk),
18+
check_model=Check,
19+
content_type_model=ContentType,
20+
)
21+
22+
23+
def create_config_applied_checks(apps, schema_editor):
24+
if not AUTO_CONFIG_CHECK:
25+
return
26+
ContentType = apps.get_model('contenttypes', 'ContentType')
27+
Check = apps.get_model('check', 'Check')
28+
Device = apps.get_model('config', 'Device')
29+
for device in Device.objects.all():
30+
auto_create_config_check(
31+
model=Device.__name__.lower(),
32+
app_label=Device._meta.app_label,
33+
object_id=str(device.pk),
34+
check_model=Check,
35+
content_type_model=ContentType,
36+
)
37+
38+
39+
def remove_config_applied_checks(apps, schema_editor):
40+
Check = apps.get_model('check', 'Check')
41+
Metric = apps.get_model('monitoring', 'Metric')
42+
Check.objects.filter(
43+
check='openwisp_monitoring.check.classes.ConfigApplied'
44+
).delete()
45+
Metric.objects.filter(configuration='config_applied').delete()
46+
47+
48+
class Migration(migrations.Migration):
49+
50+
dependencies = [
51+
('check', '0006_rename_check_check_check_type'),
52+
swapper.dependency('monitoring', 'Metric'),
53+
]
54+
55+
operations = [
56+
migrations.RunPython(
57+
create_ping_checks, reverse_code=migrations.RunPython.noop
58+
),
59+
migrations.RunPython(
60+
create_config_applied_checks, reverse_code=remove_config_applied_checks
61+
),
62+
]

0 commit comments

Comments
 (0)