From ab7f458e9252a5b2df2be8d1406f34eb12696e27 Mon Sep 17 00:00:00 2001 From: Bach Dániel <bd@ik.bme.hu> Date: Tue, 2 Sep 2014 14:05:19 +0200 Subject: [PATCH] firewall: simplify Host.get_network_config() --- circle/firewall/models.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/circle/firewall/models.py b/circle/firewall/models.py index 87b3a40..7ade303 100644 --- a/circle/firewall/models.py +++ b/circle/firewall/models.py @@ -530,6 +530,26 @@ class Host(models.Model): def incoming_rules(self): return self.rules.filter(direction='in') + @staticmethod + def create_ipnetwork(ip, prefixlen): + try: + net = IPNetwork(ip) + net.prefixlen = prefixlen + except TypeError: + return None + else: + return net + + @property + def ipv4_with_vlan_prefixlen(self): + return Host.create_ipnetwork( + self.ipv4, self.vlan.network4.prefixlen) + + @property + def ipv6_with_vlan_prefixlen(self): + return Host.create_ipnetwork( + self.ipv6, self.vlan.network6.prefixlen) + @property def ipv6_with_prefixlen(self): try: @@ -604,15 +624,11 @@ class Host(models.Model): interface = {'addresses': []} if self.ipv4 and self.vlan.network4: - ipv4 = IPNetwork(self.ipv4) - ipv4.prefixlen = self.vlan.network4.prefixlen - interface['addresses'].append(str(ipv4)) + interface['addresses'].append(str(self.ipv4_with_vlan_prefixlen)) interface['gw4'] = str(self.vlan.network4.ip) if self.ipv6 and self.vlan.network6: - ipv6 = IPNetwork(self.ipv6) - ipv6.prefixlen = self.vlan.network6.prefixlen - interface['addresses'].append(str(ipv6)) + interface['addresses'].append(str(self.ipv4_with_vlan_prefixlen)) interface['gw6'] = str(self.vlan.network6.ip) return interface -- libgit2 0.26.0