From 3c22ea4e89338a3bbf3305ae108df73e04cdf408 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 f06e1b92..f5e52837 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -750,7 +750,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') # LOCAL EMAILS diff --git a/machines/models.py b/machines/models.py index d5cdc5a1..040043a1 100644 --- a/machines/models.py +++ b/machines/models.py @@ -377,7 +377,7 @@ class IpType(RevMixin, AclMixin, models.Model): 'netmask' : 'ffff:ffff:ffff:ffff::', 'netmask_cidr' : str(self.prefix_v6_length), '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 8076abb7..28216819 100644 --- a/topologie/models.py +++ b/topologie/models.py @@ -367,13 +367,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.get_name)