[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'
|
GROUP_NAME = 'neutron'
|
||||||
OPTIONS = [
|
OPTIONS = [
|
||||||
cfg.StrOpt('external_network',
|
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',
|
cfg.StrOpt('floating_network',
|
||||||
help="Network for creating floating IPs"),
|
help="Network for creating floating IPs"),
|
||||||
cfg.StrOpt('ipv4_cidr',
|
cfg.StrOpt('ipv4_cidr',
|
||||||
|
|||||||
@@ -17,17 +17,22 @@ from __future__ import absolute_import
|
|||||||
from oslo_log import log
|
from oslo_log import log
|
||||||
|
|
||||||
import tobiko
|
import tobiko
|
||||||
|
from tobiko import config
|
||||||
from tobiko.openstack import octavia
|
from tobiko.openstack import octavia
|
||||||
from tobiko.openstack import neutron
|
from tobiko.openstack import neutron
|
||||||
from tobiko.openstack.octavia import _constants
|
from tobiko.openstack.octavia import _constants
|
||||||
|
|
||||||
|
CONF = config.CONF
|
||||||
LOG = log.getLogger(__name__)
|
LOG = log.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def get_external_subnet(ip_version=4):
|
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:
|
try:
|
||||||
ext_subnet_list = neutron.find_network(
|
ext_subnet_list = neutron.find_network(**kw)['subnets']
|
||||||
**{'router:external': True})['subnets']
|
|
||||||
except tobiko.ObjectNotFound:
|
except tobiko.ObjectNotFound:
|
||||||
LOG.warning('External network not found')
|
LOG.warning('External network not found')
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user