mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #1452 from davebx/ts_revisions_refactor
Some tweaks to shed_util_common.
This commit is contained in:
@@ -2946,13 +2946,13 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ):
|
||||
else:
|
||||
tool_shed_status_dict[ 'revision_update' ] = 'False'
|
||||
# Handle revision upgrades.
|
||||
ordered_metadata_changeset_revisions = suc.get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True )
|
||||
num_metadata_revisions = len( ordered_metadata_changeset_revisions )
|
||||
for index, metadata_changeset_revision in enumerate( ordered_metadata_changeset_revisions ):
|
||||
metadata_revisions = [ revision[ 1 ] for revision in suc.get_metadata_revisions( repository, repo ) ]
|
||||
num_metadata_revisions = len( metadata_revisions )
|
||||
for index, metadata_revision in enumerate( metadata_revisions ):
|
||||
if index == num_metadata_revisions:
|
||||
tool_shed_status_dict[ 'revision_upgrade' ] = 'False'
|
||||
break
|
||||
if metadata_changeset_revision == changeset_revision:
|
||||
if metadata_revision == changeset_revision:
|
||||
if num_metadata_revisions - index > 1:
|
||||
tool_shed_status_dict[ 'revision_upgrade' ] = 'True'
|
||||
else:
|
||||
|
||||
@@ -361,7 +361,7 @@ def should_set_do_not_test_flag( app, repository, changeset_revision, testable_r
|
||||
"""
|
||||
if not testable_revision:
|
||||
repo = hg_util.get_repo_for_repository( app, repository=repository, repo_path=None, create=False )
|
||||
changeset_revisions = suc.get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True )
|
||||
changeset_revisions = [ revision[ 1 ] for revision in suc.get_metadata_revisions( repository, repo ) ]
|
||||
if len( changeset_revisions ) > 1:
|
||||
latest_downloadable_revision = changeset_revisions[ -1 ]
|
||||
if changeset_revision != latest_downloadable_revision:
|
||||
|
||||
@@ -12,7 +12,7 @@ def get_latest_changeset_revision( app, repository, repo ):
|
||||
repository_tip )
|
||||
if repository_metadata and repository_metadata.downloadable:
|
||||
return repository_tip
|
||||
changeset_revisions = suc.get_ordered_metadata_changeset_revisions( repository, repo, downloadable=False )
|
||||
changeset_revisions = [ revision[ 1 ] for revision in suc.get_metadata_revisions( repository, repo ) ]
|
||||
if changeset_revisions:
|
||||
return changeset_revisions[ -1 ]
|
||||
return hg_util.INITIAL_CHANGELOG_HASH
|
||||
@@ -38,7 +38,7 @@ def get_previous_metadata_changeset_revision( repository, repo, before_changeset
|
||||
the changeset to which before_changeset_revision refers. If there isn't one, return the hash value
|
||||
of an empty repository changelog, hg_util.INITIAL_CHANGELOG_HASH.
|
||||
"""
|
||||
changeset_revisions = suc.get_ordered_metadata_changeset_revisions( repository, repo, downloadable=downloadable )
|
||||
changeset_revisions = [ revision[ 1 ] for revision in suc.get_metadata_revisions( repository, repo ) ]
|
||||
if len( changeset_revisions ) == 1:
|
||||
changeset_revision = changeset_revisions[ 0 ]
|
||||
if changeset_revision == before_changeset_revision:
|
||||
|
||||
@@ -6,6 +6,7 @@ import shutil
|
||||
import socket
|
||||
import string
|
||||
from urllib2 import HTTPError
|
||||
from operator import itemgetter
|
||||
|
||||
import sqlalchemy.orm.exc
|
||||
from sqlalchemy import and_, false, or_, true
|
||||
@@ -345,7 +346,7 @@ def get_latest_downloadable_changeset_revision( app, repository, repo ):
|
||||
repository_metadata = get_repository_metadata_by_changeset_revision( app, app.security.encode_id( repository.id ), repository_tip )
|
||||
if repository_metadata and repository_metadata.downloadable:
|
||||
return repository_tip
|
||||
changeset_revisions = get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True )
|
||||
changeset_revisions = [ revision[ 1 ] for revision in get_metadata_revisions( repository, repo ) ]
|
||||
if changeset_revisions:
|
||||
return changeset_revisions[ -1 ]
|
||||
return hg_util.INITIAL_CHANGELOG_HASH
|
||||
@@ -369,7 +370,7 @@ def get_next_downloadable_changeset_revision( repository, repo, after_changeset_
|
||||
Return the installable changeset_revision in the repository changelog after the changeset to which
|
||||
after_changeset_revision refers. If there isn't one, return None.
|
||||
"""
|
||||
changeset_revisions = get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True )
|
||||
changeset_revisions = [ revision[ 1 ] for revision in get_metadata_revisions( repository, repo ) ]
|
||||
if len( changeset_revisions ) == 1:
|
||||
changeset_revision = changeset_revisions[ 0 ]
|
||||
if changeset_revision == after_changeset_revision:
|
||||
@@ -420,10 +421,9 @@ def get_next_prior_import_or_install_required_dict_entry( prior_required_dict, p
|
||||
return key
|
||||
|
||||
|
||||
def get_ordered_metadata_changeset_revisions( repository, repo, downloadable=True ):
|
||||
def get_metadata_revisions( repository, repo, sort_revisions=True, reverse=False, downloadable=True ):
|
||||
"""
|
||||
Return an ordered list of changeset_revisions that are associated with metadata
|
||||
where order is defined by the repository changelog.
|
||||
Return a list of changesets for the provided repository.
|
||||
"""
|
||||
if downloadable:
|
||||
metadata_revisions = repository.downloadable_revisions
|
||||
@@ -431,16 +431,15 @@ def get_ordered_metadata_changeset_revisions( repository, repo, downloadable=Tru
|
||||
metadata_revisions = repository.metadata_revisions
|
||||
changeset_tups = []
|
||||
for repository_metadata in metadata_revisions:
|
||||
changeset_revision = repository_metadata.changeset_revision
|
||||
ctx = hg_util.get_changectx_for_changeset( repo, changeset_revision )
|
||||
ctx = hg_util.get_changectx_for_changeset( repo, repository_metadata.changeset_revision )
|
||||
if ctx:
|
||||
rev = '%04d' % ctx.rev()
|
||||
else:
|
||||
rev = '-1'
|
||||
changeset_tups.append( ( rev, changeset_revision ) )
|
||||
sorted_changeset_tups = sorted( changeset_tups )
|
||||
sorted_changeset_revisions = [ str( changeset_tup[ 1 ] ) for changeset_tup in sorted_changeset_tups ]
|
||||
return sorted_changeset_revisions
|
||||
rev = -1
|
||||
changeset_tups.append( ( rev, repository_metadata.changeset_revision ) )
|
||||
if sort_revisions:
|
||||
changeset_tups.sort( key=itemgetter( 0 ), reverse=reverse )
|
||||
return changeset_tups
|
||||
|
||||
|
||||
def get_prior_import_or_install_required_dict( app, tsr_ids, repo_info_dicts ):
|
||||
|
||||
Reference in New Issue
Block a user