From bbc800875450f87469a09e247361f7a2f61e865f Mon Sep 17 00:00:00 2001 From: Salvatore Orlando Date: Mon, 7 Apr 2014 16:29:54 -0700 Subject: [PATCH] Hide ipv6 subnet API attributes The attributes for ra mode and address mode should be hidden until the IPv6 feature is fully implemented. The changes in this patch will be reverted by another patch which closes this bug. Change-Id: I69a1a571b5beb566641200e60b84f0716c1ec138 Related-Bug: 1304093 (cherry picked from commit d739486a3f70cb83f8730cf7201a8b8ccf4b4c70) --- neutron/api/v2/attributes.py | 10 ++++++---- neutron/db/db_base_plugin_v2.py | 4 ++-- neutron/tests/unit/test_db_plugin.py | 8 ++++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/neutron/api/v2/attributes.py b/neutron/api/v2/attributes.py index 852263ce0..04875890b 100644 --- a/neutron/api/v2/attributes.py +++ b/neutron/api/v2/attributes.py @@ -727,15 +727,17 @@ RESOURCE_ATTRIBUTE_MAP = { 'default': True, 'convert_to': convert_to_boolean, 'is_visible': True}, - 'ipv6_ra_mode': {'allow_post': True, 'allow_put': True, + # NOTE: The following two attributes will be made visible once IPv6 + # will be fully supported + 'ipv6_ra_mode': {'allow_post': False, 'allow_put': False, 'default': ATTR_NOT_SPECIFIED, 'validate': {'type:values': constants.IPV6_MODES}, - 'is_visible': True}, - 'ipv6_address_mode': {'allow_post': True, 'allow_put': True, + 'is_visible': False}, + 'ipv6_address_mode': {'allow_post': False, 'allow_put': False, 'default': ATTR_NOT_SPECIFIED, 'validate': {'type:values': constants.IPV6_MODES}, - 'is_visible': True}, + 'is_visible': False}, SHARED: {'allow_post': False, 'allow_put': False, 'default': False, diff --git a/neutron/db/db_base_plugin_v2.py b/neutron/db/db_base_plugin_v2.py index 0701ff8cc..1673340e6 100644 --- a/neutron/db/db_base_plugin_v2.py +++ b/neutron/db/db_base_plugin_v2.py @@ -1160,9 +1160,9 @@ class NeutronDbPluginV2(neutron_plugin_base_v2.NeutronPluginBaseV2, 'gateway_ip': s['gateway_ip'], 'shared': network.shared} if s['ip_version'] == 6 and s['enable_dhcp']: - if attributes.is_attr_set(s['ipv6_ra_mode']): + if attributes.is_attr_set(s.get('ipv6_ra_mode')): args['ipv6_ra_mode'] = s['ipv6_ra_mode'] - if attributes.is_attr_set(s['ipv6_address_mode']): + if attributes.is_attr_set(s.get('ipv6_address_mode')): args['ipv6_address_mode'] = s['ipv6_address_mode'] subnet = models_v2.Subnet(**args) diff --git a/neutron/tests/unit/test_db_plugin.py b/neutron/tests/unit/test_db_plugin.py index 436928020..18d602686 100644 --- a/neutron/tests/unit/test_db_plugin.py +++ b/neutron/tests/unit/test_db_plugin.py @@ -22,6 +22,7 @@ import os import mock from oslo.config import cfg from testtools import matchers +from testtools import testcase import webob.exc import neutron @@ -2998,6 +2999,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): res = subnet_req.get_response(self.api) self.assertEqual(res.status_int, webob.exc.HTTPClientError.code) + @testcase.skip("Skipped until bug 1304093 is fixed") def test_create_subnet_ipv6_attributes(self): gateway_ip = 'fe80::1' cidr = 'fe80::/80' @@ -3008,6 +3010,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): ipv6_ra_mode=mode, ipv6_address_mode=mode) + @testcase.skip("Skipped until bug 1304093 is fixed") def test_create_subnet_ipv6_attributes_no_dhcp_enabled(self): gateway_ip = 'fe80::1' cidr = 'fe80::/80' @@ -3058,6 +3061,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): self.assertEqual(ctx_manager.exception.code, webob.exc.HTTPClientError.code) + @testcase.skip("Skipped until bug 1304093 is fixed") def test_create_subnet_ipv6_single_attribute_set(self): gateway_ip = 'fe80::1' cidr = 'fe80::/80' @@ -3232,6 +3236,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): self.assertEqual(res.status_int, webob.exc.HTTPConflict.code) + @testcase.skip("Skipped until bug 1304093 is fixed") def test_update_subnet_ipv6_attributes(self): with self.subnet(ip_version=6, cidr='fe80::/80', ipv6_ra_mode=constants.IPV6_SLAAC, @@ -3246,6 +3251,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): self.assertEqual(res['subnet']['ipv6_address_mode'], data['subnet']['ipv6_address_mode']) + @testcase.skip("Skipped until bug 1304093 is fixed") def test_update_subnet_ipv6_inconsistent_ra_attribute(self): with self.subnet(ip_version=6, cidr='fe80::/80', ipv6_ra_mode=constants.IPV6_SLAAC, @@ -3257,6 +3263,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): self.assertEqual(res.status_int, webob.exc.HTTPClientError.code) + @testcase.skip("Skipped until bug 1304093 is fixed") def test_update_subnet_ipv6_inconsistent_address_attribute(self): with self.subnet(ip_version=6, cidr='fe80::/80', ipv6_ra_mode=constants.IPV6_SLAAC, @@ -3268,6 +3275,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase): self.assertEqual(res.status_int, webob.exc.HTTPClientError.code) + @testcase.skip("Skipped until bug 1304093 is fixed") def test_update_subnet_ipv6_inconsistent_enable_dhcp(self): with self.subnet(ip_version=6, cidr='fe80::/80', ipv6_ra_mode=constants.IPV6_SLAAC, -- 2.45.2