]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fix type of exception in ml2 l2pop
authorAssaf Muller <amuller@redhat.com>
Thu, 19 Feb 2015 21:47:33 +0000 (16:47 -0500)
committerAssaf Muller <amuller@redhat.com>
Thu, 19 Feb 2015 21:49:56 +0000 (16:49 -0500)
Closes-Bug: #1423703
Change-Id: Ie6e2b33a8084381c01a35e3ded6b021f540ef42e

neutron/plugins/ml2/drivers/l2pop/mech_driver.py
neutron/tests/unit/ml2/drivers/test_l2population.py

index fc413fe95a4214a79383ab84312a80766cfc19ac..99f569889990341a5dbf9056774a4b9d93cc766a 100644 (file)
@@ -107,7 +107,7 @@ class L2populationMechanismDriver(api.MechanismDriver,
             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)
index 12f0f6b21aa7977da10b6a2a2c70dc4d3cc13cdb..479df6cfd3aed813909f166274ff0a51678f2cb6 100644 (file)
@@ -14,6 +14,7 @@
 #    under the License.
 
 import contextlib
+import testtools
 
 import mock
 from oslo_utils import timeutils
@@ -26,6 +27,8 @@ from neutron.db import agents_db
 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
@@ -994,3 +997,25 @@ class TestL2PopulationMechDriver(base.BaseTestCase):
                            {'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)