45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import uuid
|
|
from pathlib import Path
|
|
from iottb.models.device_metadata_model import dir_contains_device_metadata
|
|
from iottb.utils.utils import get_iso_date
|
|
|
|
|
|
def get_capture_uuid():
|
|
return str(uuid.uuid4())
|
|
|
|
|
|
def get_capture_date_folder(device_root: Path):
|
|
today_iso = get_iso_date()
|
|
today_folder = device_root / today_iso
|
|
if dir_contains_device_metadata(device_root):
|
|
if not today_folder.is_dir():
|
|
try:
|
|
today_folder.mkdir()
|
|
except FileExistsError:
|
|
print(f"Folder {today_folder} already exists")
|
|
return today_folder
|
|
raise FileNotFoundError(f"Given path {device_root} is not a device root directory")
|
|
|
|
|
|
def get_capture_src_folder(device_folder: Path):
|
|
assert device_folder.is_dir(), f"Given path {device_folder} is not a folder"
|
|
today_iso = get_iso_date()
|
|
max_sequence_number = 1
|
|
for d in device_folder.iterdir():
|
|
if d.is_dir() and d.name.startswith(f'{today_iso}_capture_'):
|
|
name = d.name
|
|
num = int(name.split("_")[2])
|
|
max_sequence_number = max(max_sequence_number, num)
|
|
|
|
next_sequence_number = max_sequence_number + 1
|
|
return device_folder.joinpath(f"{today_iso}_capture_{next_sequence_number:03}")
|
|
|
|
|
|
def make_capture_src_folder(capture_src_folder: Path):
|
|
try:
|
|
capture_src_folder.mkdir()
|
|
except FileExistsError:
|
|
print(f"Folder {capture_src_folder} already exists")
|
|
finally:
|
|
return capture_src_folder
|