35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import os
|
|
|
|
|
|
def get_last_subdirectory(directory_path: str) -> str | None:
|
|
# Get all subdirectories in the directory
|
|
subdirs = [
|
|
os.path.join(directory_path, name)
|
|
for name in os.listdir(directory_path)
|
|
if os.path.isdir(os.path.join(directory_path, name))
|
|
]
|
|
|
|
# Sort the subdirectories by creation time
|
|
subdirs.sort(key=os.path.getctime)
|
|
|
|
# Return the last subdirectory in the list
|
|
return subdirs[-1] if subdirs else None
|
|
|
|
|
|
def get_latest_report_from_agent_directories(
|
|
directory_path: str,
|
|
) -> list[tuple[os.DirEntry[str], str]]:
|
|
latest_reports = []
|
|
|
|
for subdir in os.scandir(directory_path):
|
|
if subdir.is_dir():
|
|
# Get the most recently created subdirectory within this agent's directory
|
|
latest_subdir = get_last_subdirectory(subdir.path)
|
|
if latest_subdir is not None:
|
|
# Look for 'report.json' in the subdirectory
|
|
report_file = os.path.join(latest_subdir, "report.json")
|
|
if os.path.isfile(report_file):
|
|
latest_reports.append((subdir, report_file))
|
|
|
|
return latest_reports
|