From: Aaron Rosen Date: Wed, 12 Feb 2014 22:25:31 +0000 (-0800) Subject: NSX: Fix newly created port's status should be DOWN X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=464c307c68fca0353fb7d65acf650001c8de3f73;p=openstack-build%2Fneutron-build.git NSX: Fix newly created port's status should be DOWN Previously when creating a port in neutron using the nsx plugin the port status returned would be ACTIVE even if this was not the case. Now, DOWN is returned which will be updated by the backend when the port goes ACTIVE. Change-Id: I600fb1292ae79146cb14c7e23170262973878de0 Closes-bug: #1279551 --- diff --git a/neutron/plugins/nicira/NeutronPlugin.py b/neutron/plugins/nicira/NeutronPlugin.py index bad803cde..db5c7bc4b 100644 --- a/neutron/plugins/nicira/NeutronPlugin.py +++ b/neutron/plugins/nicira/NeutronPlugin.py @@ -1129,6 +1129,8 @@ class NvpPluginV2(addr_pair_db.AllowedAddressPairsMixin, # ATTR_NOT_SPECIFIED is for the case where a port is created on a # shared network that is not owned by the tenant. port_data = port['port'] + # Set port status as 'DOWN'. This will be updated by backend sync. + port_data['status'] = constants.PORT_STATUS_DOWN with context.session.begin(subtransactions=True): # First we allocate port in neutron database neutron_db = super(NvpPluginV2, self).create_port(context, port) diff --git a/neutron/tests/unit/vmware/test_nsx_plugin.py b/neutron/tests/unit/vmware/test_nsx_plugin.py index 73543cddb..2e9de71a2 100644 --- a/neutron/tests/unit/vmware/test_nsx_plugin.py +++ b/neutron/tests/unit/vmware/test_nsx_plugin.py @@ -112,6 +112,8 @@ class NsxPluginV2TestCase(test_plugin.NeutronDbPluginV2TestCase): self.fc.fake_request) super(NsxPluginV2TestCase, self).setUp(plugin=plugin, ext_mgr=ext_mgr) + # Newly created port's status is always 'DOWN' till NSX wires them. + self.port_create_status = constants.PORT_STATUS_DOWN cfg.CONF.set_override('metadata_mode', None, 'NSX') self.addCleanup(self.fc.reset_all) self.addCleanup(mock.patch.stopall) diff --git a/neutron/tests/unit/vmware/test_nsx_sync.py b/neutron/tests/unit/vmware/test_nsx_sync.py index 7a94fac43..1a89d0a6b 100644 --- a/neutron/tests/unit/vmware/test_nsx_sync.py +++ b/neutron/tests/unit/vmware/test_nsx_sync.py @@ -584,16 +584,16 @@ class SyncTestCase(base.BaseTestCase): lp_uuid = self.fc._fake_lswitch_lport_dict.keys()[0] lport = self.fc._fake_lswitch_lport_dict[lp_uuid] q_port_id = self._get_tag_dict(lport['tags'])['q_port_id'] - lport['status'] = 'false' + lport['status'] = 'true' q_port_data = self._plugin._get_port(ctx, q_port_id) self._plugin._synchronizer.synchronize_port(ctx, q_port_data) # Reload from db q_ports = self._plugin.get_ports(ctx) for q_port in q_ports: if q_port['id'] == q_port_id: - exp_status = constants.PORT_STATUS_DOWN - else: exp_status = constants.PORT_STATUS_ACTIVE + else: + exp_status = constants.PORT_STATUS_DOWN self.assertEqual(exp_status, q_port['status']) def test_synchronize_port_on_get(self):