Fixes interface_file jinja misconfiguration

The amphora jinja templater renders the interfaces_file option with a string of 'None'.
This causes failures while communicating with the Amphora.

Change-Id: I57b16387cc84b3942f0af5fc92320513baaff76e
Closes-Bug: #1516827
This commit is contained in:
ptoohill1 2015-11-16 18:09:29 -06:00
parent a0dc14f046
commit b7f1dbc03e
2 changed files with 77 additions and 48 deletions
octavia
amphorae/backends/agent/templates
tests/unit/amphorae/backends/agent

@ -33,5 +33,7 @@ heartbeat_key = {{ heartbeat_key }}
agent_server_ca = {{ agent_server_ca }}
agent_server_cert = {{ agent_server_cert }}
agent_server_network_dir = {{ agent_server_network_dir }}
{% if agent_server_network_file -%}
agent_server_network_file = {{ agent_server_network_file }}
{% endif -%}
amphora_id = {{ amphora_id }}

@ -26,55 +26,82 @@ class AgentJinjaTestCase(base.TestCase):
def setUp(self):
super(AgentJinjaTestCase, self).setUp()
conf = oslo_fixture.Config(cfg.CONF)
conf.config(debug=False)
conf.config(group="amphora_agent",
agent_server_ca='/etc/octavia/certs/client_ca.pem')
conf.config(group="amphora_agent",
agent_server_cert='/etc/octavia/certs/server.pem')
conf.config(group="amphora_agent",
agent_server_network_dir='/etc/network/interfaces.d/')
conf.config(group="amphora_agent",
agent_server_network_file='/etc/network/interfaces')
conf.config(group="haproxy_amphora",
base_cert_dir='/var/lib/octavia/certs')
conf.config(group="haproxy_amphora", base_path='/var/lib/octavia')
conf.config(group="haproxy_amphora", bind_host='0.0.0.0')
conf.config(group="haproxy_amphora", bind_port=9443)
conf.config(group="haproxy_amphora", haproxy_cmd='/usr/sbin/haproxy')
conf.config(group="haproxy_amphora", respawn_count=2)
conf.config(group="haproxy_amphora", respawn_interval=2)
conf.config(group="health_manager",
controller_ip_port_list=['192.0.2.10:5555'])
conf.config(group="health_manager", heartbeat_interval=10)
conf.config(group="health_manager", heartbeat_key='TEST')
self.expected_config = ('\n[DEFAULT]\n'
'debug = False\n\n'
'[haproxy_amphora]\n'
'base_cert_dir = /var/lib/octavia/certs\n'
'base_path = /var/lib/octavia\n'
'bind_host = 0.0.0.0\n'
'bind_port = 9443\n'
'haproxy_cmd = /usr/sbin/haproxy\n'
'respawn_count = 2\n'
'respawn_interval = 2\n\n'
'[health_manager]\n'
'controller_ip_port_list = 192.0.2.10:5555\n'
'heartbeat_interval = 10\n'
'heartbeat_key = TEST\n\n'
'[amphora_agent]\n'
'agent_server_ca = '
'/etc/octavia/certs/client_ca.pem\n'
'agent_server_cert = '
'/etc/octavia/certs/server.pem\n'
'agent_server_network_dir = '
'/etc/network/interfaces.d/\n'
'agent_server_network_file = '
'/etc/network/interfaces\n'
'amphora_id = ' + AMP_ID)
self.conf = oslo_fixture.Config(cfg.CONF)
self.conf.config(debug=False)
self.conf.config(group="amphora_agent",
agent_server_ca='/etc/octavia/certs/client_ca.pem')
self.conf.config(group="amphora_agent",
agent_server_cert='/etc/octavia/certs/server.pem')
self.conf.config(group="amphora_agent",
agent_server_network_dir='/etc/network/interfaces.d/')
self.conf.config(group="haproxy_amphora",
base_cert_dir='/var/lib/octavia/certs')
self.conf.config(group="haproxy_amphora", base_path='/var/lib/octavia')
self.conf.config(group="haproxy_amphora", bind_host='0.0.0.0')
self.conf.config(group="haproxy_amphora", bind_port=9443)
self.conf.config(group="haproxy_amphora",
haproxy_cmd='/usr/sbin/haproxy')
self.conf.config(group="haproxy_amphora", respawn_count=2)
self.conf.config(group="haproxy_amphora", respawn_interval=2)
self.conf.config(group="health_manager",
controller_ip_port_list=['192.0.2.10:5555'])
self.conf.config(group="health_manager", heartbeat_interval=10)
self.conf.config(group="health_manager", heartbeat_key='TEST')
def test_build_agent_config(self):
ajc = agent_jinja_cfg.AgentJinjaTemplater()
expected_config = ('\n[DEFAULT]\n'
'debug = False\n\n'
'[haproxy_amphora]\n'
'base_cert_dir = /var/lib/octavia/certs\n'
'base_path = /var/lib/octavia\n'
'bind_host = 0.0.0.0\n'
'bind_port = 9443\n'
'haproxy_cmd = /usr/sbin/haproxy\n'
'respawn_count = 2\n'
'respawn_interval = 2\n\n'
'[health_manager]\n'
'controller_ip_port_list = 192.0.2.10:5555\n'
'heartbeat_interval = 10\n'
'heartbeat_key = TEST\n\n'
'[amphora_agent]\n'
'agent_server_ca = '
'/etc/octavia/certs/client_ca.pem\n'
'agent_server_cert = '
'/etc/octavia/certs/server.pem\n'
'agent_server_network_dir = '
'/etc/network/interfaces.d/\n'
'amphora_id = ' + AMP_ID)
agent_cfg = ajc.build_agent_config(AMP_ID)
self.assertEqual(self.expected_config, agent_cfg)
self.assertEqual(expected_config, agent_cfg)
def test_build_agent_config_with_interfaces_file(self):
ajc = agent_jinja_cfg.AgentJinjaTemplater()
self.conf.config(group="amphora_agent",
agent_server_network_file='/etc/network/interfaces')
expected_config = ('\n[DEFAULT]\n'
'debug = False\n\n'
'[haproxy_amphora]\n'
'base_cert_dir = /var/lib/octavia/certs\n'
'base_path = /var/lib/octavia\n'
'bind_host = 0.0.0.0\n'
'bind_port = 9443\n'
'haproxy_cmd = /usr/sbin/haproxy\n'
'respawn_count = 2\n'
'respawn_interval = 2\n\n'
'[health_manager]\n'
'controller_ip_port_list = 192.0.2.10:5555\n'
'heartbeat_interval = 10\n'
'heartbeat_key = TEST\n\n'
'[amphora_agent]\n'
'agent_server_ca = '
'/etc/octavia/certs/client_ca.pem\n'
'agent_server_cert = '
'/etc/octavia/certs/server.pem\n'
'agent_server_network_dir = '
'/etc/network/interfaces.d/\n'
'agent_server_network_file = '
'/etc/network/interfaces\n'
'amphora_id = ' + AMP_ID)
agent_cfg = ajc.build_agent_config(AMP_ID)
self.assertEqual(expected_config, agent_cfg)