mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 05:45:37 +08:00
Walking a CVMFS shed conf, the eager _load_tool_tag_set paid two per-tool costs the lazy toolbox doesn't need: an os.path.exists stat (network round trip on CVMFS — minutes over ~10k tools) and, since conf-provided repositories have no install-DB row by design, one 'Attempted to load tool shed tool, but the repository ... was not found in database' warning per tool per boot. Two overridable hooks in AbstractToolBox, both eager-behavior-preserving: _tool_file_on_disk (the existence gate) and _missing_repository_log_level (the warning's severity). LazyToolBox answers both from an identity-cached set of indexed source_paths: the populator established existence when it stored the source and materialisation reads the raw source from the store, so the stat proves nothing; the missing install-DB row is expected, so it logs at debug. Unindexed paths keep exact eager behavior. Claude-Session: https://claude.ai/code/session_018L7ZmCv2ubKA3JNeSL8Pkr