Coverage for src/container_collection/docker/get_docker_logs.py: 100%
9 statements
« prev ^ index » next coverage.py v7.1.0, created at 2024-09-25 18:23 +0000
« prev ^ index » next coverage.py v7.1.0, created at 2024-09-25 18:23 +0000
1from docker import APIClient
4def get_docker_logs(api_client: APIClient, container_id: str, log_filter: str) -> str:
5 """
6 Get logs for Docker job.
8 Parameters
9 ----------
10 api_client
11 Docker API client.
12 container_id
13 Docker container ID.
14 log_filter
15 Filter for log events (use "-" for exclusion).
17 Returns
18 -------
19 :
20 All filtered log events.
21 """
23 logs = api_client.logs(container=container_id).decode("utf-8")
25 log_items = logs.split("\n")
26 if "-" in log_filter:
27 log_filter = log_filter.replace("-", "")
28 log_items = [item for item in log_items if log_filter not in item]
29 else:
30 log_items = [item for item in log_items if log_filter in item]
32 return "\n".join(log_items)