Fixes port status hanging to build status

ML2 plugin changes the port status to "build" when get_device_details
is called. For this reason, the port status must be updated once the
port details are processed.

Fixes bug: #1224991

Change-Id: I2c0321073cc07e1764fedbfbecbc844557ac6bc9
(cherry picked from commit 01194b356e)
This commit is contained in:
Petrut Lucian 2013-09-25 20:07:01 +03:00 committed by Thierry Carrez
parent 5b36c69d3b
commit 16b501f5f0
2 changed files with 18 additions and 2 deletions

View File

@ -310,6 +310,10 @@ class HyperVNeutronAgent(object):
device_details['physical_network'],
device_details['segmentation_id'],
device_details['admin_state_up'])
self.plugin_rpc.update_device_up(self.context,
device,
self.agent_id,
cfg.CONF.host)
return resync
def _treat_devices_removed(self, devices):

View File

@ -111,8 +111,20 @@ class TestHyperVNeutronAgent(base.BaseTestCase):
def test_treat_devices_added_updates_known_port(self):
details = mock.MagicMock()
details.__contains__.side_effect = lambda x: True
self.assertTrue(self.mock_treat_devices_added(details,
'_treat_vif_port'))
with mock.patch.object(self.agent.plugin_rpc,
"update_device_up") as func:
self.assertTrue(self.mock_treat_devices_added(details,
'_treat_vif_port'))
self.assertTrue(func.called)
def test_treat_devices_added_missing_port_id(self):
details = mock.MagicMock()
details.__contains__.side_effect = lambda x: False
with mock.patch.object(self.agent.plugin_rpc,
"update_device_up") as func:
self.assertFalse(self.mock_treat_devices_added(details,
'_treat_vif_port'))
self.assertFalse(func.called)
def test_treat_devices_removed_returns_true_for_missing_device(self):
attrs = {'update_device_down.side_effect': Exception()}