Merge "NSXv BGP: Return with error for invalid bgp-peer-remove request"
This commit is contained in:
commit
07689fb974
@ -21,6 +21,7 @@ from neutron_lib.callbacks import registry
|
|||||||
from neutron_lib.callbacks import resources
|
from neutron_lib.callbacks import resources
|
||||||
from neutron_lib import context as n_context
|
from neutron_lib import context as n_context
|
||||||
from neutron_lib.services import base as service_base
|
from neutron_lib.services import base as service_base
|
||||||
|
from oslo_log import log as logging
|
||||||
|
|
||||||
from vmware_nsx.common import locking
|
from vmware_nsx.common import locking
|
||||||
from vmware_nsx.common import nsxv_constants
|
from vmware_nsx.common import nsxv_constants
|
||||||
@ -28,6 +29,7 @@ from vmware_nsx.db import nsxv_db
|
|||||||
from vmware_nsx.extensions import edge_service_gateway_bgp_peer as ext_esg
|
from vmware_nsx.extensions import edge_service_gateway_bgp_peer as ext_esg
|
||||||
from vmware_nsx.services.dynamic_routing.nsx_v import driver as nsxv_driver
|
from vmware_nsx.services.dynamic_routing.nsx_v import driver as nsxv_driver
|
||||||
|
|
||||||
|
LOG = logging.getLogger(__name__)
|
||||||
PLUGIN_NAME = bgp_ext.BGP_EXT_ALIAS + '_nsx_svc_plugin'
|
PLUGIN_NAME = bgp_ext.BGP_EXT_ALIAS + '_nsx_svc_plugin'
|
||||||
|
|
||||||
|
|
||||||
@ -124,9 +126,9 @@ class NSXvBgpPlugin(service_base.ServicePluginBase, bgp_db.BgpDbMixin):
|
|||||||
return peer
|
return peer
|
||||||
|
|
||||||
def update_bgp_peer(self, context, bgp_peer_id, bgp_peer):
|
def update_bgp_peer(self, context, bgp_peer_id, bgp_peer):
|
||||||
self.nsxv_driver.update_bgp_peer(context, bgp_peer_id, bgp_peer)
|
|
||||||
super(NSXvBgpPlugin, self).update_bgp_peer(context,
|
super(NSXvBgpPlugin, self).update_bgp_peer(context,
|
||||||
bgp_peer_id, bgp_peer)
|
bgp_peer_id, bgp_peer)
|
||||||
|
self.nsxv_driver.update_bgp_peer(context, bgp_peer_id, bgp_peer)
|
||||||
return self.get_bgp_peer(context, bgp_peer_id)
|
return self.get_bgp_peer(context, bgp_peer_id)
|
||||||
|
|
||||||
def delete_bgp_peer(self, context, bgp_peer_id):
|
def delete_bgp_peer(self, context, bgp_peer_id):
|
||||||
@ -134,7 +136,11 @@ class NSXvBgpPlugin(service_base.ServicePluginBase, bgp_db.BgpDbMixin):
|
|||||||
bgp_speaker_ids = self.nsxv_driver._get_bgp_speakers_by_bgp_peer(
|
bgp_speaker_ids = self.nsxv_driver._get_bgp_speakers_by_bgp_peer(
|
||||||
context, bgp_peer_id)
|
context, bgp_peer_id)
|
||||||
for speaker_id in bgp_speaker_ids:
|
for speaker_id in bgp_speaker_ids:
|
||||||
self.remove_bgp_peer(context, speaker_id, bgp_peer_info)
|
try:
|
||||||
|
self.remove_bgp_peer(context, speaker_id, bgp_peer_info)
|
||||||
|
except bgp_ext.BgpSpeakerPeerNotAssociated:
|
||||||
|
LOG.debug("Couldn't find bgp speaker %s peer binding while "
|
||||||
|
"deleting bgp peer %s", speaker_id, bgp_peer_id)
|
||||||
super(NSXvBgpPlugin, self).delete_bgp_peer(context, bgp_peer_id)
|
super(NSXvBgpPlugin, self).delete_bgp_peer(context, bgp_peer_id)
|
||||||
|
|
||||||
def add_bgp_peer(self, context, bgp_speaker_id, bgp_peer_info):
|
def add_bgp_peer(self, context, bgp_speaker_id, bgp_peer_info):
|
||||||
@ -147,13 +153,11 @@ class NSXvBgpPlugin(service_base.ServicePluginBase, bgp_db.BgpDbMixin):
|
|||||||
|
|
||||||
def remove_bgp_peer(self, context, bgp_speaker_id, bgp_peer_info):
|
def remove_bgp_peer(self, context, bgp_speaker_id, bgp_peer_info):
|
||||||
with locking.LockManager.get_lock(str(bgp_speaker_id)):
|
with locking.LockManager.get_lock(str(bgp_speaker_id)):
|
||||||
peers = self.get_bgp_peers_by_bgp_speaker(context, bgp_speaker_id)
|
ret = super(NSXvBgpPlugin, self).remove_bgp_peer(
|
||||||
if bgp_peer_info['bgp_peer_id'] not in [p['id'] for p in peers]:
|
context, bgp_speaker_id, bgp_peer_info)
|
||||||
return
|
|
||||||
self.nsxv_driver.remove_bgp_peer(context,
|
self.nsxv_driver.remove_bgp_peer(context,
|
||||||
bgp_speaker_id, bgp_peer_info)
|
bgp_speaker_id, bgp_peer_info)
|
||||||
return super(NSXvBgpPlugin, self).remove_bgp_peer(
|
return ret
|
||||||
context, bgp_speaker_id, bgp_peer_info)
|
|
||||||
|
|
||||||
def add_gateway_network(self, context, bgp_speaker_id, network_info):
|
def add_gateway_network(self, context, bgp_speaker_id, network_info):
|
||||||
with locking.LockManager.get_lock(str(bgp_speaker_id)):
|
with locking.LockManager.get_lock(str(bgp_speaker_id)):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user