[octavia] Choose right external network when there is more than one
In some cases there may be more than one external network in Openstack. When creating a LB, the proper external network needs to be chosen. Change-Id: Iae5c9a803bdec8a1b5a8973f1747f72d90c20279
This commit is contained in:
@@ -20,7 +20,8 @@ from oslo_config import cfg
|
||||
GROUP_NAME = 'neutron'
|
||||
OPTIONS = [
|
||||
cfg.StrOpt('external_network',
|
||||
help="Network for creating ports on an external network"),
|
||||
help="Network for creating ports on an external network",
|
||||
default="public"),
|
||||
cfg.StrOpt('floating_network',
|
||||
help="Network for creating floating IPs"),
|
||||
cfg.StrOpt('ipv4_cidr',
|
||||
|
@@ -17,17 +17,22 @@ from __future__ import absolute_import
|
||||
from oslo_log import log
|
||||
|
||||
import tobiko
|
||||
from tobiko import config
|
||||
from tobiko.openstack import octavia
|
||||
from tobiko.openstack import neutron
|
||||
from tobiko.openstack.octavia import _constants
|
||||
|
||||
CONF = config.CONF
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
|
||||
def get_external_subnet(ip_version=4):
|
||||
kw = {'router:external': True}
|
||||
if len(neutron.list_networks(**{'router:external': True})) > 1:
|
||||
kw['name'] = CONF.neutron.external_network
|
||||
|
||||
try:
|
||||
ext_subnet_list = neutron.find_network(
|
||||
**{'router:external': True})['subnets']
|
||||
ext_subnet_list = neutron.find_network(**kw)['subnets']
|
||||
except tobiko.ObjectNotFound:
|
||||
LOG.warning('External network not found')
|
||||
return None
|
||||
|
Reference in New Issue
Block a user