Skip to content

Commit

Permalink
Merge pull request #23 from LazyWolves/backend_params
Browse files Browse the repository at this point in the history
Add option for check_interval and maxcon for individual backends
  • Loading branch information
djmgit committed Jan 1, 2020
2 parents e1a8252 + 5705d1f commit 5461171
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
28 changes: 26 additions & 2 deletions src/core/haproxyupdater/confighandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ def update_config(**kwargs):
backend_port = kwargs.get("backend_port")
inactive_nodes_count = kwargs.get("inactive_nodes_count")
node_slots = kwargs.get("node_slots")
backend_maxconn = kwargs.get("backend_maxconn")
check_interval = kwargs.get("check_interval")
logger = kwargs.get("logger")

# Try reading the template file
Expand All @@ -52,8 +54,8 @@ def update_config(**kwargs):
logger.critical("Could not read template file : {}".format(template_file))
return False

node_template = " server node{node_id} {ip}:{port} check"
inactive_nodes_template = " server-template node {count} 10.0.0.1:8080 check disabled"
node_template = ConfigHandler.__get_node_template(backend_maxconn=backend_maxconn, check_interval=check_interval, inactive=False)
inactive_nodes_template = ConfigHandler.__get_node_template(backend_maxconn=backend_maxconn, check_interval=check_interval, inactive=True)

nodes_str = ""

Expand Down Expand Up @@ -109,6 +111,28 @@ def update_config(**kwargs):

return True

@staticmethod
def __get_node_template(**kwargs):
check_interval_str = ""
backend_maxconn_str = ""
backend_maxconn = kwargs.get("backend_maxconn")
check_interval = kwargs.get("check_interval")
inactive = kwargs.get("inactive", False)
node_template = ""

if backend_maxconn != None:
backend_maxconn_str = "maxconn {val}".format(val=backend_maxconn)

if check_interval != None:
check_interval_str = "inter {val}".format(val=check_interval)

if inactive == False:
node_template = " server node{node_id} {ip}:{port} check " + check_interval_str + " " + backend_maxconn_str
else:
node_template = " server-template node {count} 10.0.0.1:8080 check " + check_interval_str + " " + backend_maxconn_str + " disabled"

return node_template

@staticmethod
def read_write_file(**kwargs):

Expand Down
6 changes: 6 additions & 0 deletions src/core/haproxyupdater/haproxyupdate.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ def __init__(self, **kwargs):
self.update_type = kwargs.get("update_type")
self.node_slots = int(kwargs.get("node_slots"))
self.service_name = kwargs.get("service_name")
self.backend_maxconn = kwargs.get("backend_maxconn")
self.check_interval = kwargs.get("check_interval")
self.logger = kwargs.get("logger")

"""
Expand Down Expand Up @@ -211,6 +213,8 @@ def update_haproxy_by_config_reload(self, update_only=False):
node_list=self.node_list,
backend_port=self.backend_port,
node_slots=self.node_slots,
backend_maxconn=self.backend_maxconn,
check_interval=self.check_interval,
logger=self.logger
)

Expand Down Expand Up @@ -258,6 +262,8 @@ def __update_haproxy_by_runtime(self):
updated = ConfigHandler.update_config(haproxy_config_file=self.haproxy_config_file,
template_file=self.template_file,
node_list=self.node_list,
backend_maxconn=self.backend_maxconn,
check_interval=self.check_interval,
backend_port=self.backend_port,
inactive_nodes_count=stats.get("inactive_nodes_count"),
logger=self.logger)
Expand Down

0 comments on commit 5461171

Please sign in to comment.