mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Timing and statistics improvements in the tool shed's install and test framework.
This commit is contained in:
@@ -878,24 +878,25 @@ def populate_install_containers_for_repository_dependencies( app, repository, re
|
||||
else:
|
||||
# The assumption is that the Tool SHed's install and test framework is executed no more than once per 24 hour
|
||||
# period, so check the required repository's time_last_tested value to see if its tool_test_results column
|
||||
# has been updated within the past 24 hours. The RepositoryMetadata class's to_dict() method returns the value
|
||||
# of time_last_tested in datetime.isoformat().
|
||||
# has been updated within the past 20 hours to allow for differing test run times (some may be slower than
|
||||
# others). The RepositoryMetadata class's to_dict() method returns the value of time_last_tested in
|
||||
# datetime.isoformat().
|
||||
time_last_tested, error_message = get_time_last_tested( galaxy_tool_shed_url, required_repository_metadata_id )
|
||||
print 'Value of time_last_tested: %s' % str( time_last_tested )
|
||||
if time_last_tested is None:
|
||||
print 'The time_last_tested column value is None for version %s of repository dependency %s owned by %s.' % \
|
||||
( changeset_revision, name, owner )
|
||||
else:
|
||||
twenty_four_hours_ago = ( datetime.utcnow() - timedelta( hours=24 ) ).isoformat()
|
||||
print 'Value of twenty_four_hours_ago: %s' % str( twenty_four_hours_ago )
|
||||
twenty_hours_ago = ( datetime.utcnow() - timedelta( hours=20 ) ).isoformat()
|
||||
print 'Value of twenty_hours_ago: %s' % str( twenty_hours_ago )
|
||||
# This is counter intuitive because the following check is on strings like this: '2014-01-21T19:46:06.953741',
|
||||
# so if "time_last_tested > twenty_four_hours_ago" is True, then it implies that the time_last_tested column
|
||||
# was actually updated less than 24 hours ago, and should not be updated again because we're likely processing
|
||||
# so if "time_last_tested > twenty_hours_ago" is True, then it implies that the time_last_tested column
|
||||
# was actually updated less than 20 hours ago, and should not be updated again because we're likely processing
|
||||
# another dependent repository, many of which can have the same repository dependency.
|
||||
try:
|
||||
# Be very conservative here. Our default behavior will be to assume containers have not been populated
|
||||
# during the current test run.
|
||||
already_populated = time_last_tested > twenty_four_hours_ago
|
||||
already_populated = time_last_tested > twenty_hours_ago
|
||||
except Exception, e:
|
||||
log.exception( 'Error attempting to set already_populated: %s' % str( e ) )
|
||||
already_populated = False
|
||||
@@ -903,10 +904,10 @@ def populate_install_containers_for_repository_dependencies( app, repository, re
|
||||
if already_populated:
|
||||
print 'The install containers for version %s of repository dependency %s owned by %s have been ' % \
|
||||
( changeset_revision, name, owner )
|
||||
print 'populated within the past 24 hours (likely in this test run), so skipping this check.'
|
||||
print 'populated within the past 20 hours (likely in this test run), so skipping this check.'
|
||||
continue
|
||||
else:
|
||||
print 'Version %s of repository dependency %s owned by %s was last tested more than 24 hours ago.' % \
|
||||
print 'Version %s of repository dependency %s owned by %s was last tested more than 20 hours ago.' % \
|
||||
( changeset_revision, name, owner )
|
||||
# Inspect the tool_test_results_dict for the last test run to see if it has not yet been populated.
|
||||
if len( tool_test_results_dicts ) == 0:
|
||||
@@ -996,27 +997,27 @@ def print_install_and_test_results( install_stage_type, install_and_test_statist
|
||||
print "# Repository revisions processed: %s" % str( total_repositories_processed )
|
||||
if successful_repository_installations:
|
||||
print "# ----------------------------------------------------------------------------------"
|
||||
print "# The following revisions were successfully installed:"
|
||||
print "# The following %d revisions were successfully installed:" % len( successful_repository_installations )
|
||||
display_repositories_by_owner( successful_repository_installations )
|
||||
if repositories_with_installation_error:
|
||||
print "# ----------------------------------------------------------------------------------"
|
||||
print "# The following revisions have installation errors:"
|
||||
print "# The following %d revisions have installation errors:" % len( repositories_with_installation_error )
|
||||
display_repositories_by_owner( repositories_with_installation_error )
|
||||
if successful_tool_dependency_installations:
|
||||
print "# ----------------------------------------------------------------------------------"
|
||||
print "# The following tool dependencies were successfully installed:"
|
||||
print "# The following %d tool dependencies were successfully installed:" % len( successful_tool_dependency_installations )
|
||||
display_tool_dependencies_by_name( successful_tool_dependency_installations )
|
||||
if tool_dependencies_with_installation_error:
|
||||
print "# ----------------------------------------------------------------------------------"
|
||||
print "# The following tool dependencies have installation errors:"
|
||||
print "# The following %d tool dependencies have installation errors:" % len( tool_dependencies_with_installation_error )
|
||||
display_tool_dependencies_by_name( tool_dependencies_with_installation_error )
|
||||
if all_tests_passed:
|
||||
print '# ----------------------------------------------------------------------------------'
|
||||
print "# The following revisions successfully passed all functional tests:"
|
||||
print "# The following %d revisions successfully passed all functional tests:" % len( all_tests_passed )
|
||||
display_repositories_by_owner( all_tests_passed )
|
||||
if at_least_one_test_failed:
|
||||
print '# ----------------------------------------------------------------------------------'
|
||||
print "# The following revisions failed at least 1 functional test:"
|
||||
print "# The following %d revisions failed at least 1 functional test:" % len( at_least_one_test_failed )
|
||||
display_repositories_by_owner( at_least_one_test_failed )
|
||||
print "####################################################################################"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user