Skip to content
This repository has been archived by the owner on Mar 18, 2021. It is now read-only.

Commit

Permalink
Merge "Fix type of exception in ml2 l2pop"
Browse files Browse the repository at this point in the history
  • Loading branch information
Jenkins authored and openstack-gerrit committed Feb 20, 2015
2 parents 0908cbf + 639b885 commit c1e0f9d
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
2 changes: 1 addition & 1 deletion neutron/plugins/ml2/drivers/l2pop/mech_driver.py
Expand Up @@ -107,7 +107,7 @@ def update_port_postcommit(self, context):
context.status == const.PORT_STATUS_ACTIVE):
LOG.warning(_LW("unable to modify mac_address of ACTIVE port "
"%s"), port['id'])
raise ml2_exc.MechansimDriverError(method='update_port_postcommit')
raise ml2_exc.MechanismDriverError(method='update_port_postcommit')
diff_ips = self._get_diff_ips(orig, port)
if diff_ips:
self._fixed_ips_changed(context, orig, port, diff_ips)
Expand Down
25 changes: 25 additions & 0 deletions neutron/tests/unit/ml2/drivers/test_l2population.py
Expand Up @@ -14,6 +14,7 @@
# under the License.

import contextlib
import testtools

import mock
from oslo_utils import timeutils
Expand All @@ -26,6 +27,8 @@
from neutron.extensions import portbindings
from neutron.extensions import providernet as pnet
from neutron import manager
from neutron.plugins.ml2.common import exceptions as ml2_exc
from neutron.plugins.ml2 import driver_context
from neutron.plugins.ml2.drivers.l2pop import db as l2pop_db
from neutron.plugins.ml2.drivers.l2pop import mech_driver as l2pop_mech_driver
from neutron.plugins.ml2.drivers.l2pop import rpc as l2pop_rpc
Expand Down Expand Up @@ -994,3 +997,25 @@ def test_create_agent_fdb_only_tunnels(self):
{'10.0.0.1':
[constants.FLOODING_ENTRY]}}
self.assertEqual(expected_result, result)

def test_update_port_postcommit_mac_address_changed_raises(self):
port = {'status': u'ACTIVE',
'device_owner': u'compute:None',
'mac_address': u'12:34:56:78:4b:0e',
'id': u'1'}

original_port = port.copy()
original_port['mac_address'] = u'12:34:56:78:4b:0f'

with mock.patch.object(driver_context.db, 'get_network_segments'):
ctx = driver_context.PortContext(mock.Mock(),
mock.Mock(),
port,
mock.MagicMock(),
mock.Mock(),
None,
original_port=original_port)

mech_driver = l2pop_mech_driver.L2populationMechanismDriver()
with testtools.ExpectedException(ml2_exc.MechanismDriverError):
mech_driver.update_port_postcommit(ctx)

0 comments on commit c1e0f9d

Please sign in to comment.