From: John Mulligan Date: Tue, 3 Oct 2023 17:19:18 +0000 (-0400) Subject: cephadm: add unit test coverage for deploying haproxy X-Git-Tag: v19.0.0~277^2~20 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=42991a1dc69abca1aec6fe7ec358d554dc17bce3;p=ceph.git cephadm: add unit test coverage for deploying haproxy Signed-off-by: John Mulligan --- diff --git a/src/cephadm/tests/test_deploy.py b/src/cephadm/tests/test_deploy.py index fff88ba637558..fdc6f582dbdc1 100644 --- a/src/cephadm/tests/test_deploy.py +++ b/src/cephadm/tests/test_deploy.py @@ -142,3 +142,45 @@ def test_deploy_keepalived_container(cephadm_fs, monkeypatch): assert (si.st_uid, si.st_gid) == (8765, 8765) assert _install_sysctl.call_count == 1 assert len(_install_sysctl.call_args[0][-1].get_sysctl_settings()) > 1 + + +def test_deploy_haproxy_container(cephadm_fs, monkeypatch): + mocks = _common_mp(monkeypatch) + _firewalld = mocks['Firewalld'] + _install_sysctl = mocks['install_sysctl'] + fsid = 'b01dbeef-701d-9abe-0000-e1e5a47004a7' + with with_cephadm_ctx([]) as ctx: + ctx.container_engine = mock_podman() + ctx.fsid = fsid + ctx.name = 'haproxy.yyz' + ctx.image = 'quay.io/lfeuwbo/haproxy:latest' + ctx.reconfig = False + ctx.config_blobs = { + 'config': 'XXXXXXX', + 'keyring': 'YYYYYY', + 'files': { + 'haproxy.cfg': 'bifrost', + }, + } + _cephadm._common_deploy(ctx) + + basedir = pathlib.Path(f'/var/lib/ceph/{fsid}/haproxy.yyz') + assert basedir.is_dir() + with open(basedir / 'unit.run') as f: + runfile_lines = f.read().splitlines() + assert 'podman' in runfile_lines[-1] + assert runfile_lines[-1].endswith( + 'quay.io/lfeuwbo/haproxy:latest haproxy -f /var/lib/haproxy/haproxy.cfg' + ) + _firewalld().open_ports.assert_not_called() + assert not (basedir / 'config').exists() + assert not (basedir / 'keyring').exists() + assert (basedir / 'haproxy').is_dir() + si = (basedir / 'haproxy').stat() + assert (si.st_uid, si.st_gid) == (8765, 8765) + with open(basedir / 'haproxy/haproxy.cfg') as f: + assert f.read() == 'bifrost' + si = os.fstat(f.fileno()) + assert (si.st_uid, si.st_gid) == (8765, 8765) + assert _install_sysctl.call_count == 1 + assert len(_install_sysctl.call_args[0][-1].get_sysctl_settings()) > 1