diff --git a/lib/galaxy/webapps/tool_shed/controllers/repository.py b/lib/galaxy/webapps/tool_shed/controllers/repository.py
index d27bc490869..38929686324 100644
--- a/lib/galaxy/webapps/tool_shed/controllers/repository.py
+++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py
@@ -1137,6 +1137,9 @@ class RepositoryController( BaseUIController, common_util.ItemRatings ):
@web.expose
@web.require_login( "deprecate repository" )
def deprecate( self, trans, **kwd ):
+ """Mark a repository in the tool shed as deprecated or not deprecated."""
+ # Marking a repository in the tool shed as deprecated has no effect on any downloadable changeset revisions that may be associated with the
+ # repository. Revisions are not marked as not downlaodable because those that have installed the repository must be allowed to get updates.
params = util.Params( kwd )
message = util.restore_text( params.get( 'message', '' ) )
status = params.get( 'status', 'done' )
@@ -1194,6 +1197,43 @@ class RepositoryController( BaseUIController, common_util.ItemRatings ):
message=message,
status='error' ) )
+ @web.expose
+ def display_tool_functional_test_errors( self, trans, repository_id, repository_metadata_id, **kwd ):
+ params = util.Params( kwd )
+ message = util.restore_text( params.get( 'message', '' ) )
+ status = params.get( 'status', 'done' )
+ repository = suc.get_repository_by_id( trans.app, repository_id )
+ if repository:
+ repository_metadata = suc.get_repository_metadata_by_id( trans, repository_metadata_id )
+ changeset_revision = repository_metadata.changeset_revision
+ if repository_metadata:
+ metadata = repository_metadata.metadata
+ if metadata:
+ return trans.fill_template( '/webapps/tool_shed/repository/display_tool_functional_test_errors.mako',
+ repository=repository,
+ repository_metadata=repository_metadata,
+ message=message,
+ status=status )
+ else:
+ message = 'Missing metadata for revision %s of repository %s owned by %s.' % \
+ ( str( changeset_revision ), str( repository.name ), str( repository.user.username ) )
+ else:
+ message = 'Invalid repository_metadata_id %s received for displaying functional test errors for repository %s.' % \
+ ( str( repository_metadata_id ), str( repository.name ) )
+ else:
+ message = 'Invalid repository_id received for displaying functional test errors.%s.' % str( repository_id )
+ return trans.response.send_redirect( web.url_for( controller='repository',
+ action='browse_repositories',
+ message=message,
+ status='error' ) )
+ return trans.response.send_redirect( web.url_for( controller='repository',
+ action='browse_repository',
+ operation='view_or_manage_repository',
+ id=repository_id,
+ changeset_revision=changeset_revision,
+ message=message,
+ status='error' ) )
+
@web.expose
def download( self, trans, repository_id, changeset_revision, file_type, **kwd ):
# Download an archive of the repository files compressed as zip, gz or bz2.
@@ -2995,6 +3035,8 @@ class RepositoryController( BaseUIController, common_util.ItemRatings ):
revision_label = suc.get_revision_label( trans, repository, changeset_revision )
repository_metadata = suc.get_repository_metadata_by_changeset_revision( trans, repository_id, changeset_revision )
if repository_metadata:
+ repository_metadata_id = trans.security.encode_id( repository_metadata.id )
+ tool_test_errors = json.from_json_string( repository_metadata.tool_test_errors )
metadata = repository_metadata.metadata
if metadata:
if 'tools' in metadata:
@@ -3026,7 +3068,9 @@ class RepositoryController( BaseUIController, common_util.ItemRatings ):
if guid:
tool_lineage = self.get_versions_of_tool( trans, repository, repository_metadata, guid )
else:
+ repository_metadata_id = None
metadata = None
+ tool_test_errors = None
is_malicious = suc.changeset_is_malicious( trans, repository_id, repository.tip( trans.app ) )
changeset_revision_select_field = build_changeset_revision_select_field( trans,
repository,
@@ -3045,10 +3089,12 @@ class RepositoryController( BaseUIController, common_util.ItemRatings ):
review_id = None
return trans.fill_template( "/webapps/tool_shed/repository/view_tool_metadata.mako",
repository=repository,
+ repository_metadata_id=repository_metadata_id,
metadata=metadata,
tool=tool,
tool_metadata_dict=tool_metadata_dict,
tool_lineage=tool_lineage,
+ tool_test_errors=tool_test_errors,
changeset_revision=changeset_revision,
revision_label=revision_label,
changeset_revision_select_field=changeset_revision_select_field,