- Implemented a two-stage Dockerfile: build environment with Python dependencies and lean runtime stage with HAProxy. - Added custom entrypoint script for dynamic Docker group adjustment. - Improved HAProxy command generation by introducing a static method for binary resolution. - Updated tests and functional logic to dynamically resolve the `haproxy` binary path. - Adjusted file permissions in E2E key generation script for better security. - Streamlined `.gitignore` by removing unnecessary exclusions.
60 lines
2.6 KiB
Python
60 lines
2.6 KiB
Python
import os
|
|
from functions import Consts
|
|
|
|
from functions import DaemonizeHAProxy
|
|
|
|
BIN = DaemonizeHAProxy.get_haproxy_bin()
|
|
|
|
|
|
def test_daemonize_haproxy():
|
|
daemon = DaemonizeHAProxy()
|
|
assert daemon is not None
|
|
|
|
def test_daemonize_haproxy_check_config():
|
|
daemon = DaemonizeHAProxy()
|
|
filed = daemon.get_custom_config_files()
|
|
assert filed == {}
|
|
|
|
def test_daemonize_haproxy_get_haproxy_command_start():
|
|
daemon = DaemonizeHAProxy()
|
|
command = daemon.get_haproxy_command(DaemonizeHAProxy.HAPROXY_START)
|
|
assert command == f"{BIN} -W -f {Consts.haproxy_config} -p /run/haproxy.pid -S /var/run/haproxy.sock"
|
|
|
|
def test_daemonize_haproxy_get_haproxy_command_reload_nopid():
|
|
daemon = DaemonizeHAProxy()
|
|
command = daemon.get_haproxy_command(DaemonizeHAProxy.HAPROXY_RELOAD)
|
|
assert command == f"{BIN} -W -f {Consts.haproxy_config} -p /run/haproxy.pid -S /var/run/haproxy.sock"
|
|
|
|
def test_daemonize_haproxy_get_haproxy_command_reload_pidinvalid():
|
|
daemon = DaemonizeHAProxy()
|
|
try:
|
|
with open("/tmp/temp.pid", 'w') as file:
|
|
file.write("-1001")
|
|
command = daemon.get_haproxy_command(DaemonizeHAProxy.HAPROXY_RELOAD, "/tmp/temp.pid")
|
|
assert command == f"{BIN} -W -f {Consts.haproxy_config} -p /tmp/temp.pid -S /var/run/haproxy.sock"
|
|
finally:
|
|
assert not os.path.exists("/tmp/temp.pid")
|
|
|
|
def test_daemonize_haproxy_get_haproxy_command_reload_existing_pin():
|
|
daemon = DaemonizeHAProxy()
|
|
try:
|
|
with open("/tmp/temp.pid", 'w') as file:
|
|
file.write("1")
|
|
command = daemon.get_haproxy_command(DaemonizeHAProxy.HAPROXY_RELOAD, "/tmp/temp.pid")
|
|
assert command == f"{BIN} -W -f {Consts.haproxy_config} -p /tmp/temp.pid -x /var/run/haproxy.sock -sf 1"
|
|
finally:
|
|
assert os.path.exists("/tmp/temp.pid")
|
|
os.unlink("/tmp/temp.pid")
|
|
|
|
def test_daemonize_haproxy2_check_config():
|
|
daemon = DaemonizeHAProxy(os.path.abspath(os.path.dirname(__file__)) + '/fixtures')
|
|
filed = daemon.get_custom_config_files()
|
|
assert filed == {
|
|
os.path.dirname(__file__) + "/fixtures/00_haproxy.cfg": os.path.getmtime(os.path.dirname(__file__) + "/fixtures/00_haproxy.cfg"),
|
|
os.path.dirname(__file__) + "/fixtures/10_haproxy.cfg": os.path.getmtime(os.path.dirname(__file__) + "/fixtures/10_haproxy.cfg")
|
|
}
|
|
|
|
def test_daemonize_haproxy2_get_haproxy_command_start():
|
|
daemon = DaemonizeHAProxy(os.path.abspath(os.path.dirname(__file__)) + '/fixtures')
|
|
command = daemon.get_haproxy_command(DaemonizeHAProxy.HAPROXY_START)
|
|
assert command == f"{BIN} -W -f {Consts.haproxy_config} -f {os.path.dirname(__file__)}/fixtures -p /run/haproxy.pid -S /var/run/haproxy.sock"
|