From 487159df99d8c7e302da761ff33edab64a3a722b Mon Sep 17 00:00:00 2001 From: Troy Toman Date: Thu, 2 Feb 2012 13:53:38 -0600 Subject: [PATCH] Fixes LP925656 Change-Id: I8ede34610bf16206544a7f48409715d036bde976 --- doc/source/apidoc.rst | 2 +- melange/ipam/models.py | 5 ++++- melange/tests/unit/test_ipam_models.py | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/source/apidoc.rst b/doc/source/apidoc.rst index d1588c91..4fd2aebe 100644 --- a/doc/source/apidoc.rst +++ b/doc/source/apidoc.rst @@ -1441,7 +1441,7 @@ Error - 404 Not Found [When network for a given network_id and tenant_id is not "gateway": "fe::1", "id": "7ab2f803-a5d7-4d77-bb42-1eb1e8732e93", "ip_routes": [], - "netmask": "ffff:ffff:ffff:ffff:ffff:ffff::" + "netmask": "96" }, "version": 6 } diff --git a/melange/ipam/models.py b/melange/ipam/models.py index 6900cc15..81e80551 100644 --- a/melange/ipam/models.py +++ b/melange/ipam/models.py @@ -261,7 +261,10 @@ class IpBlock(ModelBase): @property def netmask(self): - return str(netaddr.IPNetwork(self.cidr).netmask) + if self.is_ipv6(): + return str(netaddr.IPNetwork(self.cidr).prefixlen) + else: + return str(netaddr.IPNetwork(self.cidr).netmask) def is_ipv6(self): return netaddr.IPNetwork(self.cidr).version == 6 diff --git a/melange/tests/unit/test_ipam_models.py b/melange/tests/unit/test_ipam_models.py index 3661118e..0c6ba3ff 100644 --- a/melange/tests/unit/test_ipam_models.py +++ b/melange/tests/unit/test_ipam_models.py @@ -192,7 +192,7 @@ class TestIpBlock(tests.BaseTest): self.assertEqual(v4_block.broadcast, "10.0.0.255") self.assertEqual(v4_block.netmask, "255.255.255.0") self.assertEqual(v6_block.broadcast, "fe::ffff:ffff:ffff:ffff") - self.assertEqual(v6_block.netmask, "ffff:ffff:ffff:ffff::") + self.assertEqual(v6_block.netmask, "64") def test_valid_cidr(self): factory = factory_models.PrivateIpBlockFactory