mirror of https://gitlab.federez.net/re2o/re2o
2 changed files with 42 additions and 6 deletions
@ -0,0 +1,36 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from __future__ import unicode_literals |
|||
|
|||
from django.db import migrations |
|||
from django.core.exceptions import ValidationError |
|||
import logging |
|||
|
|||
def fix_duplicate(apps, schema_editor): |
|||
logger = logging.getLogger(__name__) |
|||
db_alias = schema_editor.connection.alias |
|||
Domain = apps.get_model("machines", "Domain") |
|||
domains_to_fix = filter(lambda m : not m.name.islower(), Domain.objects.using(db_alias).all()) |
|||
for domain in domains_to_fix: |
|||
try: |
|||
domain.name = domain.name.lower() |
|||
domain.validate_unique() |
|||
domain.clean() |
|||
except ValidationError: |
|||
old_name = domain.name |
|||
domain.name = domain.name.lower() + str(domain.interface_parent.id) |
|||
domain.clean() |
|||
warning_message = "Warning : Domain %s has been renamed %s due to dns uniqueness" % (old_name, domain.name) |
|||
logger.warning(warning_message) |
|||
domain.save() |
|||
|
|||
def unfix_duplicate(apps, schema_editor): |
|||
return |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [("machines", "0106_auto_20191120_0159")] |
|||
|
|||
operations = [ |
|||
migrations.RunPython(fix_duplicate, unfix_duplicate), |
|||
] |
|||
Loading…
Reference in new issue