NSX|P: Wait with segment realization until it is fully done
Nova boot may fail if the logical switch is not accessible. This patch wait until the segment consolidated state is successful before returning the LS id to nova. Change-Id: Ib055feda79877fe4ebcc5db193f7d9d081724a94
This commit is contained in:
parent
5ccc80608f
commit
3c0f95065e
|
@ -1629,6 +1629,10 @@ class NsxPolicyPlugin(nsx_plugin_common.NsxPluginV3Base):
|
|||
try:
|
||||
nsx_id = self.nsxpolicy.segment.get_realized_logical_switch_id(
|
||||
segment_id)
|
||||
# Make sure the LS is already active before letting nova use it
|
||||
if utils.is_nsx_version_3_1_0(self._nsx_version):
|
||||
self.nsxpolicy.segment.wait_until_state_successful(
|
||||
segment_id, with_refresh=True)
|
||||
# Add result to caches
|
||||
NET_NEUTRON_2_NSX_ID_CACHE[network_id] = nsx_id
|
||||
NET_NSX_2_NEUTRON_ID_CACHE[nsx_id] = network_id
|
||||
|
|
|
@ -126,6 +126,9 @@ class NsxPPluginTestCaseMixin(
|
|||
"NsxPolicySegmentApi.get_realized_logical_switch_id",
|
||||
return_value=LOGICAL_SWITCH_ID
|
||||
).start()
|
||||
mock.patch("vmware_nsxlib.v3.policy.core_resources."
|
||||
"NsxPolicySegmentApi.wait_until_state_successful"
|
||||
).start()
|
||||
mock.patch("vmware_nsxlib.v3.policy.core_resources."
|
||||
"NsxPolicySegmentApi.get_realized_id",
|
||||
return_value=LOGICAL_SWITCH_ID
|
||||
|
|
Loading…
Reference in New Issue