Load custom config files
This commit is contained in:
parent
7b61be60d8
commit
c2beff08fc
5 changed files with 74 additions and 7 deletions
|
|
@ -100,21 +100,19 @@ class Functions:
|
|||
class Consts:
|
||||
easyhaproxy_config = "/etc/haproxy/static/config.yml"
|
||||
haproxy_config = "/etc/haproxy/haproxy.cfg"
|
||||
custom_config_folder = "/etc/haproxy/conf.d"
|
||||
certs_letsencrypt = "/certs/letsencrypt"
|
||||
certs_haproxy = "/certs/haproxy"
|
||||
|
||||
class DaemonizeHAProxy:
|
||||
def __init__(self):
|
||||
def __init__(self, custom_config_folder = None):
|
||||
self.process = None
|
||||
self.thread = None
|
||||
self.sleep_secs = None
|
||||
self.custom_config_folder = custom_config_folder if custom_config_folder is not None else Consts.custom_config_folder
|
||||
|
||||
def haproxy(self, action):
|
||||
if action == "start":
|
||||
self.__prepare("/usr/sbin/haproxy -W -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /var/run/haproxy.sock")
|
||||
else:
|
||||
pid = "".join(Functions().run_bash(Functions.HAPROXY_LOG, "cat /run/haproxy.pid", log_output=False))
|
||||
self.__prepare("/usr/sbin/haproxy -W -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -x /var/run/haproxy.sock -sf %s" % (pid))
|
||||
self.__prepare(self.get_haproxy_command(action))
|
||||
|
||||
if self.process is None:
|
||||
return
|
||||
|
|
@ -122,6 +120,15 @@ class DaemonizeHAProxy:
|
|||
self.thread = Process(target=self.__start, args=())
|
||||
self.thread.start()
|
||||
|
||||
def get_haproxy_command(self, action):
|
||||
custom_config_files = " ".join(["-f %s" % (file) for file in self.get_custom_config_files()])
|
||||
|
||||
if action == "start":
|
||||
return "/usr/sbin/haproxy -W -f /etc/haproxy/haproxy.cfg %s -p /run/haproxy.pid -S /var/run/haproxy.sock" % (custom_config_files)
|
||||
else:
|
||||
pid = "".join(Functions().run_bash(Functions.HAPROXY_LOG, "cat /run/haproxy.pid", log_output=False))
|
||||
return "/usr/sbin/haproxy -W -f /etc/haproxy/haproxy.cfg %s -p /run/haproxy.pid -x /var/run/haproxy.sock -sf %s" % (custom_config_files, pid)
|
||||
|
||||
def __prepare(self, command):
|
||||
source = Functions.HAPROXY_LOG
|
||||
if not isinstance(command, (list, tuple)):
|
||||
|
|
@ -172,6 +179,16 @@ class DaemonizeHAProxy:
|
|||
|
||||
time.sleep(self.sleep_secs)
|
||||
|
||||
def get_custom_config_files(self):
|
||||
if not os.path.exists(self.custom_config_folder):
|
||||
return {}
|
||||
|
||||
files = {}
|
||||
for file in os.listdir(self.custom_config_folder):
|
||||
if file.endswith(".cfg"):
|
||||
files[os.path.join(self.custom_config_folder, file)] = os.path.getmtime(os.path.join(self.custom_config_folder, file))
|
||||
return dict(sorted(files.items(), key=lambda t: t[0]))
|
||||
|
||||
|
||||
class Certbot:
|
||||
def __init__(self, certs, email, test_server):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue