preflight
This commit is contained in:
parent
12ad103a00
commit
b9d4ba6573
@ -229,7 +229,7 @@ def check_dir_write_access(
|
|||||||
pass
|
pass
|
||||||
return (
|
return (
|
||||||
False,
|
False,
|
||||||
f"Недостаточно прав на запись/переименование в папке: {target_dir}. {exc}",
|
f"Недостаточно прав на запись/переименование/удаление в папке: {target_dir}. {exc}",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -82,10 +82,12 @@ def run_batch(
|
|||||||
|
|
||||||
run_context = create_run_context(input_dir=input_dir, samba_conn=samba_conn)
|
run_context = create_run_context(input_dir=input_dir, samba_conn=samba_conn)
|
||||||
checks = [
|
checks = [
|
||||||
|
(input_dir, "Входная папка (перемещение файлов)"),
|
||||||
(run_context.run_dir, "Папка Out (текущий запуск)"),
|
(run_context.run_dir, "Папка Out (текущий запуск)"),
|
||||||
(run_context.processed_dir, "Папка Processed"),
|
(run_context.processed_dir, "Папка Processed"),
|
||||||
(run_context.error_dir, "Папка Err"),
|
(run_context.error_dir, "Папка Err"),
|
||||||
]
|
]
|
||||||
|
preflight_labels: list[str] = []
|
||||||
for target_dir, label in checks:
|
for target_dir, label in checks:
|
||||||
is_ok, write_error = check_dir_write_access(
|
is_ok, write_error = check_dir_write_access(
|
||||||
target_dir=target_dir,
|
target_dir=target_dir,
|
||||||
@ -103,9 +105,17 @@ def run_batch(
|
|||||||
log_path="",
|
log_path="",
|
||||||
messages=[write_error or f"Нет прав на запись в: {target_dir}"],
|
messages=[write_error or f"Нет прав на запись в: {target_dir}"],
|
||||||
)
|
)
|
||||||
|
preflight_labels.append(label)
|
||||||
|
|
||||||
|
messages.append(
|
||||||
|
"Проверка прав (чтение/запись/копирование/удаление) пройдена: "
|
||||||
|
+ ", ".join(preflight_labels)
|
||||||
|
+ "."
|
||||||
|
)
|
||||||
|
|
||||||
protocol_rows: list[ProtocolRow] = []
|
protocol_rows: list[ProtocolRow] = []
|
||||||
log_lines: list[str] = []
|
log_lines: list[str] = []
|
||||||
|
log_lines.append(f"{_now()} | preflight access checks: ok")
|
||||||
|
|
||||||
scan_result = scan_input_files(input_dir=input_dir, samba_conn=samba_conn)
|
scan_result = scan_input_files(input_dir=input_dir, samba_conn=samba_conn)
|
||||||
log_lines.append(
|
log_lines.append(
|
||||||
@ -180,6 +190,11 @@ def run_batch(
|
|||||||
if errors == 0 and partial == 0
|
if errors == 0 and partial == 0
|
||||||
else ("partial" if partial > 0 else "error")
|
else ("partial" if partial > 0 else "error")
|
||||||
)
|
)
|
||||||
|
messages.append(
|
||||||
|
_build_result_message(
|
||||||
|
status=status, processed=processed, partial=partial, errors=errors
|
||||||
|
)
|
||||||
|
)
|
||||||
messages.extend(log_lines[-5:])
|
messages.extend(log_lines[-5:])
|
||||||
return BatchResult(
|
return BatchResult(
|
||||||
status=status,
|
status=status,
|
||||||
@ -332,3 +347,18 @@ def _upload_artifacts(
|
|||||||
|
|
||||||
def _now() -> str:
|
def _now() -> str:
|
||||||
return datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
return datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
|
||||||
|
def _build_result_message(
|
||||||
|
*, status: str, processed: int, partial: int, errors: int
|
||||||
|
) -> str:
|
||||||
|
if status == "success":
|
||||||
|
if processed > 0:
|
||||||
|
return f"Все успешно: обработано файлов {processed}."
|
||||||
|
return "Успешно: новых файлов для обработки нет."
|
||||||
|
if status == "partial":
|
||||||
|
return (
|
||||||
|
"Частично успешно: "
|
||||||
|
f"успешно={processed}, частично={partial}, с ошибками={errors}."
|
||||||
|
)
|
||||||
|
return f"Ошибка обработки: успешно={processed}, частично={partial}, с ошибками={errors}."
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user