|
@@ -287,21 +287,17 @@ class ServiceAPI:
|
|
|
async def diff_remote_sync(self, start_date: date, end_date: date) -> dict[str, list[dict]]:
|
|
async def diff_remote_sync(self, start_date: date, end_date: date) -> dict[str, list[dict]]:
|
|
|
"""Return per-service integrity issues without making any changes."""
|
|
"""Return per-service integrity issues without making any changes."""
|
|
|
ds_from, ds_to = start_date.isoformat(), end_date.isoformat()
|
|
ds_from, ds_to = start_date.isoformat(), end_date.isoformat()
|
|
|
- out: dict[str, list[dict]] = {}
|
|
|
|
|
- for key, client in self._clients.items():
|
|
|
|
|
- if hasattr(client, 'diff_remote_sync'):
|
|
|
|
|
- result = await client.diff_remote_sync(ds_from, ds_to)
|
|
|
|
|
- if result:
|
|
|
|
|
- out[key] = result
|
|
|
|
|
- return out
|
|
|
|
|
|
|
+ results = await self._gather({
|
|
|
|
|
+ key: client.diff_remote_sync(ds_from, ds_to)
|
|
|
|
|
+ for key, client in self._clients.items() if hasattr(client, 'diff_remote_sync')
|
|
|
|
|
+ })
|
|
|
|
|
+ return {key: result for key, result in results.items() if result}
|
|
|
|
|
|
|
|
async def remote_sync(self, start_date: date, end_date: date) -> dict[str, list[dict]]:
|
|
async def remote_sync(self, start_date: date, end_date: date) -> dict[str, list[dict]]:
|
|
|
"""Fix per-service integrity issues. Returns per-service list of corrections made."""
|
|
"""Fix per-service integrity issues. Returns per-service list of corrections made."""
|
|
|
ds_from, ds_to = start_date.isoformat(), end_date.isoformat()
|
|
ds_from, ds_to = start_date.isoformat(), end_date.isoformat()
|
|
|
- out: dict[str, list[dict]] = {}
|
|
|
|
|
- for key, client in self._clients.items():
|
|
|
|
|
- if hasattr(client, 'remote_sync'):
|
|
|
|
|
- result = await client.remote_sync(ds_from, ds_to)
|
|
|
|
|
- if result:
|
|
|
|
|
- out[key] = result
|
|
|
|
|
- return out
|
|
|
|
|
|
|
+ results = await self._gather({
|
|
|
|
|
+ key: client.remote_sync(ds_from, ds_to)
|
|
|
|
|
+ for key, client in self._clients.items() if hasattr(client, 'remote_sync')
|
|
|
|
|
+ })
|
|
|
|
|
+ return {key: result for key, result in results.items() if result}
|