Merge "Fix a topology bug in flavors support"

This commit is contained in:
Zuul 2019-01-30 01:28:34 +00:00 committed by Gerrit Code Review
commit 979144f2fd
3 changed files with 17 additions and 9 deletions

View File

@ -34,7 +34,7 @@ class AgentJinjaTemplater(object):
self.agent_template = jinja_env.get_template(
constants.AGENT_CONF_TEMPLATE)
def build_agent_config(self, amphora_id):
def build_agent_config(self, amphora_id, topology):
return self.agent_template.render(
{'agent_server_ca': CONF.amphora_agent.agent_server_ca,
'agent_server_cert': CONF.amphora_agent.agent_server_cert,
@ -58,4 +58,4 @@ class AgentJinjaTemplater(object):
'respawn_count': CONF.haproxy_amphora.respawn_count,
'respawn_interval': CONF.haproxy_amphora.respawn_interval,
'amphora_udp_driver': CONF.amphora_agent.amphora_udp_driver,
'topology': CONF.controller_worker.loadbalancer_topology})
'topology': topology})

View File

@ -70,9 +70,12 @@ class ComputeCreate(BaseComputeTask):
# Apply an Octavia flavor customizations
if flavor:
topology = flavor.get(constants.LOADBALANCER_TOPOLOGY,
CONF.controller_worker.loadbalancer_topology)
amp_compute_flavor = flavor.get(
constants.COMPUTE_FLAVOR, CONF.controller_worker.amp_flavor_id)
else:
topology = CONF.controller_worker.loadbalancer_topology
amp_compute_flavor = CONF.controller_worker.amp_flavor_id
try:
@ -82,7 +85,7 @@ class ComputeCreate(BaseComputeTask):
agent_cfg = agent_jinja_cfg.AgentJinjaTemplater()
config_drive_files['/etc/octavia/amphora-agent.conf'] = (
agent_cfg.build_agent_config(amphora_id))
agent_cfg.build_agent_config(amphora_id, topology))
if user_data_config_drive:
udtemplater = user_data_jinja_cfg.UserDataJinjaCfg()
user_data = udtemplater.build_user_data_config(

View File

@ -17,6 +17,7 @@ from oslo_config import fixture as oslo_fixture
from oslo_utils import uuidutils
from octavia.amphorae.backends.agent import agent_jinja_cfg
from octavia.common import constants
import octavia.tests.unit.base as base
AMP_ID = uuidutils.generate_uuid()
@ -82,8 +83,9 @@ class AgentJinjaTestCase(base.TestCase):
'amphora_id = ' + AMP_ID + '\n'
'amphora_udp_driver = keepalived_lvs\n\n'
'[controller_worker]\n'
'loadbalancer_topology = SINGLE')
agent_cfg = ajc.build_agent_config(AMP_ID)
'loadbalancer_topology = ' +
constants.TOPOLOGY_SINGLE)
agent_cfg = ajc.build_agent_config(AMP_ID, constants.TOPOLOGY_SINGLE)
self.assertEqual(expected_config, agent_cfg)
def test_build_agent_config_with_interfaces_file(self):
@ -119,8 +121,10 @@ class AgentJinjaTestCase(base.TestCase):
'amphora_id = ' + AMP_ID + '\n'
'amphora_udp_driver = keepalived_lvs\n\n'
'[controller_worker]\n'
'loadbalancer_topology = SINGLE')
agent_cfg = ajc.build_agent_config(AMP_ID)
'loadbalancer_topology = ' +
constants.TOPOLOGY_ACTIVE_STANDBY)
agent_cfg = ajc.build_agent_config(AMP_ID,
constants.TOPOLOGY_ACTIVE_STANDBY)
self.assertEqual(expected_config, agent_cfg)
def test_build_agent_config_with_new_udp_driver(self):
@ -155,6 +159,7 @@ class AgentJinjaTestCase(base.TestCase):
'amphora_id = ' + AMP_ID + '\n'
'amphora_udp_driver = new_udp_driver\n\n'
'[controller_worker]\n'
'loadbalancer_topology = SINGLE')
agent_cfg = ajc.build_agent_config(AMP_ID)
'loadbalancer_topology = ' +
constants.TOPOLOGY_SINGLE)
agent_cfg = ajc.build_agent_config(AMP_ID, constants.TOPOLOGY_SINGLE)
self.assertEqual(expected_config, agent_cfg)