From 66329a17622a7351b3df7a2ab6cdf3456421c5b0 Mon Sep 17 00:00:00 2001 From: Mark McClain Date: Tue, 8 Apr 2014 17:38:49 -0400 Subject: [PATCH] Revert "Hide ipv6 subnet API attributes" This reverts commit d739486a3f70cb83f8730cf7201a8b8ccf4b4c70. Change-Id: I27352ba5442da8c69c2d1ab6d5e333e95dc5ebf7 --- neutron/api/v2/attributes.py | 10 ++++------ neutron/db/db_base_plugin_v2.py | 4 ++-- neutron/db/securitygroups_rpc_base.py | 2 +- neutron/tests/unit/test_db_plugin.py | 8 -------- neutron/tests/unit/test_security_groups_rpc.py | 5 ----- 5 files changed, 7 insertions(+), 22 deletions(-) diff --git a/neutron/api/v2/attributes.py b/neutron/api/v2/attributes.py index 04875890b2..852263ce08 100644 --- a/neutron/api/v2/attributes.py +++ b/neutron/api/v2/attributes.py @@ -727,17 +727,15 @@ RESOURCE_ATTRIBUTE_MAP = { 'default': True, 'convert_to': convert_to_boolean, 'is_visible': 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, + 'ipv6_ra_mode': {'allow_post': True, 'allow_put': True, 'default': ATTR_NOT_SPECIFIED, 'validate': {'type:values': constants.IPV6_MODES}, - 'is_visible': False}, - 'ipv6_address_mode': {'allow_post': False, 'allow_put': False, + 'is_visible': True}, + 'ipv6_address_mode': {'allow_post': True, 'allow_put': True, 'default': ATTR_NOT_SPECIFIED, 'validate': {'type:values': constants.IPV6_MODES}, - 'is_visible': False}, + 'is_visible': True}, 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 3210bd445e..1be937cbae 100644 --- a/neutron/db/db_base_plugin_v2.py +++ b/neutron/db/db_base_plugin_v2.py @@ -1158,9 +1158,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.get('ipv6_ra_mode')): + if attributes.is_attr_set(s['ipv6_ra_mode']): args['ipv6_ra_mode'] = s['ipv6_ra_mode'] - if attributes.is_attr_set(s.get('ipv6_address_mode')): + if attributes.is_attr_set(s['ipv6_address_mode']): args['ipv6_address_mode'] = s['ipv6_address_mode'] subnet = models_v2.Subnet(**args) diff --git a/neutron/db/securitygroups_rpc_base.py b/neutron/db/securitygroups_rpc_base.py index 9f28ba6ddf..38d01fb223 100644 --- a/neutron/db/securitygroups_rpc_base.py +++ b/neutron/db/securitygroups_rpc_base.py @@ -249,7 +249,7 @@ class SecurityGroupServerRpcCallbackMixin(object): # TODO(xuhanp): Figure out how to call the following code # each time router is created or updated. if not netaddr.IPAddress(gateway_ip).is_link_local(): - if subnet.get('ipv6_ra_mode'): + if subnet['ipv6_ra_mode']: gateway_ip = self._get_lla_gateway_ip_for_subnet(context, subnet) else: diff --git a/neutron/tests/unit/test_db_plugin.py b/neutron/tests/unit/test_db_plugin.py index 18d6026861..4369280200 100644 --- a/neutron/tests/unit/test_db_plugin.py +++ b/neutron/tests/unit/test_db_plugin.py @@ -22,7 +22,6 @@ import os import mock from oslo.config import cfg from testtools import matchers -from testtools import testcase import webob.exc import neutron @@ -2999,7 +2998,6 @@ 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' @@ -3010,7 +3008,6 @@ 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' @@ -3061,7 +3058,6 @@ 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' @@ -3236,7 +3232,6 @@ 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, @@ -3251,7 +3246,6 @@ 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, @@ -3263,7 +3257,6 @@ 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, @@ -3275,7 +3268,6 @@ 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, diff --git a/neutron/tests/unit/test_security_groups_rpc.py b/neutron/tests/unit/test_security_groups_rpc.py index 3803b6e8fb..7057c8d251 100644 --- a/neutron/tests/unit/test_security_groups_rpc.py +++ b/neutron/tests/unit/test_security_groups_rpc.py @@ -22,7 +22,6 @@ import mock from mock import call from oslo.config import cfg from testtools import matchers -from testtools import testcase import webob.exc from neutron.agent.common import config @@ -366,7 +365,6 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): expected) self._delete('ports', port_id1) - @testcase.skip("Skipped until bug 1304093 is fixed") def test_security_group_ra_rules_for_devices_ipv6_gateway_global(self): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP['IPv6_GLOBAL'] @@ -437,7 +435,6 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): self.deserialize(self.fmt, req.get_response(self.api)) self._delete('ports', gateway_port_id) - @testcase.skip("Skipped until bug 1304093 is fixed") def test_security_group_rule_for_device_ipv6_multi_router_interfaces(self): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP['IPv6_GLOBAL'] @@ -515,7 +512,6 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): self._delete('ports', gateway_port_id) self._delete('ports', interface_port_id) - @testcase.skip("Skipped until bug 1304093 is fixed") def test_security_group_ra_rules_for_devices_ipv6_gateway_lla(self): fake_prefix = FAKE_PREFIX[const.IPv6] fake_gateway = FAKE_IP['IPv6_LLA'] @@ -568,7 +564,6 @@ class SGServerRpcCallBackMixinTestCase(test_sg.SecurityGroupDBTestCase): expected) self._delete('ports', port_id1) - @testcase.skip("Skipped until bug 1304093 is fixed") def test_security_group_ra_rules_for_devices_ipv6_no_gateway_port(self): fake_prefix = FAKE_PREFIX[const.IPv6] with self.network() as n: