fix(repair_collection): use DiscoverResult logic to discover collection

fixes error: `DAVSession.__init__() missing 1 required keyword-only argument:
'connector'`.
Reuses the existing logic in DiscoverResult to determine if the storage requires
a 'connector' arg.
This commit is contained in:
Jan Moeller 2023-07-31 00:00:02 +02:00 committed by Hugo
parent 246568f149
commit efad9eb624
2 changed files with 7 additions and 6 deletions

View file

@ -76,8 +76,8 @@ async def collections_for_pair(
logger.info(f"Discovering collections for pair {pair.name}") logger.info(f"Discovering collections for pair {pair.name}")
a_discovered = _DiscoverResult(pair.config_a, connector=connector) a_discovered = DiscoverResult(pair.config_a, connector=connector)
b_discovered = _DiscoverResult(pair.config_b, connector=connector) b_discovered = DiscoverResult(pair.config_b, connector=connector)
if list_collections: if list_collections:
# TODO: We should gather data and THEN print, so it can be async. # TODO: We should gather data and THEN print, so it can be async.
@ -155,7 +155,7 @@ def _expand_collections_cache(collections, config_a, config_b):
yield name, (a, b) yield name, (a, b)
class _DiscoverResult: class DiscoverResult:
def __init__(self, config, *, connector): def __init__(self, config, *, connector):
self._cls, _ = storage_class_from_config(config) self._cls, _ = storage_class_from_config(config)

View file

@ -5,8 +5,8 @@ import aiohttp
from .. import exceptions from .. import exceptions
from .. import sync from .. import sync
from .config import CollectionConfig from .config import CollectionConfig
from .discover import DiscoverResult
from .discover import collections_for_pair from .discover import collections_for_pair
from .discover import storage_class_from_config
from .discover import storage_instance_from_config from .discover import storage_instance_from_config
from .utils import JobFailed from .utils import JobFailed
from .utils import cli_logger from .utils import cli_logger
@ -115,8 +115,9 @@ async def repair_collection(
if collection is not None: if collection is not None:
cli_logger.info("Discovering collections (skipping cache).") cli_logger.info("Discovering collections (skipping cache).")
cls, config = storage_class_from_config(config) get_discovered = DiscoverResult(config, connector=connector)
async for config in cls.discover(**config): # noqa E902 discovered = await get_discovered.get_self()
for config in discovered.values():
if config["collection"] == collection: if config["collection"] == collection:
break break
else: else: