From b2192213423e09eb7c725b96a7f4a624a2132baf Mon Sep 17 00:00:00 2001 From: Gabriel Detraz Date: Thu, 12 Jul 2018 01:12:46 +0200 Subject: [PATCH] Export de l'ensemble des ip du switch --- api/serializers.py | 2 +- machines/models.py | 2 +- topologie/models.py | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/api/serializers.py b/api/serializers.py index 2a339f19..dbd73a76 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -729,7 +729,7 @@ class SwitchPortSerializer(serializers.ModelSerializer): class Meta: model = topologie.Switch fields = ('short_name', 'model', 'switchbay', 'ports', 'ipv4', 'ipv6', - 'subnet', 'subnet6', 'automatic_provision', 'rest_enabled', + 'interfaces_subnet', 'interfaces6_subnet', 'automatic_provision', 'rest_enabled', 'web_management_enabled', 'get_radius_key_value', 'get_management_cred_value') # DHCP diff --git a/machines/models.py b/machines/models.py index 2d23efca..d9a8cb5d 100644 --- a/machines/models.py +++ b/machines/models.py @@ -407,7 +407,7 @@ class IpType(RevMixin, AclMixin, models.Model): 'netmask' : 'ffff:ffff:ffff:ffff::', 'netmask_cidr' : '64', 'vlan': str(self.vlan), - 'vlan_id': str(self.vlan.vlan_id) + 'vlan_id': self.vlan.vlan_id } else: return None diff --git a/topologie/models.py b/topologie/models.py index 01101d1c..d22a0f75 100644 --- a/topologie/models.py +++ b/topologie/models.py @@ -350,13 +350,14 @@ class Switch(AclMixin, Machine): return str(self.main_interface().ipv6().first()) @cached_property - def subnet(self): - """ Return the subnet of the management ip""" - return self.main_interface().type.ip_type.ip_set_full_info + def interfaces_subnet(self): + """Return dict ip:subnet for all ip of the switch""" + return dict((str(interface.ipv4), interface.type.ip_type.ip_set_full_info) for interface in self.interface_set.all()) @cached_property - def subnet6(self): - return self.main_interface().type.ip_type.ip6_set_full_info + def interfaces6_subnet(self): + """Return dict ip6:subnet for all ipv6 of the switch""" + return dict((str(interface.ipv6().first()), interface.type.ip_type.ip6_set_full_info) for interface in self.interface_set.all()) def __str__(self): return str(self.main_interface())