195
196
HAPROXY_CONF = '/etc/haproxy/haproxy.cfg'
196
197
HAPROXY_DEFAULT = '/etc/default/haproxy'
197
HAPROXY_CONTENT = """global
199
log 127.0.0.1 local1 notice
220
stats realm Haproxy\ Statistics
222
stats auth admin:password
224
SERVICE_FRAGMENT = """listen {0} 0.0.0.0:{1}
228
SERVER_ENTRY = """ server {0} {1}:{2} check
232
def configure_haproxy(units, service_ports):
233
conf = HAPROXY_CONTENT
234
for service, port in service_ports.iteritems():
235
conf = conf + SERVICE_FRAGMENT.format(service,
237
for unit, address in units.iteritems():
238
conf = conf + SERVER_ENTRY.format(unit,
200
def configure_haproxy(units, service_ports, template_dir=None):
201
template_dir = template_dir or 'templates'
205
'service_ports': service_ports
207
templates = jinja2.Environment(
208
loader=jinja2.FileSystemLoader(template_dir)
210
template = templates.get_template(
211
os.path.basename(HAPROXY_CONF)
241
213
with open(HAPROXY_CONF, 'w') as f:
214
f.write(template.render(context))
243
215
with open(HAPROXY_DEFAULT, 'w') as f:
244
216
f.write('ENABLED=1')