Speed up stored snapshot inventory
This commit is contained in:
@@ -2937,7 +2937,7 @@ async def incremental_file(project_id: str, request: IncrementalFileRequest) ->
|
||||
|
||||
@app.get("/storage/snapshots", response_model=list[StoredSnapshotInfo])
|
||||
async def list_stored_snapshots() -> list[StoredSnapshotInfo]:
|
||||
return _storage.list_snapshots()
|
||||
return _storage.list_snapshot_refs()
|
||||
|
||||
|
||||
def _project_snapshot_or_404(project_id: str) -> SirSnapshot:
|
||||
@@ -6612,7 +6612,7 @@ async def license_state() -> LicenseState:
|
||||
async def admin_summary() -> dict:
|
||||
return {
|
||||
"indexed_projects": len(_snapshots),
|
||||
"stored_snapshots": len(_storage.list_snapshots()),
|
||||
"stored_snapshots": _storage.count_snapshots(),
|
||||
"knowledge_records": len(_knowledge.list_records()),
|
||||
"knowledge_packs": len(_knowledge.list_packs()),
|
||||
"users": len(_collaboration.users),
|
||||
@@ -7476,12 +7476,12 @@ def _project_setup_response(project_id: str) -> ProjectSetupResponse:
|
||||
|
||||
|
||||
def _project_has_stored_snapshot(project_id: str) -> bool:
|
||||
return any(snapshot.project_id == project_id for snapshot in _storage.list_snapshots())
|
||||
return _storage.has_snapshot(project_id)
|
||||
|
||||
|
||||
def _project_summaries() -> list[ProjectSummaryResponse]:
|
||||
project_ids = set(_project_setup.keys())
|
||||
stored_snapshots = _storage.list_snapshots()
|
||||
stored_snapshots = _storage.list_snapshot_refs()
|
||||
project_ids.update(snapshot.project_id for snapshot in stored_snapshots)
|
||||
snapshot_project_ids = {snapshot.project_id for snapshot in stored_snapshots}
|
||||
result: list[ProjectSummaryResponse] = []
|
||||
@@ -7514,6 +7514,11 @@ def _normalize_project_id(project_id: str) -> str:
|
||||
|
||||
def _delete_project_data(project_id: str, request: ProjectDeleteRequest) -> list[str]:
|
||||
deleted: list[str] = []
|
||||
had_indexed_data = (
|
||||
project_id in _snapshots
|
||||
or project_id in _normalized_projects
|
||||
or _storage.has_snapshot(project_id)
|
||||
)
|
||||
_project_setup.pop(project_id, None)
|
||||
_snapshots.pop(project_id, None)
|
||||
_graphs.pop(project_id, None)
|
||||
@@ -7534,7 +7539,7 @@ def _delete_project_data(project_id: str, request: ProjectDeleteRequest) -> list
|
||||
if folder.exists():
|
||||
shutil.rmtree(folder)
|
||||
deleted.append(folder.name)
|
||||
if request.delete_versions:
|
||||
if request.delete_versions and had_indexed_data:
|
||||
count = _storage.delete_documents_matching("object_versions", lambda payload: payload.get("project_id") == project_id)
|
||||
if count:
|
||||
deleted.append(f"object_versions:{count}")
|
||||
|
||||
Reference in New Issue
Block a user