# Generated by Django 2.1.1 on 2019-02-19 20:47 from django.db import migrations from django.utils import timezone from datetime import timedelta def forward(apps, schema_editor): db_alias = schema_editor.connection.alias IPResource = apps.get_model('services', 'IPResource') IPResourceState = apps.get_model('services', 'IPResourceState') now = timezone.now() for ip in IPResource.objects.all(): if ip.last_check: if ip.last_time_up: if ip.last_check == ip.last_time_up: # UP ip.last_state = IPResourceState.objects.create(ip=ip, date=ip.last_time_up, state=1) # UP ip.save() else: # DOWN but UP some time before ip.last_state = IPResourceState.objects.create(ip=ip, date=ip.last_time_up, state=0) # DOWN ip.save() else: # Always DOWN ip.last_state = IPResourceState.objects.create(ip=ip, date=ip.last_check, state=0) # DOWN ip.save() else: ip.last_state = IPResourceState.objects.create(ip=ip, date=now, state=2) # UNKNOWN ip.save() def backward(apps, schema_editor): db_alias = schema_editor.connection.alias IPResource = apps.get_model('services', 'IPResource') IPResourceState = apps.get_model('services', 'IPResourceState') for ip in IPResource.objects.all(): if ip.last_state.state != 2: ip.last_check = ip.last_state.date if ip.last_state.state == 1: ip.last_time_up = ip.last_check ip.save() class Migration(migrations.Migration): dependencies = [ ('services', '0052_auto_20190219_2146'), ] operations = [ migrations.RunPython(forward, backward) ]