diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py index f18588e152b..2198ceb8512 100644 --- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py +++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/tag_handler.py @@ -2,8 +2,6 @@ import logging import os import tempfile -from sqlalchemy import and_ - from galaxy.tools.deps.resolvers import INDETERMINATE_DEPENDENCY from galaxy.util import listify from tool_shed.util import basic_util @@ -360,34 +358,6 @@ class Repository( RecipeTag, SyncDatabase ): env_sh_file_path = os.path.join( env_sh_file_dir, 'env.sh' ) return env_sh_file_path - def get_tool_shed_repository_by_tool_shed_name_owner_changeset_revision( self, tool_shed_url, name, owner, changeset_revision ): - sa_session = self.app.install_model.context - # The protocol is not stored, but the port is if it exists. - tool_shed = common_util.remove_protocol_from_tool_shed_url( tool_shed_url ) - tool_shed_repository = sa_session.query( self.app.install_model.ToolShedRepository ) \ - .filter( and_( self.app.install_model.ToolShedRepository.table.c.tool_shed == tool_shed, - self.app.install_model.ToolShedRepository.table.c.name == name, - self.app.install_model.ToolShedRepository.table.c.owner == owner, - self.app.install_model.ToolShedRepository.table.c.changeset_revision == changeset_revision ) ) \ - .first() - if tool_shed_repository: - return tool_shed_repository - # The tool_shed_repository must have been updated to a newer changeset revision than the one defined in the repository_dependencies.xml file, - # so call the tool shed to get all appropriate newer changeset revisions. - text = suc.get_updated_changeset_revisions_from_tool_shed( self.app, tool_shed_url, name, owner, changeset_revision ) - if text: - changeset_revisions = listify( text ) - for changeset_revision in changeset_revisions: - tool_shed_repository = sa_session.query( self.app.install_model.ToolShedRepository ) \ - .filter( and_( self.app.install_model.ToolShedRepository.table.c.tool_shed == tool_shed, - self.app.install_model.ToolShedRepository.table.c.name == name, - self.app.install_model.ToolShedRepository.table.c.owner == owner, - self.app.install_model.ToolShedRepository.table.c.changeset_revision == changeset_revision ) ) \ - .first() - if tool_shed_repository: - return tool_shed_repository - return None - def handle_complex_repository_dependency_for_package( self, elem, package_name, package_version, tool_shed_repository, from_tool_migration_manager=False ): """ @@ -398,17 +368,15 @@ class Repository( RecipeTag, SyncDatabase ): and package_version is being installed. """ handled_tool_dependencies = [] - tool_shed = elem.attrib[ 'toolshed' ] - # The protocol is not stored, but the port is if it exists. - tool_shed = common_util.remove_protocol_from_tool_shed_url( tool_shed ) + tool_shed_url = elem.attrib[ 'toolshed' ] required_repository_name = elem.attrib[ 'name' ] required_repository_owner = elem.attrib[ 'owner' ] default_required_repository_changeset_revision = elem.attrib[ 'changeset_revision' ] - required_repository = \ - self.get_tool_shed_repository_by_tool_shed_name_owner_changeset_revision( tool_shed, - required_repository_name, - required_repository_owner, - default_required_repository_changeset_revision ) + required_repository = suc.get_repository_for_dependency_relationship( self.app, tool_shed_url, + required_repository_name, + required_repository_owner, + default_required_repository_changeset_revision ) + tool_shed = common_util.remove_protocol_from_tool_shed_url( tool_shed_url ) tmp_filename = None if required_repository: required_repository_changeset_revision = required_repository.installed_changeset_revision