1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/f72fd96d3fac/
Changeset: f72fd96d3fac
User: greg
Date: 2013-05-10 20:24:19
Summary: Fixes for displaying README files associated with an uninstalled tool shed repository.
Affected #: 2 files
diff -r 43e37c4cc6cfbcdaba7e29a8bfac1b96dc5e7990 -r f72fd96d3fac5e17ec5c9aaece023b0ae74db696 lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
--- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
+++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
@@ -1130,7 +1130,7 @@
"""
Select or change the tool panel section to contain the tools included in the tool shed repository being reinstalled. If there are updates
available for the repository in the tool shed, the tool_dependencies and repository_dependencies associated with the updated changeset revision
- will have been retrieved from the tool shed and passed in the received kwd. In this case, the stored tool shed repository metqdata from the
+ will have been retrieved from the tool shed and passed in the received kwd. In this case, the stored tool shed repository metadata from the
Galaxy database will not be used since it is outdated.
"""
message = ''
@@ -1185,7 +1185,12 @@
includes_tool_dependencies = True
if 'workflows' in metadata:
includes_workflows = True
- readme_files_dict = readme_util.build_readme_files_dict( metadata )
+ # Since we're reinstalling, we need to send a request to the tool shed to get the README files.
+ url = suc.url_join( tool_shed_url,
+ 'repository/get_readme_files?name=%s&owner=%s&changeset_revision=%s' % \
+ ( tool_shed_repository.name, tool_shed_repository.owner, tool_shed_repository.installed_changeset_revision ) )
+ raw_text = common_util.tool_shed_get( trans.app, tool_shed_url, url )
+ readme_files_dict = json.from_json_string( raw_text )
tool_dependencies = metadata.get( 'tool_dependencies', None )
repository_dependencies = self.get_repository_dependencies( trans=trans,
repository_id=repository_id,
diff -r 43e37c4cc6cfbcdaba7e29a8bfac1b96dc5e7990 -r f72fd96d3fac5e17ec5c9aaece023b0ae74db696 lib/tool_shed/util/metadata_util.py
--- a/lib/tool_shed/util/metadata_util.py
+++ b/lib/tool_shed/util/metadata_util.py
@@ -1373,7 +1373,8 @@
invalid_tools = metadata.get( 'invalid_tools', None )
# Handle README files.
if repository.has_readme_files:
- if reinstalling:
+ if reinstalling or repository.status not in [ trans.model.ToolShedRepository.installation_status.DEACTIVATED,
+ trans.model.ToolShedRepository.installation_status.INSTALLED ]:
# Since we're reinstalling, we need to send a request to the tool shed to get the README files.
url = suc.url_join( tool_shed_url,
'repository/get_readme_files?name=%s&owner=%s&changeset_revision=%s' % \
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/43e37c4cc6cf/
Changeset: 43e37c4cc6cf
User: greg
Date: 2013-05-10 19:52:28
Summary: For tool dependencies whose installation ended in an error, still display them when attempting to uninstall them.
Affected #: 1 file
diff -r 60fe1081baac6aa1e2e9d2e4f8e22945df102671 -r 43e37c4cc6cfbcdaba7e29a8bfac1b96dc5e7990 templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako
--- a/templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako
+++ b/templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako
@@ -51,15 +51,15 @@
tool_dependency.tool_shed_repository.owner,
tool_dependency.tool_shed_repository.name,
tool_dependency.tool_shed_repository.installed_changeset_revision )
+ if not os.path.exists( install_dir ):
+ install_dir = "This dependency's installation directory does not exist, click <b>Uninstall</b> to reset for installation."
%>
- %if os.path.exists( install_dir ):
- <tr>
- <td>${tool_dependency.name}</td>
- <td>${tool_dependency.version}</td>
- <td>${tool_dependency.type}</td>
- <td>${install_dir}</td>
- </tr>
- %endif
+ <tr>
+ <td>${tool_dependency.name}</td>
+ <td>${tool_dependency.version}</td>
+ <td>${tool_dependency.type}</td>
+ <td>${install_dir}</td>
+ </tr>
%endfor
</table><div style="clear: both"></div>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/c8762ac39f04/
Changeset: c8762ac39f04
User: dan
Date: 2013-05-10 17:49:16
Summary: use_panels fix for login.mako.
Affected #: 1 file
diff -r 45c048c8756438ee829498aac0e8c1e29f85d661 -r c8762ac39f04cc41da1f59444fdcff655559f4d4 templates/user/login.mako
--- a/templates/user/login.mako
+++ b/templates/user/login.mako
@@ -1,7 +1,7 @@
<%!
#This is a hack, we should restructure templates to avoid this.
def inherit(context):
- if context.get('trans').webapp.name == 'galaxy':
+ if context.get('trans').webapp.name == 'galaxy' and context.get( 'use_panels', True ):
return '/webapps/galaxy/base_panels.mako'
elif context.get('trans').webapp.name == 'tool_shed':
return '/webapps/tool_shed/base_panels.mako'
https://bitbucket.org/galaxy/galaxy-central/commits/429636bbc4ab/
Changeset: 429636bbc4ab
Branch: stable
User: dan
Date: 2013-05-10 17:49:16
Summary: use_panels fix for login.mako.
Affected #: 1 file
diff -r 35b87dd34a79aa4b94c9c3dd8ff17b4143cd340c -r 429636bbc4ab4c5715dea09cee9ff546d94346de templates/user/login.mako
--- a/templates/user/login.mako
+++ b/templates/user/login.mako
@@ -1,7 +1,7 @@
<%!
#This is a hack, we should restructure templates to avoid this.
def inherit(context):
- if context.get('trans').webapp.name == 'galaxy':
+ if context.get('trans').webapp.name == 'galaxy' and context.get( 'use_panels', True ):
return '/webapps/galaxy/base_panels.mako'
elif context.get('trans').webapp.name == 'tool_shed':
return '/webapps/tool_shed/base_panels.mako'
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/45c048c87564/
Changeset: 45c048c87564
User: dan
Date: 2013-05-10 17:28:57
Summary: Add openid_consumer_cache to .hgignore.
Affected #: 1 file
diff -r f0da1c8355df9a68c3db5fecd27ed20def89a3ec -r 45c048c8756438ee829498aac0e8c1e29f85d661 .hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -20,6 +20,7 @@
database/pbs
database/tmp
database/*.sqlite
+database/openid_consumer_cache
# Python bytecode
*.pyc
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/f0da1c8355df/
Changeset: f0da1c8355df
User: greg
Date: 2013-05-10 17:06:35
Summary: Fix for defining the order for installing repositories from the tool shed where 1 or more repositories defines a repository dependency with prior_installation_required=True.
Affected #: 2 files
diff -r 72f47fad3d219d44988d672dc41f30748ba8d5ff -r f0da1c8355df9a68c3db5fecd27ed20def89a3ec lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py
--- a/lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py
+++ b/lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py
@@ -248,25 +248,31 @@
# Install the repositories, keeping track of each one for later display.
for index, tsr_id in enumerate( ordered_tsr_ids ):
tool_shed_repository = trans.sa_session.query( trans.model.ToolShedRepository ).get( trans.security.decode_id( tsr_id ) )
- repo_info_dict = ordered_repo_info_dicts[ index ]
- tool_panel_section_key = ordered_tool_panel_section_keys[ index ]
- repository_util.install_tool_shed_repository( trans,
- tool_shed_repository,
- repo_info_dict,
- tool_panel_section_key,
- shed_tool_conf,
- tool_path,
- install_tool_dependencies,
- reinstalling=False )
- tool_shed_repository_dict = tool_shed_repository.as_dict( value_mapper=default_tool_shed_repository_value_mapper( trans, tool_shed_repository ) )
- tool_shed_repository_dict[ 'url' ] = web.url_for( controller='tool_shed_repositories',
- action='show',
- id=trans.security.encode_id( tool_shed_repository.id ) )
- installed_tool_shed_repositories.append( tool_shed_repository_dict )
- else:
+ if tool_shed_repository.status in [ trans.model.ToolShedRepository.installation_status.NEW,
+ trans.model.ToolShedRepository.installation_status.UNINSTALLED ]:
+
+ repo_info_dict = ordered_repo_info_dicts[ index ]
+ tool_panel_section_key = ordered_tool_panel_section_keys[ index ]
+ repository_util.install_tool_shed_repository( trans,
+ tool_shed_repository,
+ repo_info_dict,
+ tool_panel_section_key,
+ shed_tool_conf,
+ tool_path,
+ install_tool_dependencies,
+ reinstalling=False )
+ tool_shed_repository_dict = tool_shed_repository.as_dict( value_mapper=default_tool_shed_repository_value_mapper( trans, tool_shed_repository ) )
+ tool_shed_repository_dict[ 'url' ] = web.url_for( controller='tool_shed_repositories',
+ action='show',
+ id=trans.security.encode_id( tool_shed_repository.id ) )
+ installed_tool_shed_repositories.append( tool_shed_repository_dict )
+ elif message:
log.error( message, exc_info=True )
trans.response.status = 500
return dict( status='error', error=message )
+ elif not created_or_updated_tool_shed_repositories and not message:
+ # We're attempting to install more than 1 repository, and all of them have already been installed.
+ return dict( status='error', error='All repositories that you are attempting to install have been previously installed.' )
# Display the list of installed repositories.
return installed_tool_shed_repositories
diff -r 72f47fad3d219d44988d672dc41f30748ba8d5ff -r f0da1c8355df9a68c3db5fecd27ed20def89a3ec lib/tool_shed/galaxy_install/repository_util.py
--- a/lib/tool_shed/galaxy_install/repository_util.py
+++ b/lib/tool_shed/galaxy_install/repository_util.py
@@ -95,6 +95,34 @@
tool_dependencies )
return repo_info_dict
+def get_next_prior_install_required_dict_entry( prior_install_required_dict, processed_tsr_ids ):
+ """
+ The order in which the prior_install_required_dict is processed is critical in order to ensure that the ultimate repository installation order is correctly
+ defined. This method determines the next key / value pair from the received prior_install_required_dict that should be processed.
+ """
+ # Return the first key / value pair that is not yet processed and whose value is an empty list.
+ for key, value in prior_install_required_dict.items():
+ if key in processed_tsr_ids:
+ continue
+ if not value:
+ return key
+ # Return the first key / value pair that is not yet processed and whose ids in value are all included in processed_tsr_ids.
+ for key, value in prior_install_required_dict.items():
+ if key in processed_tsr_ids:
+ continue
+ all_contained = True
+ for required_repository_id in value:
+ if required_repository_id not in processed_tsr_ids:
+ all_contained = False
+ break
+ if all_contained:
+ return key
+ # Return the first key / value pair that is not yet processed. Hopefully this is all that is necessary at this point.
+ for key, value in prior_install_required_dict.items():
+ if key in processed_tsr_ids:
+ continue
+ return key
+
def get_prior_install_required_dict( trans, tsr_ids, repo_info_dicts ):
"""
Return a dictionary whose keys are the received tsr_ids and whose values are a list of tsr_ids, each of which is contained in the received list of tsr_ids
@@ -591,10 +619,13 @@
# Create a dictionary whose keys are the received tsr_ids and whose values are a list of tsr_ids, each of which is contained in the received list of tsr_ids
# and whose associated repository must be installed prior to the repository associated with the tsr_id key.
prior_install_required_dict = get_prior_install_required_dict( trans, tsr_ids, repo_info_dicts )
- # Create the ordered_tsr_ids, the ordered_repo_info_dicts and the ordered_tool_panel_section_keys lists.
- for tsr_id in tsr_ids:
+ processed_tsr_ids = []
+ while len( processed_tsr_ids ) != len( prior_install_required_dict.keys() ):
+ tsr_id = get_next_prior_install_required_dict_entry( prior_install_required_dict, processed_tsr_ids )
+ processed_tsr_ids.append( tsr_id )
+ # Create the ordered_tsr_ids, the ordered_repo_info_dicts and the ordered_tool_panel_section_keys lists.
if tsr_id not in ordered_tsr_ids:
- prior_install_required_ids = prior_install_required_dict.get( tsr_id, [] )
+ prior_install_required_ids = prior_install_required_dict[ tsr_id ]
for prior_install_required_id in prior_install_required_ids:
if prior_install_required_id not in ordered_tsr_ids:
# Install the associated repository dependency first.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/72f47fad3d21/
Changeset: 72f47fad3d21
User: dan
Date: 2013-05-10 16:14:49
Summary: Fix for generating password via pbkdf2_bin for Python < 2.6.8
Affected #: 1 file
diff -r 41cbbcb908236c14818dfb2b3372ea545ece718b -r 72f47fad3d219d44988d672dc41f30748ba8d5ff lib/galaxy/security/passwords.py
--- a/lib/galaxy/security/passwords.py
+++ b/lib/galaxy/security/passwords.py
@@ -70,7 +70,7 @@
rv = u = _pseudorandom(salt + _pack_int(block))
for i in xrange(iterations - 1):
u = _pseudorandom(''.join(map(chr, u)))
- rv = starmap(xor, izip(rv, u))
+ rv = starmap( xor, zip( rv, u ) ) #Python < 2.6.8: starmap requires function inputs to be tuples, so we need to use zip instead of izip
buf.extend(rv)
return ''.join(map(chr, buf))[:keylen]
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.