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

1from docker import APIClient 

2 

3 

4def get_docker_logs(api_client: APIClient, container_id: str, log_filter: str) -> str: 

5 """ 

6 Get logs for Docker job. 

7 

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). 

16 

17 Returns 

18 ------- 

19 : 

20 All filtered log events. 

21 """ 

22 

23 logs = api_client.logs(container=container_id).decode("utf-8") 

24 

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] 

31 

32 return "\n".join(log_items)