diff --git a/veeam_client.py b/veeam_client.py index 15cee57..df077f0 100644 --- a/veeam_client.py +++ b/veeam_client.py @@ -241,16 +241,25 @@ class VeeamClient: async def fetch_sessions(self, limit: int = 50) -> list[dict]: if self._is_v12(): + seen: set[str] = set() + all_sessions: list[dict] = [] for path in ( - f"/api/v1/sessions?limit={limit}", - f"/api/v1/sessions?limit={limit}&sessionType=BackupJobs", - f"/api/v1/sessions?limit={limit}&sessionType=BackupJobs&typeFilter=Backup", + f"/api/v1/sessions?limit={limit * 3}", + f"/api/v1/sessions?limit={limit}&sessionType=BackupJob", + f"/api/v1/sessions?limit={limit}&sessionType=BackupJob&typeFilter=Backup", + f"/api/v1/sessions?limit={limit}&sessionType=FileBackupJob", + f"/api/v1/sessions?limit={limit}&sessionType=AgentBackupJob", ): try: - return await self._fetch_json_list(path) + items = await self._fetch_json_list(path) + for s in items: + sid = s.get("id") or s.get("Id") or "" + if sid and sid not in seen: + seen.add(sid) + all_sessions.append(s) except Exception: continue - return [] + return all_sessions return await self._fetch_legacy_sessions(limit) async def fetch_repositories(self) -> list[dict]: