major server manager overhaul
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
from fastapi import APIRouter, Depends, BackgroundTasks, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
from ..config import settings, Settings
|
||||
from ..samba_manager import SambaManager
|
||||
from ..database import get_db
|
||||
import os
|
||||
import logging
|
||||
|
||||
router = APIRouter()
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def sync_stash_db_task():
|
||||
samba_manager = SambaManager(
|
||||
settings.samba_server_ip,
|
||||
settings.stash_share,
|
||||
settings.samba_username,
|
||||
settings.samba_password,
|
||||
)
|
||||
try:
|
||||
logger.info(f"Syncing Stash DB from {settings.stash_remote_db_path}")
|
||||
with open(settings.stash_db_path, "wb") as f:
|
||||
samba_manager.download_file(settings.stash_remote_db_path, f)
|
||||
logger.info("Stash DB synced successfully")
|
||||
except Exception as e:
|
||||
logger.error(f"Stash DB sync failed: {e}")
|
||||
finally:
|
||||
samba_manager.close()
|
||||
|
||||
@router.post("/sync")
|
||||
def sync_stash(background_tasks: BackgroundTasks):
|
||||
background_tasks.add_task(sync_stash_db_task)
|
||||
return {"message": "Stash sync started"}
|
||||
|
||||
@router.get("/status")
|
||||
def get_stash_status():
|
||||
exists = os.path.exists(settings.stash_db_path)
|
||||
size = os.path.getsize(settings.stash_db_path) if exists else 0
|
||||
mtime = os.path.getmtime(settings.stash_db_path) if exists else 0
|
||||
return {
|
||||
"enabled": settings.stash_enabled,
|
||||
"db_exists": exists,
|
||||
"db_size": size,
|
||||
"db_mtime": mtime
|
||||
}
|
||||
Reference in New Issue
Block a user