|
|
|
@ -3,20 +3,25 @@ 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") |
|
|
|
machines_to_fix = list(filter(lambda m : not m.name.islower(), domain.objects.using(db_alias).all())) |
|
|
|
for machine in machines_to_fix: |
|
|
|
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: |
|
|
|
machine.name = machine.name.lower() |
|
|
|
machine.validate_unique() |
|
|
|
machine.clean() |
|
|
|
domain.name = domain.name.lower() |
|
|
|
domain.validate_unique() |
|
|
|
domain.clean() |
|
|
|
except ValidationError: |
|
|
|
machine.name = machine.name.lower() + str(machine.interface_parent.id) |
|
|
|
machine.clean() |
|
|
|
machine.save() |
|
|
|
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 |
|
|
|
|