aboutsummaryrefslogtreecommitdiffstats
path: root/sfc/lib/openstack_utils.py
diff options
context:
space:
mode:
authorBrady Johnson <bjohnson@inocybe.com>2018-11-06 09:48:34 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-11-06 09:48:34 +0000
commit584dd944d267150f0071e9e13a7dff2a8123ef61 (patch)
tree0695f8d6f36403b8d6292c42c324ee814e694522 /sfc/lib/openstack_utils.py
parent0eb8ab44ae9192f08026f659bc40cddb48703afb (diff)
parent52e86db6e0a3343852c9aabba49dffe3d699d1a0 (diff)
Merge "Avoid race conditions"
Diffstat (limited to 'sfc/lib/openstack_utils.py')
-rw-r--r--sfc/lib/openstack_utils.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/sfc/lib/openstack_utils.py b/sfc/lib/openstack_utils.py
index 7915e77d..38ca61bb 100644
--- a/sfc/lib/openstack_utils.py
+++ b/sfc/lib/openstack_utils.py
@@ -316,6 +316,23 @@ class OpenStackSFC:
{'vnf': vm_instance.name})
return None
+ # Avoid race conditions by checking the port pair is already committed
+ iterations = 5
+ found_it = False
+ for i in range(iterations):
+ pp_list = self.neutron.list_sfc_port_pairs()['port_pairs']
+ for pp in pp_list:
+ if pp['id'] == port_pair_info['port_pair']['id']:
+ found_it = True
+ break
+ if found_it:
+ break
+ else:
+ time.sleep(3)
+
+ if not found_it:
+ raise Exception("Port pair was not committed in openstack")
+
logger.info("Creating the port pair groups for %s" % vm_instance.name)
port_pair_group = {}
port_pair_group['name'] = vm_instance.name + '-port-pair-group'