extended logs
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from datetime import date
|
||||
import io
|
||||
import zipfile
|
||||
|
||||
@@ -18,6 +19,7 @@ def list_backups(
|
||||
search: str | None = Query(default=None),
|
||||
backup_type: str | None = Query(default=None, pattern="^(export|binary)$"),
|
||||
router_id: int | None = Query(default=None),
|
||||
created_on: date | None = Query(default=None),
|
||||
sort_by: str = Query(default="created_at"),
|
||||
order: str = Query(default="desc", pattern="^(asc|desc)$"),
|
||||
current_user: User = Depends(get_current_user),
|
||||
@@ -29,6 +31,7 @@ def list_backups(
|
||||
search=search,
|
||||
backup_type=backup_type,
|
||||
router_id=router_id,
|
||||
created_on=created_on,
|
||||
sort_by=sort_by,
|
||||
order=order,
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import difflib
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from datetime import date, datetime, time, timedelta, timezone
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import HTTPException
|
||||
@@ -146,6 +146,7 @@ class BackupService:
|
||||
search: str | None = None,
|
||||
backup_type: str | None = None,
|
||||
router_id: int | None = None,
|
||||
created_on: date | None = None,
|
||||
sort_by: str = 'created_at',
|
||||
order: str = 'desc',
|
||||
):
|
||||
@@ -160,6 +161,10 @@ class BackupService:
|
||||
query = query.filter(Backup.backup_type == backup_type)
|
||||
if router_id:
|
||||
query = query.filter(Backup.router_id == router_id)
|
||||
if created_on:
|
||||
day_start = datetime.combine(created_on, time.min)
|
||||
next_day = day_start + timedelta(days=1)
|
||||
query = query.filter(Backup.created_at >= day_start, Backup.created_at < next_day)
|
||||
|
||||
sort_map = {
|
||||
'created_at': Backup.created_at,
|
||||
|
||||
@@ -173,14 +173,35 @@ class RouterService:
|
||||
auth_mode = result.get('auth_mode')
|
||||
http_status = result.get('http_status')
|
||||
backup_available = result.get('backup_available')
|
||||
hostname = result.get('hostname')
|
||||
model = result.get('model')
|
||||
version = result.get('version')
|
||||
uptime = result.get('uptime')
|
||||
server = result.get('server')
|
||||
|
||||
details = [f'via {transport}']
|
||||
if auth_mode:
|
||||
details.append(f'auth={auth_mode}')
|
||||
if http_status:
|
||||
details.append(f'http={http_status}')
|
||||
if backup_available is not None:
|
||||
details.append(f'backup_available={"yes" if backup_available else "no"}')
|
||||
details = [f'via {transport}', f'target={router.host}:{router.port}']
|
||||
if router.device_type == 'routeros':
|
||||
if router.ssh_user:
|
||||
details.append(f'user={router.ssh_user}')
|
||||
if hostname:
|
||||
details.append(f'hostname={hostname}')
|
||||
if model and model != 'Unknown':
|
||||
details.append(f'model={model}')
|
||||
if version and version != 'Unknown':
|
||||
details.append(f'version={version}')
|
||||
if uptime and uptime != 'Unknown':
|
||||
details.append(f'uptime={uptime}')
|
||||
else:
|
||||
if auth_mode:
|
||||
details.append(f'auth={auth_mode}')
|
||||
if http_status:
|
||||
details.append(f'http={http_status}')
|
||||
if server:
|
||||
details.append(f'server={server}')
|
||||
if backup_available is not None:
|
||||
details.append(f'backup_available={"yes" if backup_available else "no"}')
|
||||
if hostname:
|
||||
details.append(f'hostname={hostname}')
|
||||
|
||||
detail_suffix = f' ({", ".join(details)})' if details else ''
|
||||
if result.get('success'):
|
||||
|
||||
Reference in New Issue
Block a user