Merge "Fix a topology bug in flavors support"
This commit is contained in:
commit
979144f2fd
|
@ -34,7 +34,7 @@ class AgentJinjaTemplater(object):
|
||||||
self.agent_template = jinja_env.get_template(
|
self.agent_template = jinja_env.get_template(
|
||||||
constants.AGENT_CONF_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(
|
return self.agent_template.render(
|
||||||
{'agent_server_ca': CONF.amphora_agent.agent_server_ca,
|
{'agent_server_ca': CONF.amphora_agent.agent_server_ca,
|
||||||
'agent_server_cert': CONF.amphora_agent.agent_server_cert,
|
'agent_server_cert': CONF.amphora_agent.agent_server_cert,
|
||||||
|
@ -58,4 +58,4 @@ class AgentJinjaTemplater(object):
|
||||||
'respawn_count': CONF.haproxy_amphora.respawn_count,
|
'respawn_count': CONF.haproxy_amphora.respawn_count,
|
||||||
'respawn_interval': CONF.haproxy_amphora.respawn_interval,
|
'respawn_interval': CONF.haproxy_amphora.respawn_interval,
|
||||||
'amphora_udp_driver': CONF.amphora_agent.amphora_udp_driver,
|
'amphora_udp_driver': CONF.amphora_agent.amphora_udp_driver,
|
||||||
'topology': CONF.controller_worker.loadbalancer_topology})
|
'topology': topology})
|
||||||
|
|
|
@ -70,9 +70,12 @@ class ComputeCreate(BaseComputeTask):
|
||||||
|
|
||||||
# Apply an Octavia flavor customizations
|
# Apply an Octavia flavor customizations
|
||||||
if flavor:
|
if flavor:
|
||||||
|
topology = flavor.get(constants.LOADBALANCER_TOPOLOGY,
|
||||||
|
CONF.controller_worker.loadbalancer_topology)
|
||||||
amp_compute_flavor = flavor.get(
|
amp_compute_flavor = flavor.get(
|
||||||
constants.COMPUTE_FLAVOR, CONF.controller_worker.amp_flavor_id)
|
constants.COMPUTE_FLAVOR, CONF.controller_worker.amp_flavor_id)
|
||||||
else:
|
else:
|
||||||
|
topology = CONF.controller_worker.loadbalancer_topology
|
||||||
amp_compute_flavor = CONF.controller_worker.amp_flavor_id
|
amp_compute_flavor = CONF.controller_worker.amp_flavor_id
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -82,7 +85,7 @@ class ComputeCreate(BaseComputeTask):
|
||||||
|
|
||||||
agent_cfg = agent_jinja_cfg.AgentJinjaTemplater()
|
agent_cfg = agent_jinja_cfg.AgentJinjaTemplater()
|
||||||
config_drive_files['/etc/octavia/amphora-agent.conf'] = (
|
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:
|
if user_data_config_drive:
|
||||||
udtemplater = user_data_jinja_cfg.UserDataJinjaCfg()
|
udtemplater = user_data_jinja_cfg.UserDataJinjaCfg()
|
||||||
user_data = udtemplater.build_user_data_config(
|
user_data = udtemplater.build_user_data_config(
|
||||||
|
|
|
@ -17,6 +17,7 @@ from oslo_config import fixture as oslo_fixture
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
|
|
||||||
from octavia.amphorae.backends.agent import agent_jinja_cfg
|
from octavia.amphorae.backends.agent import agent_jinja_cfg
|
||||||
|
from octavia.common import constants
|
||||||
import octavia.tests.unit.base as base
|
import octavia.tests.unit.base as base
|
||||||
|
|
||||||
AMP_ID = uuidutils.generate_uuid()
|
AMP_ID = uuidutils.generate_uuid()
|
||||||
|
@ -82,8 +83,9 @@ class AgentJinjaTestCase(base.TestCase):
|
||||||
'amphora_id = ' + AMP_ID + '\n'
|
'amphora_id = ' + AMP_ID + '\n'
|
||||||
'amphora_udp_driver = keepalived_lvs\n\n'
|
'amphora_udp_driver = keepalived_lvs\n\n'
|
||||||
'[controller_worker]\n'
|
'[controller_worker]\n'
|
||||||
'loadbalancer_topology = SINGLE')
|
'loadbalancer_topology = ' +
|
||||||
agent_cfg = ajc.build_agent_config(AMP_ID)
|
constants.TOPOLOGY_SINGLE)
|
||||||
|
agent_cfg = ajc.build_agent_config(AMP_ID, constants.TOPOLOGY_SINGLE)
|
||||||
self.assertEqual(expected_config, agent_cfg)
|
self.assertEqual(expected_config, agent_cfg)
|
||||||
|
|
||||||
def test_build_agent_config_with_interfaces_file(self):
|
def test_build_agent_config_with_interfaces_file(self):
|
||||||
|
@ -119,8 +121,10 @@ class AgentJinjaTestCase(base.TestCase):
|
||||||
'amphora_id = ' + AMP_ID + '\n'
|
'amphora_id = ' + AMP_ID + '\n'
|
||||||
'amphora_udp_driver = keepalived_lvs\n\n'
|
'amphora_udp_driver = keepalived_lvs\n\n'
|
||||||
'[controller_worker]\n'
|
'[controller_worker]\n'
|
||||||
'loadbalancer_topology = SINGLE')
|
'loadbalancer_topology = ' +
|
||||||
agent_cfg = ajc.build_agent_config(AMP_ID)
|
constants.TOPOLOGY_ACTIVE_STANDBY)
|
||||||
|
agent_cfg = ajc.build_agent_config(AMP_ID,
|
||||||
|
constants.TOPOLOGY_ACTIVE_STANDBY)
|
||||||
self.assertEqual(expected_config, agent_cfg)
|
self.assertEqual(expected_config, agent_cfg)
|
||||||
|
|
||||||
def test_build_agent_config_with_new_udp_driver(self):
|
def test_build_agent_config_with_new_udp_driver(self):
|
||||||
|
@ -155,6 +159,7 @@ class AgentJinjaTestCase(base.TestCase):
|
||||||
'amphora_id = ' + AMP_ID + '\n'
|
'amphora_id = ' + AMP_ID + '\n'
|
||||||
'amphora_udp_driver = new_udp_driver\n\n'
|
'amphora_udp_driver = new_udp_driver\n\n'
|
||||||
'[controller_worker]\n'
|
'[controller_worker]\n'
|
||||||
'loadbalancer_topology = SINGLE')
|
'loadbalancer_topology = ' +
|
||||||
agent_cfg = ajc.build_agent_config(AMP_ID)
|
constants.TOPOLOGY_SINGLE)
|
||||||
|
agent_cfg = ajc.build_agent_config(AMP_ID, constants.TOPOLOGY_SINGLE)
|
||||||
self.assertEqual(expected_config, agent_cfg)
|
self.assertEqual(expected_config, agent_cfg)
|
||||||
|
|
Loading…
Reference in New Issue