Rename file_config_service to raw_config_io_service and update references
This commit is contained in:
@@ -129,7 +129,7 @@ Reference: `Docs/Refactoring.md` for full analysis of each issue.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Task 6 — Rename confusing config service files
|
### Task 6 — Rename confusing config service files (✅ completed)
|
||||||
|
|
||||||
**Priority**: Medium
|
**Priority**: Medium
|
||||||
**Refactoring ref**: Refactoring.md §3
|
**Refactoring ref**: Refactoring.md §3
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ from app.models.file_config import (
|
|||||||
JailConfigFileEnabledUpdate,
|
JailConfigFileEnabledUpdate,
|
||||||
JailConfigFilesResponse,
|
JailConfigFilesResponse,
|
||||||
)
|
)
|
||||||
from app.services import file_config_service
|
from app.services import raw_config_io_service
|
||||||
from app.services.file_config_service import (
|
from app.services.raw_config_io_service import (
|
||||||
ConfigDirError,
|
ConfigDirError,
|
||||||
ConfigFileExistsError,
|
ConfigFileExistsError,
|
||||||
ConfigFileNameError,
|
ConfigFileNameError,
|
||||||
@@ -134,7 +134,7 @@ async def list_jail_config_files(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
return await file_config_service.list_jail_config_files(config_dir)
|
return await raw_config_io_service.list_jail_config_files(config_dir)
|
||||||
except ConfigDirError as exc:
|
except ConfigDirError as exc:
|
||||||
raise _service_unavailable(str(exc)) from exc
|
raise _service_unavailable(str(exc)) from exc
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@ async def get_jail_config_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
return await file_config_service.get_jail_config_file(config_dir, filename)
|
return await raw_config_io_service.get_jail_config_file(config_dir, filename)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -204,7 +204,7 @@ async def write_jail_config_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
await file_config_service.write_jail_config_file(config_dir, filename, body)
|
await raw_config_io_service.write_jail_config_file(config_dir, filename, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -244,7 +244,7 @@ async def set_jail_config_file_enabled(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
await file_config_service.set_jail_config_enabled(
|
await raw_config_io_service.set_jail_config_enabled(
|
||||||
config_dir, filename, body.enabled
|
config_dir, filename, body.enabled
|
||||||
)
|
)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
@@ -285,7 +285,7 @@ async def create_jail_config_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
filename = await file_config_service.create_jail_config_file(config_dir, body)
|
filename = await raw_config_io_service.create_jail_config_file(config_dir, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileExistsError:
|
except ConfigFileExistsError:
|
||||||
@@ -338,7 +338,7 @@ async def get_filter_file_raw(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
return await file_config_service.get_filter_file(config_dir, name)
|
return await raw_config_io_service.get_filter_file(config_dir, name)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -373,7 +373,7 @@ async def write_filter_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
await file_config_service.write_filter_file(config_dir, name, body)
|
await raw_config_io_service.write_filter_file(config_dir, name, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -412,7 +412,7 @@ async def create_filter_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
filename = await file_config_service.create_filter_file(config_dir, body)
|
filename = await raw_config_io_service.create_filter_file(config_dir, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileExistsError:
|
except ConfigFileExistsError:
|
||||||
@@ -454,7 +454,7 @@ async def list_action_files(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
return await file_config_service.list_action_files(config_dir)
|
return await raw_config_io_service.list_action_files(config_dir)
|
||||||
except ConfigDirError as exc:
|
except ConfigDirError as exc:
|
||||||
raise _service_unavailable(str(exc)) from exc
|
raise _service_unavailable(str(exc)) from exc
|
||||||
|
|
||||||
@@ -486,7 +486,7 @@ async def get_action_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
return await file_config_service.get_action_file(config_dir, name)
|
return await raw_config_io_service.get_action_file(config_dir, name)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -521,7 +521,7 @@ async def write_action_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
await file_config_service.write_action_file(config_dir, name, body)
|
await raw_config_io_service.write_action_file(config_dir, name, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -560,7 +560,7 @@ async def create_action_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
filename = await file_config_service.create_action_file(config_dir, body)
|
filename = await raw_config_io_service.create_action_file(config_dir, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileExistsError:
|
except ConfigFileExistsError:
|
||||||
@@ -613,7 +613,7 @@ async def get_parsed_filter(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
return await file_config_service.get_parsed_filter_file(config_dir, name)
|
return await raw_config_io_service.get_parsed_filter_file(config_dir, name)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -651,7 +651,7 @@ async def update_parsed_filter(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
await file_config_service.update_parsed_filter_file(config_dir, name, body)
|
await raw_config_io_service.update_parsed_filter_file(config_dir, name, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -698,7 +698,7 @@ async def get_parsed_action(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
return await file_config_service.get_parsed_action_file(config_dir, name)
|
return await raw_config_io_service.get_parsed_action_file(config_dir, name)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -736,7 +736,7 @@ async def update_parsed_action(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
await file_config_service.update_parsed_action_file(config_dir, name, body)
|
await raw_config_io_service.update_parsed_action_file(config_dir, name, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -783,7 +783,7 @@ async def get_parsed_jail_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
return await file_config_service.get_parsed_jail_file(config_dir, filename)
|
return await raw_config_io_service.get_parsed_jail_file(config_dir, filename)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
@@ -821,7 +821,7 @@ async def update_parsed_jail_file(
|
|||||||
"""
|
"""
|
||||||
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
config_dir: str = request.app.state.settings.fail2ban_config_dir
|
||||||
try:
|
try:
|
||||||
await file_config_service.update_parsed_jail_file(config_dir, filename, body)
|
await raw_config_io_service.update_parsed_jail_file(config_dir, filename, body)
|
||||||
except ConfigFileNameError as exc:
|
except ConfigFileNameError as exc:
|
||||||
raise _bad_request(str(exc)) from exc
|
raise _bad_request(str(exc)) from exc
|
||||||
except ConfigFileNotFoundError:
|
except ConfigFileNotFoundError:
|
||||||
|
|||||||
1011
backend/app/services/raw_config_io_service.py
Normal file
1011
backend/app/services/raw_config_io_service.py
Normal file
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@ from app.models.file_config import (
|
|||||||
JailConfigFileContent,
|
JailConfigFileContent,
|
||||||
JailConfigFilesResponse,
|
JailConfigFilesResponse,
|
||||||
)
|
)
|
||||||
from app.services.file_config_service import (
|
from app.services.raw_config_io_service import (
|
||||||
ConfigDirError,
|
ConfigDirError,
|
||||||
ConfigFileExistsError,
|
ConfigFileExistsError,
|
||||||
ConfigFileNameError,
|
ConfigFileNameError,
|
||||||
@@ -112,7 +112,7 @@ class TestListJailConfigFiles:
|
|||||||
self, file_config_client: AsyncClient
|
self, file_config_client: AsyncClient
|
||||||
) -> None:
|
) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.list_jail_config_files",
|
"app.routers.file_config.raw_config_io_service.list_jail_config_files",
|
||||||
AsyncMock(return_value=_jail_files_resp()),
|
AsyncMock(return_value=_jail_files_resp()),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/jail-files")
|
resp = await file_config_client.get("/api/config/jail-files")
|
||||||
@@ -126,7 +126,7 @@ class TestListJailConfigFiles:
|
|||||||
self, file_config_client: AsyncClient
|
self, file_config_client: AsyncClient
|
||||||
) -> None:
|
) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.list_jail_config_files",
|
"app.routers.file_config.raw_config_io_service.list_jail_config_files",
|
||||||
AsyncMock(side_effect=ConfigDirError("not found")),
|
AsyncMock(side_effect=ConfigDirError("not found")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/jail-files")
|
resp = await file_config_client.get("/api/config/jail-files")
|
||||||
@@ -157,7 +157,7 @@ class TestGetJailConfigFile:
|
|||||||
content="[sshd]\nenabled = true\n",
|
content="[sshd]\nenabled = true\n",
|
||||||
)
|
)
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_jail_config_file",
|
"app.routers.file_config.raw_config_io_service.get_jail_config_file",
|
||||||
AsyncMock(return_value=content),
|
AsyncMock(return_value=content),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/jail-files/sshd.conf")
|
resp = await file_config_client.get("/api/config/jail-files/sshd.conf")
|
||||||
@@ -167,7 +167,7 @@ class TestGetJailConfigFile:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_jail_config_file",
|
"app.routers.file_config.raw_config_io_service.get_jail_config_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing.conf")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing.conf")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/jail-files/missing.conf")
|
resp = await file_config_client.get("/api/config/jail-files/missing.conf")
|
||||||
@@ -178,7 +178,7 @@ class TestGetJailConfigFile:
|
|||||||
self, file_config_client: AsyncClient
|
self, file_config_client: AsyncClient
|
||||||
) -> None:
|
) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_jail_config_file",
|
"app.routers.file_config.raw_config_io_service.get_jail_config_file",
|
||||||
AsyncMock(side_effect=ConfigFileNameError("bad name")),
|
AsyncMock(side_effect=ConfigFileNameError("bad name")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/jail-files/bad.txt")
|
resp = await file_config_client.get("/api/config/jail-files/bad.txt")
|
||||||
@@ -194,7 +194,7 @@ class TestGetJailConfigFile:
|
|||||||
class TestSetJailConfigEnabled:
|
class TestSetJailConfigEnabled:
|
||||||
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.set_jail_config_enabled",
|
"app.routers.file_config.raw_config_io_service.set_jail_config_enabled",
|
||||||
AsyncMock(return_value=None),
|
AsyncMock(return_value=None),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -206,7 +206,7 @@ class TestSetJailConfigEnabled:
|
|||||||
|
|
||||||
async def test_404_file_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_file_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.set_jail_config_enabled",
|
"app.routers.file_config.raw_config_io_service.set_jail_config_enabled",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing.conf")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing.conf")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -232,7 +232,7 @@ class TestGetFilterFileRaw:
|
|||||||
|
|
||||||
async def test_200_returns_content(self, file_config_client: AsyncClient) -> None:
|
async def test_200_returns_content(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_filter_file",
|
"app.routers.file_config.raw_config_io_service.get_filter_file",
|
||||||
AsyncMock(return_value=_conf_file_content("nginx")),
|
AsyncMock(return_value=_conf_file_content("nginx")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/filters/nginx/raw")
|
resp = await file_config_client.get("/api/config/filters/nginx/raw")
|
||||||
@@ -242,7 +242,7 @@ class TestGetFilterFileRaw:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_filter_file",
|
"app.routers.file_config.raw_config_io_service.get_filter_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/filters/missing/raw")
|
resp = await file_config_client.get("/api/config/filters/missing/raw")
|
||||||
@@ -258,7 +258,7 @@ class TestGetFilterFileRaw:
|
|||||||
class TestUpdateFilterFile:
|
class TestUpdateFilterFile:
|
||||||
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.write_filter_file",
|
"app.routers.file_config.raw_config_io_service.write_filter_file",
|
||||||
AsyncMock(return_value=None),
|
AsyncMock(return_value=None),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -270,7 +270,7 @@ class TestUpdateFilterFile:
|
|||||||
|
|
||||||
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.write_filter_file",
|
"app.routers.file_config.raw_config_io_service.write_filter_file",
|
||||||
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -289,7 +289,7 @@ class TestUpdateFilterFile:
|
|||||||
class TestCreateFilterFile:
|
class TestCreateFilterFile:
|
||||||
async def test_201_creates_file(self, file_config_client: AsyncClient) -> None:
|
async def test_201_creates_file(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.create_filter_file",
|
"app.routers.file_config.raw_config_io_service.create_filter_file",
|
||||||
AsyncMock(return_value="myfilter.conf"),
|
AsyncMock(return_value="myfilter.conf"),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.post(
|
resp = await file_config_client.post(
|
||||||
@@ -302,7 +302,7 @@ class TestCreateFilterFile:
|
|||||||
|
|
||||||
async def test_409_conflict(self, file_config_client: AsyncClient) -> None:
|
async def test_409_conflict(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.create_filter_file",
|
"app.routers.file_config.raw_config_io_service.create_filter_file",
|
||||||
AsyncMock(side_effect=ConfigFileExistsError("myfilter.conf")),
|
AsyncMock(side_effect=ConfigFileExistsError("myfilter.conf")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.post(
|
resp = await file_config_client.post(
|
||||||
@@ -314,7 +314,7 @@ class TestCreateFilterFile:
|
|||||||
|
|
||||||
async def test_400_invalid_name(self, file_config_client: AsyncClient) -> None:
|
async def test_400_invalid_name(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.create_filter_file",
|
"app.routers.file_config.raw_config_io_service.create_filter_file",
|
||||||
AsyncMock(side_effect=ConfigFileNameError("bad/../name")),
|
AsyncMock(side_effect=ConfigFileNameError("bad/../name")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.post(
|
resp = await file_config_client.post(
|
||||||
@@ -387,7 +387,7 @@ class TestGetActionFileRaw:
|
|||||||
|
|
||||||
async def test_200_returns_content(self, file_config_client: AsyncClient) -> None:
|
async def test_200_returns_content(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_action_file",
|
"app.routers.file_config.raw_config_io_service.get_action_file",
|
||||||
AsyncMock(return_value=_conf_file_content("iptables")),
|
AsyncMock(return_value=_conf_file_content("iptables")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/actions/iptables/raw")
|
resp = await file_config_client.get("/api/config/actions/iptables/raw")
|
||||||
@@ -397,7 +397,7 @@ class TestGetActionFileRaw:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_action_file",
|
"app.routers.file_config.raw_config_io_service.get_action_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/actions/missing/raw")
|
resp = await file_config_client.get("/api/config/actions/missing/raw")
|
||||||
@@ -408,7 +408,7 @@ class TestGetActionFileRaw:
|
|||||||
self, file_config_client: AsyncClient
|
self, file_config_client: AsyncClient
|
||||||
) -> None:
|
) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_action_file",
|
"app.routers.file_config.raw_config_io_service.get_action_file",
|
||||||
AsyncMock(side_effect=ConfigDirError("no dir")),
|
AsyncMock(side_effect=ConfigDirError("no dir")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/actions/iptables/raw")
|
resp = await file_config_client.get("/api/config/actions/iptables/raw")
|
||||||
@@ -426,7 +426,7 @@ class TestUpdateActionFileRaw:
|
|||||||
|
|
||||||
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.write_action_file",
|
"app.routers.file_config.raw_config_io_service.write_action_file",
|
||||||
AsyncMock(return_value=None),
|
AsyncMock(return_value=None),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -438,7 +438,7 @@ class TestUpdateActionFileRaw:
|
|||||||
|
|
||||||
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.write_action_file",
|
"app.routers.file_config.raw_config_io_service.write_action_file",
|
||||||
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -450,7 +450,7 @@ class TestUpdateActionFileRaw:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.write_action_file",
|
"app.routers.file_config.raw_config_io_service.write_action_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -462,7 +462,7 @@ class TestUpdateActionFileRaw:
|
|||||||
|
|
||||||
async def test_400_invalid_name(self, file_config_client: AsyncClient) -> None:
|
async def test_400_invalid_name(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.write_action_file",
|
"app.routers.file_config.raw_config_io_service.write_action_file",
|
||||||
AsyncMock(side_effect=ConfigFileNameError("bad/../name")),
|
AsyncMock(side_effect=ConfigFileNameError("bad/../name")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -481,7 +481,7 @@ class TestUpdateActionFileRaw:
|
|||||||
class TestCreateJailConfigFile:
|
class TestCreateJailConfigFile:
|
||||||
async def test_201_creates_file(self, file_config_client: AsyncClient) -> None:
|
async def test_201_creates_file(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.create_jail_config_file",
|
"app.routers.file_config.raw_config_io_service.create_jail_config_file",
|
||||||
AsyncMock(return_value="myjail.conf"),
|
AsyncMock(return_value="myjail.conf"),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.post(
|
resp = await file_config_client.post(
|
||||||
@@ -494,7 +494,7 @@ class TestCreateJailConfigFile:
|
|||||||
|
|
||||||
async def test_409_conflict(self, file_config_client: AsyncClient) -> None:
|
async def test_409_conflict(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.create_jail_config_file",
|
"app.routers.file_config.raw_config_io_service.create_jail_config_file",
|
||||||
AsyncMock(side_effect=ConfigFileExistsError("myjail.conf")),
|
AsyncMock(side_effect=ConfigFileExistsError("myjail.conf")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.post(
|
resp = await file_config_client.post(
|
||||||
@@ -506,7 +506,7 @@ class TestCreateJailConfigFile:
|
|||||||
|
|
||||||
async def test_400_invalid_name(self, file_config_client: AsyncClient) -> None:
|
async def test_400_invalid_name(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.create_jail_config_file",
|
"app.routers.file_config.raw_config_io_service.create_jail_config_file",
|
||||||
AsyncMock(side_effect=ConfigFileNameError("bad/../name")),
|
AsyncMock(side_effect=ConfigFileNameError("bad/../name")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.post(
|
resp = await file_config_client.post(
|
||||||
@@ -520,7 +520,7 @@ class TestCreateJailConfigFile:
|
|||||||
self, file_config_client: AsyncClient
|
self, file_config_client: AsyncClient
|
||||||
) -> None:
|
) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.create_jail_config_file",
|
"app.routers.file_config.raw_config_io_service.create_jail_config_file",
|
||||||
AsyncMock(side_effect=ConfigDirError("no dir")),
|
AsyncMock(side_effect=ConfigDirError("no dir")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.post(
|
resp = await file_config_client.post(
|
||||||
@@ -542,7 +542,7 @@ class TestGetParsedFilter:
|
|||||||
) -> None:
|
) -> None:
|
||||||
cfg = FilterConfig(name="nginx", filename="nginx.conf")
|
cfg = FilterConfig(name="nginx", filename="nginx.conf")
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_filter_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_filter_file",
|
||||||
AsyncMock(return_value=cfg),
|
AsyncMock(return_value=cfg),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/filters/nginx/parsed")
|
resp = await file_config_client.get("/api/config/filters/nginx/parsed")
|
||||||
@@ -554,7 +554,7 @@ class TestGetParsedFilter:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_filter_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_filter_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get(
|
resp = await file_config_client.get(
|
||||||
@@ -567,7 +567,7 @@ class TestGetParsedFilter:
|
|||||||
self, file_config_client: AsyncClient
|
self, file_config_client: AsyncClient
|
||||||
) -> None:
|
) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_filter_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_filter_file",
|
||||||
AsyncMock(side_effect=ConfigDirError("no dir")),
|
AsyncMock(side_effect=ConfigDirError("no dir")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get("/api/config/filters/nginx/parsed")
|
resp = await file_config_client.get("/api/config/filters/nginx/parsed")
|
||||||
@@ -583,7 +583,7 @@ class TestGetParsedFilter:
|
|||||||
class TestUpdateParsedFilter:
|
class TestUpdateParsedFilter:
|
||||||
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_filter_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_filter_file",
|
||||||
AsyncMock(return_value=None),
|
AsyncMock(return_value=None),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -595,7 +595,7 @@ class TestUpdateParsedFilter:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_filter_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_filter_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -607,7 +607,7 @@ class TestUpdateParsedFilter:
|
|||||||
|
|
||||||
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_filter_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_filter_file",
|
||||||
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -629,7 +629,7 @@ class TestGetParsedAction:
|
|||||||
) -> None:
|
) -> None:
|
||||||
cfg = ActionConfig(name="iptables", filename="iptables.conf")
|
cfg = ActionConfig(name="iptables", filename="iptables.conf")
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_action_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_action_file",
|
||||||
AsyncMock(return_value=cfg),
|
AsyncMock(return_value=cfg),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get(
|
resp = await file_config_client.get(
|
||||||
@@ -643,7 +643,7 @@ class TestGetParsedAction:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_action_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_action_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get(
|
resp = await file_config_client.get(
|
||||||
@@ -656,7 +656,7 @@ class TestGetParsedAction:
|
|||||||
self, file_config_client: AsyncClient
|
self, file_config_client: AsyncClient
|
||||||
) -> None:
|
) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_action_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_action_file",
|
||||||
AsyncMock(side_effect=ConfigDirError("no dir")),
|
AsyncMock(side_effect=ConfigDirError("no dir")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get(
|
resp = await file_config_client.get(
|
||||||
@@ -674,7 +674,7 @@ class TestGetParsedAction:
|
|||||||
class TestUpdateParsedAction:
|
class TestUpdateParsedAction:
|
||||||
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_action_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_action_file",
|
||||||
AsyncMock(return_value=None),
|
AsyncMock(return_value=None),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -686,7 +686,7 @@ class TestUpdateParsedAction:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_action_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_action_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -698,7 +698,7 @@ class TestUpdateParsedAction:
|
|||||||
|
|
||||||
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_action_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_action_file",
|
||||||
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -721,7 +721,7 @@ class TestGetParsedJailFile:
|
|||||||
section = JailSectionConfig(enabled=True, port="ssh")
|
section = JailSectionConfig(enabled=True, port="ssh")
|
||||||
cfg = JailFileConfig(filename="sshd.conf", jails={"sshd": section})
|
cfg = JailFileConfig(filename="sshd.conf", jails={"sshd": section})
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_jail_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_jail_file",
|
||||||
AsyncMock(return_value=cfg),
|
AsyncMock(return_value=cfg),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get(
|
resp = await file_config_client.get(
|
||||||
@@ -735,7 +735,7 @@ class TestGetParsedJailFile:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_jail_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_jail_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing.conf")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing.conf")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get(
|
resp = await file_config_client.get(
|
||||||
@@ -748,7 +748,7 @@ class TestGetParsedJailFile:
|
|||||||
self, file_config_client: AsyncClient
|
self, file_config_client: AsyncClient
|
||||||
) -> None:
|
) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.get_parsed_jail_file",
|
"app.routers.file_config.raw_config_io_service.get_parsed_jail_file",
|
||||||
AsyncMock(side_effect=ConfigDirError("no dir")),
|
AsyncMock(side_effect=ConfigDirError("no dir")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.get(
|
resp = await file_config_client.get(
|
||||||
@@ -766,7 +766,7 @@ class TestGetParsedJailFile:
|
|||||||
class TestUpdateParsedJailFile:
|
class TestUpdateParsedJailFile:
|
||||||
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
async def test_204_on_success(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_jail_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_jail_file",
|
||||||
AsyncMock(return_value=None),
|
AsyncMock(return_value=None),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -778,7 +778,7 @@ class TestUpdateParsedJailFile:
|
|||||||
|
|
||||||
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
async def test_404_not_found(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_jail_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_jail_file",
|
||||||
AsyncMock(side_effect=ConfigFileNotFoundError("missing.conf")),
|
AsyncMock(side_effect=ConfigFileNotFoundError("missing.conf")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
@@ -790,7 +790,7 @@ class TestUpdateParsedJailFile:
|
|||||||
|
|
||||||
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
async def test_400_write_error(self, file_config_client: AsyncClient) -> None:
|
||||||
with patch(
|
with patch(
|
||||||
"app.routers.file_config.file_config_service.update_parsed_jail_file",
|
"app.routers.file_config.raw_config_io_service.update_parsed_jail_file",
|
||||||
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
AsyncMock(side_effect=ConfigFileWriteError("disk full")),
|
||||||
):
|
):
|
||||||
resp = await file_config_client.put(
|
resp = await file_config_client.put(
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import pytest
|
|||||||
|
|
||||||
from app.models.config import ActionConfigUpdate, FilterConfigUpdate, JailFileConfigUpdate
|
from app.models.config import ActionConfigUpdate, FilterConfigUpdate, JailFileConfigUpdate
|
||||||
from app.models.file_config import ConfFileCreateRequest, ConfFileUpdateRequest
|
from app.models.file_config import ConfFileCreateRequest, ConfFileUpdateRequest
|
||||||
from app.services.file_config_service import (
|
from app.services.raw_config_io_service import (
|
||||||
ConfigDirError,
|
ConfigDirError,
|
||||||
ConfigFileExistsError,
|
ConfigFileExistsError,
|
||||||
ConfigFileNameError,
|
ConfigFileNameError,
|
||||||
|
|||||||
Reference in New Issue
Block a user