From f85eea651790c58176a8cdd985cb5afcb4ec3950 Mon Sep 17 00:00:00 2001 From: Li Jinjing Date: Wed, 1 Jul 2015 16:25:06 +0800 Subject: [PATCH] Add MTU attribute for OS::Neutron::Net MTU(Maximum Transmission Unit), add a read-only attribute which hasn't been supported by HEAT yet. Change-Id: I4aaa6df15bae3995ab683f7e8f71f52b023e1c47 Closes-Bug: #1447806 --- heat/engine/resources/openstack/neutron/net.py | 9 +++++++-- heat/tests/neutron/test_neutron_net.py | 16 +++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/heat/engine/resources/openstack/neutron/net.py b/heat/engine/resources/openstack/neutron/net.py index 51d3fc34b4..18e4190cd4 100644 --- a/heat/engine/resources/openstack/neutron/net.py +++ b/heat/engine/resources/openstack/neutron/net.py @@ -29,10 +29,10 @@ class Net(neutron.NeutronResource): ATTRIBUTES = ( STATUS, NAME_ATTR, SUBNETS, ADMIN_STATE_UP_ATTR, TENANT_ID_ATTR, SHOW, - PORT_SECURITY_ENABLED_ATTR, + PORT_SECURITY_ENABLED_ATTR, MTU_ATTR, ) = ( "status", "name", "subnets", "admin_state_up", "tenant_id", "show", - "port_security_enabled", + "port_security_enabled", "mtu", ) properties_schema = { @@ -118,6 +118,11 @@ class Net(neutron.NeutronResource): support_status=support.SupportStatus(version='5.0.0'), type=attributes.Schema.BOOLEAN ), + MTU_ATTR: attributes.Schema( + _("The maximum transmission unit size(in bytes) for the network."), + support_status=support.SupportStatus(version='5.0.0'), + type=attributes.Schema.INTEGER + ), } def handle_create(self): diff --git a/heat/tests/neutron/test_neutron_net.py b/heat/tests/neutron/test_neutron_net.py index fa3b335e92..f44a20a6e4 100644 --- a/heat/tests/neutron/test_neutron_net.py +++ b/heat/tests/neutron/test_neutron_net.py @@ -112,7 +112,8 @@ class NeutronNetTest(common.HeatTestCase): "admin_state_up": True, "shared": True, "tenant_id": "c1210485b2424d48804aad5d39c61b8f", - "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766" + "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766", + "mtu": 0 }}) neutronclient.Client.list_dhcp_agent_hosting_networks( @@ -133,7 +134,8 @@ class NeutronNetTest(common.HeatTestCase): "admin_state_up": True, "shared": True, "tenant_id": "c1210485b2424d48804aad5d39c61b8f", - "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766" + "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766", + "mtu": 0 }}) neutronclient.Client.show_network( @@ -145,7 +147,8 @@ class NeutronNetTest(common.HeatTestCase): "admin_state_up": True, "shared": True, "tenant_id": "c1210485b2424d48804aad5d39c61b8f", - "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766" + "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766", + "mtu": 0 }}) neutronclient.Client.show_network( @@ -161,7 +164,8 @@ class NeutronNetTest(common.HeatTestCase): "admin_state_up": True, "shared": True, "tenant_id": "c1210485b2424d48804aad5d39c61b8f", - "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766" + "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766", + "mtu": 0 }}) neutronclient.Client.show_network( @@ -173,7 +177,8 @@ class NeutronNetTest(common.HeatTestCase): "admin_state_up": True, "shared": True, "tenant_id": "c1210485b2424d48804aad5d39c61b8f", - "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766" + "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766", + "mtu": 0 }}) # Update script @@ -254,6 +259,7 @@ class NeutronNetTest(common.HeatTestCase): self.assertIsNone(rsrc.FnGetAtt('status')) self.assertEqual('ACTIVE', rsrc.FnGetAtt('status')) + self.assertEqual(0, rsrc.FnGetAtt('mtu')) self.assertRaises( exception.InvalidTemplateAttribute, rsrc.FnGetAtt, 'Foo') prop_diff = {