Merge "NSX|v: get internal net by az fix" into stable/ocata

This commit is contained in:
Jenkins 2017-08-16 16:24:00 +00:00 committed by Gerrit Code Review
commit d087c8718d
3 changed files with 15 additions and 6 deletions

View File

@ -33,6 +33,7 @@ from vmware_nsx.db import db as nsx_db
from vmware_nsx.db import nsxv_models
from vmware_nsx.extensions import dhcp_mtu as ext_dhcp_mtu
from vmware_nsx.extensions import dns_search_domain as ext_dns_search_domain
from vmware_nsx.plugins.nsx_v import availability_zones as nsx_az
from vmware_nsx.plugins.nsx_v.vshield.common import constants
NsxvEdgeDhcpStaticBinding = nsxv_models.NsxvEdgeDhcpStaticBinding
@ -378,7 +379,8 @@ def create_nsxv_internal_network(session, network_purpose,
'az': availability_zone})
def get_nsxv_internal_network(session, network_purpose, availability_zone):
def get_nsxv_internal_network(session, network_purpose, availability_zone,
default_fallback=True):
with session.begin(subtransactions=True):
net_list = (session.query(nsxv_models.NsxvInternalNetworks).
filter_by(network_purpose=network_purpose,
@ -386,16 +388,23 @@ def get_nsxv_internal_network(session, network_purpose, availability_zone):
if net_list:
# Should have only one results as purpose+az are the keys
return net_list[0]
else:
elif default_fallback and availability_zone != nsx_az.DEFAULT_NAME:
# try the default availability zone, since this zone does not
# have his own
# have his own internal edge
net_list = (session.query(nsxv_models.NsxvInternalNetworks).
filter_by(network_purpose=network_purpose,
availability_zone='default').all())
availability_zone=nsx_az.DEFAULT_NAME).all())
if net_list:
return net_list[0]
def get_nsxv_internal_network_for_az(session, network_purpose,
availability_zone):
return get_nsxv_internal_network(session, network_purpose,
availability_zone,
default_fallback=False)
def get_nsxv_internal_networks(session, network_purpose):
with session.begin(subtransactions=True):
return (session.query(nsxv_models.NsxvInternalNetworks).

View File

@ -154,7 +154,7 @@ class NsxVMetadataProxyHandler(object):
def _get_internal_net_by_az(self, context):
# Get the internal network for the current az
int_net = nsxv_db.get_nsxv_internal_network(
int_net = nsxv_db.get_nsxv_internal_network_for_az(
context.session,
vcns_const.InternalEdgePurposes.INTER_EDGE_PURPOSE,
self.az.name)

View File

@ -61,7 +61,7 @@ def nsx_redo_metadata_cfg_for_az(az, edgeapi):
LOG.info(_LI("Updating MetaData for availability zone: %s"), az.name)
# Get the list of internal networks for this AZ
db_net = nsxv_db.get_nsxv_internal_network(
db_net = nsxv_db.get_nsxv_internal_network_for_az(
edgeapi.context.session,
vcns_constants.InternalEdgePurposes.INTER_EDGE_PURPOSE,
az.name)