Skip to content
This repository was archived by the owner on Dec 13, 2018. It is now read-only.

Commit 64af80c

Browse files
committed
not adding a frontend if its port has been bound to a tcp port
1 parent ec78575 commit 64af80c

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

haproxy/haproxycfg.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ def __init__(self, link_mode="", msg=""):
4343
self.routes_added = []
4444
self.require_default_route = False
4545
self.specs = None
46+
self.tcp_ports = set()
4647

4748
self.specs = self._initialize(self.link_mode)
4849

@@ -258,11 +259,12 @@ def _config_tcp_sections(self):
258259
tcp_ports = TcpHelper.get_tcp_port_list(details, services_aliases)
259260

260261
for tcp_port in set(tcp_ports):
261-
tcp_section, port_num = self.get_tcp_section(details, services_aliases, tcp_port)
262+
tcp_section, port_num = self._get_tcp_section(details, services_aliases, tcp_port)
263+
self.tcp_ports.add(port_num)
262264
cfg["listen port_%s" % port_num] = tcp_section
263265
return cfg
264266

265-
def get_tcp_section(self, details, services_aliases, tcp_port):
267+
def _get_tcp_section(self, details, services_aliases, tcp_port):
266268
tcp_section = []
267269
enable_ssl, port_num = TcpHelper.parse_port_string(tcp_port, self.ssl_bind_string)
268270
bind_string = get_bind_string(enable_ssl, port_num, self.ssl_bind_string, EXTRA_BIND_SETTINGS)
@@ -287,6 +289,11 @@ def _config_frontend_sections(self):
287289
monitor_uri_configured = False
288290
if vhosts:
289291
cfg, monitor_uri_configured = FrontendHelper.config_frontend_with_virtual_host(vhosts, ssl_bind_string)
292+
for port in self.tcp_ports:
293+
port_str = "frontend port_%s" % port
294+
if port_str in cfg:
295+
del cfg[port_str]
296+
290297
else:
291298
self.require_default_route = FrontendHelper.check_require_default_route(self.specs.get_routes(),
292299
self.routes_added)

0 commit comments

Comments
 (0)