Merge "NSX|V: check md proxy handler exists before usage"

This commit is contained in:
Jenkins 2017-09-27 20:59:53 +00:00 committed by Gerrit Code Review
commit b443bcbdf3
4 changed files with 18 additions and 9 deletions

View File

@ -85,6 +85,7 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver):
az = self.get_router_az_by_id(context, router_id) az = self.get_router_az_by_id(context, router_id)
metadata_proxy_handler = self.plugin.get_metadata_proxy_handler( metadata_proxy_handler = self.plugin.get_metadata_proxy_handler(
az.name) az.name)
if metadata_proxy_handler:
metadata_proxy_handler.cleanup_router_edge(context, router_id) metadata_proxy_handler.cleanup_router_edge(context, router_id)
def _build_router_data_from_db(self, router_db, router): def _build_router_data_from_db(self, router_db, router):
@ -142,6 +143,7 @@ class RouterExclusiveDriver(router_driver.RouterBaseDriver):
edge_id, az_name = self.plugin._get_edge_id_and_az_by_rtr_id( edge_id, az_name = self.plugin._get_edge_id_and_az_by_rtr_id(
context, router_id) context, router_id)
md_proxy = self.plugin.get_metadata_proxy_handler(az_name) md_proxy = self.plugin.get_metadata_proxy_handler(az_name)
if md_proxy:
md_proxy.cleanup_router_edge(context, router_id) md_proxy.cleanup_router_edge(context, router_id)
self.edge_manager.delete_lrouter(context, router_id, dist=False) self.edge_manager.delete_lrouter(context, router_id, dist=False)

View File

@ -594,6 +594,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
if self.plugin.metadata_proxy_handler and new: if self.plugin.metadata_proxy_handler and new:
md_proxy_handler = self.plugin.get_metadata_proxy_handler( md_proxy_handler = self.plugin.get_metadata_proxy_handler(
az.name) az.name)
if md_proxy_handler:
md_proxy_handler.configure_router_edge(context, router_id) md_proxy_handler.configure_router_edge(context, router_id)
edge_id = edge_utils.get_router_edge_id(context, router_id) edge_id = edge_utils.get_router_edge_id(context, router_id)
with locking.LockManager.get_lock(str(edge_id)): with locking.LockManager.get_lock(str(edge_id)):
@ -624,6 +625,7 @@ class RouterSharedDriver(router_driver.RouterBaseDriver):
if self.plugin.metadata_proxy_handler: if self.plugin.metadata_proxy_handler:
metadata_proxy_handler = self.plugin.get_metadata_proxy_handler( metadata_proxy_handler = self.plugin.get_metadata_proxy_handler(
az.name) az.name)
if metadata_proxy_handler:
metadata_proxy_handler.cleanup_router_edge(context, router_id) metadata_proxy_handler.cleanup_router_edge(context, router_id)
def _add_router_services_on_available_edge(self, context, router_id): def _add_router_services_on_available_edge(self, context, router_id):

View File

@ -338,7 +338,9 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
if az_name in self.metadata_proxy_handler: if az_name in self.metadata_proxy_handler:
return self.metadata_proxy_handler[az_name] return self.metadata_proxy_handler[az_name]
# fallback to the global handler # fallback to the global handler
return self.metadata_proxy_handler[nsx_az.DEFAULT_NAME] # Note(asarfaty): in case this is called during init_complete the
# default availability zone may still not exist.
return self.metadata_proxy_handler.get(nsx_az.DEFAULT_NAME)
def add_vms_to_service_insertion(self, sg_id): def add_vms_to_service_insertion(self, sg_id):
def _add_vms_to_service_insertion(*args, **kwargs): def _add_vms_to_service_insertion(*args, **kwargs):
@ -1348,6 +1350,7 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
rtr_id = rtr_binding['router_id'] rtr_id = rtr_binding['router_id']
az_name = rtr_binding['availability_zone'] az_name = rtr_binding['availability_zone']
md_proxy = self.get_metadata_proxy_handler(az_name) md_proxy = self.get_metadata_proxy_handler(az_name)
if md_proxy:
md_proxy.cleanup_router_edge(context, rtr_id) md_proxy.cleanup_router_edge(context, rtr_id)
else: else:
self.edge_manager.reconfigure_shared_edge_metadata_port( self.edge_manager.reconfigure_shared_edge_metadata_port(
@ -2661,6 +2664,7 @@ class NsxVPluginV2(addr_pair_db.AllowedAddressPairsMixin,
LOG.debug('Update metadata for resource %s az=%s', LOG.debug('Update metadata for resource %s az=%s',
resource_id, az_name) resource_id, az_name)
md_proxy = self.get_metadata_proxy_handler(az_name) md_proxy = self.get_metadata_proxy_handler(az_name)
if md_proxy:
md_proxy.configure_router_edge(context, resource_id) md_proxy.configure_router_edge(context, resource_id)
self.setup_dhcp_edge_fw_rules(context, self, self.setup_dhcp_edge_fw_rules(context, self,

View File

@ -868,6 +868,7 @@ class EdgeManager(object):
if self.plugin.metadata_proxy_handler: if self.plugin.metadata_proxy_handler:
metadata_proxy_handler = self.plugin.get_metadata_proxy_handler( metadata_proxy_handler = self.plugin.get_metadata_proxy_handler(
az_name) az_name)
if metadata_proxy_handler:
metadata_proxy_handler.cleanup_router_edge(context, router_id, metadata_proxy_handler.cleanup_router_edge(context, router_id,
warn=True) warn=True)