0053_auto_20190219_2147.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Generated by Django 2.1.1 on 2019-02-19 20:47
  2. from django.db import migrations
  3. from django.utils import timezone
  4. from datetime import timedelta
  5. def forward(apps, schema_editor):
  6. db_alias = schema_editor.connection.alias
  7. IPResource = apps.get_model('services', 'IPResource')
  8. IPResourceState = apps.get_model('services', 'IPResourceState')
  9. now = timezone.now()
  10. for ip in IPResource.objects.all():
  11. if ip.last_check:
  12. if ip.last_time_up:
  13. if ip.last_check == ip.last_time_up: # UP
  14. ip.last_state = IPResourceState.objects.create(ip=ip, date=ip.last_time_up, state=1) # UP
  15. ip.save()
  16. else: # DOWN but UP some time before
  17. ip.last_state = IPResourceState.objects.create(ip=ip, date=ip.last_time_up, state=0) # DOWN
  18. ip.save()
  19. else: # Always DOWN
  20. ip.last_state = IPResourceState.objects.create(ip=ip, date=ip.last_check, state=0) # DOWN
  21. ip.save()
  22. else:
  23. ip.last_state = IPResourceState.objects.create(ip=ip, date=now, state=2) # UNKNOWN
  24. ip.save()
  25. def backward(apps, schema_editor):
  26. db_alias = schema_editor.connection.alias
  27. IPResource = apps.get_model('services', 'IPResource')
  28. IPResourceState = apps.get_model('services', 'IPResourceState')
  29. for ip in IPResource.objects.all():
  30. if ip.last_state.state != 2:
  31. ip.last_check = ip.last_state.date
  32. if ip.last_state.state == 1:
  33. ip.last_time_up = ip.last_check
  34. ip.save()
  35. class Migration(migrations.Migration):
  36. dependencies = [
  37. ('services', '0052_auto_20190219_2146'),
  38. ]
  39. operations = [
  40. migrations.RunPython(forward, backward)
  41. ]