Merge "Add support for dhcp extra opt to nsx v3 plugin"

This commit is contained in:
Jenkins 2015-08-31 16:11:41 +00:00 committed by Gerrit Code Review
commit 3cc33e583d
2 changed files with 18 additions and 1 deletions

View File

@ -27,6 +27,7 @@ from neutron.api.rpc.agentnotifiers import dhcp_rpc_agent_api
from neutron.api.rpc.handlers import dhcp_rpc from neutron.api.rpc.handlers import dhcp_rpc
from neutron.api.rpc.handlers import metadata_rpc from neutron.api.rpc.handlers import metadata_rpc
from neutron.api.v2 import attributes from neutron.api.v2 import attributes
from neutron.extensions import extra_dhcp_opt as edo_ext
from neutron.extensions import l3 from neutron.extensions import l3
from neutron.extensions import portbindings as pbin from neutron.extensions import portbindings as pbin
from neutron.extensions import providernet as pnet from neutron.extensions import providernet as pnet
@ -38,6 +39,7 @@ from neutron.common import topics
from neutron.db import agents_db from neutron.db import agents_db
from neutron.db import agentschedulers_db from neutron.db import agentschedulers_db
from neutron.db import db_base_plugin_v2 from neutron.db import db_base_plugin_v2
from neutron.db import extradhcpopt_db
from neutron.db import l3_db from neutron.db import l3_db
from neutron.db import models_v2 from neutron.db import models_v2
from neutron.db import portbindings_db from neutron.db import portbindings_db
@ -59,7 +61,8 @@ class NsxV3Plugin(db_base_plugin_v2.NeutronDbPluginV2,
securitygroups_db.SecurityGroupDbMixin, securitygroups_db.SecurityGroupDbMixin,
l3_db.L3_NAT_dbonly_mixin, l3_db.L3_NAT_dbonly_mixin,
portbindings_db.PortBindingMixin, portbindings_db.PortBindingMixin,
agentschedulers_db.DhcpAgentSchedulerDbMixin): agentschedulers_db.DhcpAgentSchedulerDbMixin,
extradhcpopt_db.ExtraDhcpOptMixin):
# NOTE(salv-orlando): Security groups are not actually implemented by this # NOTE(salv-orlando): Security groups are not actually implemented by this
# plugin at the moment # plugin at the moment
@ -69,6 +72,7 @@ class NsxV3Plugin(db_base_plugin_v2.NeutronDbPluginV2,
supported_extension_aliases = ["quotas", supported_extension_aliases = ["quotas",
"binding", "binding",
"extra_dhcp_opt",
"security-group", "security-group",
"router", "router",
"provider"] "provider"]
@ -318,6 +322,7 @@ class NsxV3Plugin(db_base_plugin_v2.NeutronDbPluginV2,
return parent_name, tag return parent_name, tag
def create_port(self, context, port): def create_port(self, context, port):
dhcp_opts = port['port'].get(edo_ext.EXTRADHCPOPTS, [])
port_id = uuidutils.generate_uuid() port_id = uuidutils.generate_uuid()
tags = utils.build_v3_tags_payload(port['port']) tags = utils.build_v3_tags_payload(port['port'])
port['port']['id'] = port_id port['port']['id'] = port_id
@ -358,6 +363,8 @@ class NsxV3Plugin(db_base_plugin_v2.NeutronDbPluginV2,
sgids = self._get_security_groups_on_port(context, port) sgids = self._get_security_groups_on_port(context, port)
self._process_port_create_security_group( self._process_port_create_security_group(
context, neutron_db, sgids) context, neutron_db, sgids)
self._process_port_create_extra_dhcp_opts(context, neutron_db,
dhcp_opts)
return neutron_db return neutron_db
@ -376,6 +383,8 @@ class NsxV3Plugin(db_base_plugin_v2.NeutronDbPluginV2,
with context.session.begin(subtransactions=True): with context.session.begin(subtransactions=True):
updated_port = super(NsxV3Plugin, self).update_port(context, updated_port = super(NsxV3Plugin, self).update_port(context,
id, port) id, port)
self._update_extra_dhcp_opts_on_port(context, id, port,
updated_port)
sec_grp_updated = self.update_security_group_on_port( sec_grp_updated = self.update_security_group_on_port(
context, id, port, original_port, context, id, port, original_port,
updated_port) updated_port)

View File

@ -17,6 +17,7 @@ import mock
from oslo_config import cfg from oslo_config import cfg
import neutron.tests.unit.db.test_db_base_plugin_v2 as test_plugin import neutron.tests.unit.db.test_db_base_plugin_v2 as test_plugin
from neutron.tests.unit.extensions import test_extra_dhcp_opt as test_dhcpopts
import neutron.tests.unit.extensions.test_securitygroup as ext_sg import neutron.tests.unit.extensions.test_securitygroup as ext_sg
from vmware_nsx.neutron.plugins.vmware.nsxlib import v3 as nsxlib from vmware_nsx.neutron.plugins.vmware.nsxlib import v3 as nsxlib
from vmware_nsx.neutron.tests.unit.vmware import nsx_v3_mocks from vmware_nsx.neutron.tests.unit.vmware import nsx_v3_mocks
@ -69,3 +70,10 @@ class SecurityGroupsTestCase(ext_sg.SecurityGroupDBTestCase):
class TestSecurityGroups(ext_sg.TestSecurityGroups, SecurityGroupsTestCase): class TestSecurityGroups(ext_sg.TestSecurityGroups, SecurityGroupsTestCase):
pass pass
class DHCPOptsTestCase(test_dhcpopts.TestExtraDhcpOpt, NsxPluginV3TestCase):
def setUp(self, plugin=None):
super(test_dhcpopts.ExtraDhcpOptDBTestCase, self).setUp(
plugin=PLUGIN_NAME)