From f173ee4cf28ffeae553abfc44d01002e3e4cdf0c Mon Sep 17 00:00:00 2001 From: asarfaty Date: Mon, 2 Nov 2020 12:58:14 +0200 Subject: [PATCH] NSX|V: Fix octavia delete cascade - add listener default pool Id - verify app profile id exists Change-Id: I5794aac8f2db3ebcc30d82911e1a5b4b7419505d --- .../services/lbaas/nsx_v/implementation/listener_mgr.py | 2 ++ vmware_nsx/services/lbaas/octavia/octavia_listener.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/vmware_nsx/services/lbaas/nsx_v/implementation/listener_mgr.py b/vmware_nsx/services/lbaas/nsx_v/implementation/listener_mgr.py index 63db43ec08..025af63e20 100644 --- a/vmware_nsx/services/lbaas/nsx_v/implementation/listener_mgr.py +++ b/vmware_nsx/services/lbaas/nsx_v/implementation/listener_mgr.py @@ -113,6 +113,8 @@ def update_app_profile(vcns, context, listener, edge_id, edge_cert_id=None): lb_id = listener['loadbalancer_id'] listener_binding = nsxv_db.get_nsxv_lbaas_listener_binding( context.session, lb_id, listener['id']) + if not listener_binding: + return app_profile_id = listener_binding['app_profile_id'] app_profile = listener_to_edge_app_profile(listener, edge_cert_id) with locking.LockManager.get_lock(edge_id): diff --git a/vmware_nsx/services/lbaas/octavia/octavia_listener.py b/vmware_nsx/services/lbaas/octavia/octavia_listener.py index fb9754d69b..d3c6b2de1b 100644 --- a/vmware_nsx/services/lbaas/octavia/octavia_listener.py +++ b/vmware_nsx/services/lbaas/octavia/octavia_listener.py @@ -323,7 +323,6 @@ class NSXOctaviaListenerEndpoint(object): def dummy_completor(success=True): pass - completor = self.get_completor_func(constants.LOADBALANCERS, loadbalancer, delete=True) @@ -344,6 +343,9 @@ class NSXOctaviaListenerEndpoint(object): pool['loadbalancer'] = loadbalancer if pool.get('listener_id'): pool['listener'] = listener_dict[pool['listener_id']] + if pool['listener'].get('default_pool'): + pool['listener']['default_pool']['id'] = pool[ + 'listener']['default_pool']['pool_id'] pool['listeners'] = [pool['listener']] for member in pool.get('members', []): if not member.get('pool'):