forked from TrueCloudLab/frostfs-testlib
[#100] Add new method for logs gathering
Signed-off-by: Andrey Berezin <a.berezin@yadro.com>
This commit is contained in:
parent
cff5db5a67
commit
e1f3444e92
2 changed files with 48 additions and 4 deletions
|
@ -212,6 +212,30 @@ class DockerHost(Host):
|
|||
with open(file_path, "wb") as file:
|
||||
file.write(logs)
|
||||
|
||||
def get_filtered_logs(
|
||||
self,
|
||||
filter_regex: str,
|
||||
since: Optional[datetime] = None,
|
||||
until: Optional[datetime] = None,
|
||||
unit: Optional[str] = None,
|
||||
) -> str:
|
||||
client = self._get_docker_client()
|
||||
filtered_logs = ""
|
||||
for service_config in self._config.services:
|
||||
container_name = self._get_service_attributes(service_config.name).container_name
|
||||
try:
|
||||
filtered_logs = client.logs(container_name, since=since, until=until)
|
||||
except HTTPError as exc:
|
||||
logger.info(f"Got exception while dumping logs of '{container_name}': {exc}")
|
||||
continue
|
||||
|
||||
matches = re.findall(filter_regex, filtered_logs, re.IGNORECASE + re.MULTILINE)
|
||||
found = list(matches)
|
||||
if found:
|
||||
filtered_logs += f"{container_name}:\n{os.linesep.join(found)}"
|
||||
|
||||
return filtered_logs
|
||||
|
||||
def is_message_in_logs(
|
||||
self,
|
||||
message_regex: str,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue