From 65b3c8768bf9675aacc312a5d4598ae048406870 Mon Sep 17 00:00:00 2001 From: chirac Date: Fri, 22 Jun 2018 17:48:10 +0200 Subject: [PATCH] Fix gen_range + macaddress non unique --- .../migrations/0089_auto_20180805_1148.py | 21 +++++++++++++++++++ machines/models.py | 9 +++----- 2 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 machines/migrations/0089_auto_20180805_1148.py diff --git a/machines/migrations/0089_auto_20180805_1148.py b/machines/migrations/0089_auto_20180805_1148.py new file mode 100644 index 00000000..76962283 --- /dev/null +++ b/machines/migrations/0089_auto_20180805_1148.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2018-08-05 09:48 +from __future__ import unicode_literals + +from django.db import migrations +import macaddress.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('machines', '0088_iptype_prefix_v6_length'), + ] + + operations = [ + migrations.AlterField( + model_name='interface', + name='mac_address', + field=macaddress.fields.MACAddressField(integer=False, max_length=17), + ), + ] diff --git a/machines/models.py b/machines/models.py index 2f5a6a62..8efe7633 100644 --- a/machines/models.py +++ b/machines/models.py @@ -351,12 +351,9 @@ class IpType(RevMixin, AclMixin, models.Model): crée les ip une par une. Si elles existent déjà, met à jour le type associé à l'ip""" # Creation du range d'ip dans les objets iplist - networks = [] - for net in self.ip_range.cidrs(): - networks += net.iter_hosts() - ip_obj = [IpList(ip_type=self, ipv4=str(ip)) for ip in networks] + ip_obj = [IpList(ip_type=self, ipv4=str(ip)) for ip in self.ip_range] listes_ip = IpList.objects.filter( - ipv4__in=[str(ip) for ip in networks] + ipv4__in=[str(ip) for ip in self.ip_range] ) # Si il n'y a pas d'ip, on les crée if not listes_ip: @@ -900,7 +897,7 @@ class Interface(RevMixin, AclMixin, FieldPermissionModelMixin, models.Model): blank=True, null=True ) - mac_address = MACAddressField(integer=False, unique=True) + mac_address = MACAddressField(integer=False) machine = models.ForeignKey('Machine', on_delete=models.CASCADE) type = models.ForeignKey('MachineType', on_delete=models.PROTECT) details = models.CharField(max_length=255, blank=True)