commit/galaxy-central: greg: More fixes for handling mor ethan one non-shed tool anel config when installing tools migrated from the distrobution to the tool shed.
1 new commit in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/changeset/143abc931cdb/ changeset: 143abc931cdb user: greg date: 2012-03-15 19:12:59 summary: More fixes for handling mor ethan one non-shed tool anel config when installing tools migrated from the distrobution to the tool shed. affected #: 4 files diff -r d332e63b5367ed035dcaf6ee3aafed566200b617 -r 143abc931cdb507bd1948b80c4078ce51e9e6386 lib/galaxy/tool_shed/install_manager.py --- a/lib/galaxy/tool_shed/install_manager.py +++ b/lib/galaxy/tool_shed/install_manager.py @@ -18,8 +18,7 @@ self.app = app self.toolbox = self.app.toolbox self.migrated_tools_config = migrated_tools_config - # Get the local non-shed related tool panel config (the default name is tool_conf.xml). If the user has more than 1 - # non-shed tool panel config it could cause problems. + # Get the local non-shed related tool panel configs (there can be more than one, and the default name is tool_conf.xml). self.proprietary_tool_confs = self.non_shed_tool_panel_configs self.proprietary_tool_panel_elems = self.get_proprietary_tool_panel_elems( latest_migration_script_number ) # Set the location where the repositories will be installed by retrieving the tool_path setting from migrated_tools_config. diff -r d332e63b5367ed035dcaf6ee3aafed566200b617 -r 143abc931cdb507bd1948b80c4078ce51e9e6386 lib/galaxy/tool_shed/migrate/check.py --- a/lib/galaxy/tool_shed/migrate/check.py +++ b/lib/galaxy/tool_shed/migrate/check.py @@ -46,11 +46,11 @@ # New installations will not be missing tools, so we don't need to worry about them. missing_tool_configs = [] else: - tool_panel_config = get_non_shed_tool_panel_config( app ) - if tool_panel_config is None: + tool_panel_configs = get_non_shed_tool_panel_configs( app ) + if tool_panel_configs: + missing_tool_configs = check_for_missing_tools( tool_panel_configs, latest_tool_migration_script_number ) + else: missing_tool_configs = [] - else: - missing_tool_configs = check_for_missing_tools( tool_panel_config, latest_tool_migration_script_number ) config_arg = '' if os.path.abspath( os.path.join( os.getcwd(), 'universe_wsgi.ini' ) ) != galaxy_config_file: config_arg = ' -c %s' % galaxy_config_file.replace( os.path.abspath( os.getcwd() ), '.' ) @@ -62,13 +62,19 @@ if return_code != 0: raise Exception( "Error attempting to update the value of migrate_tools.version: %s" % output ) elif missing_tool_configs: + if len( tool_panel_configs ) == 1: + plural = '' + tool_panel_config_file_names = tool_panel_configs[ 0 ] + else: + plural = 's' + tool_panel_config_file_names = ', '.join( tool_panel_configs ) msg = "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" msg += "\n\nThe list of files at the end of this message refers to tools that are configured to load into the tool panel for\n" msg += "this Galaxy instance, but have been removed from the Galaxy distribution. These tools can be automatically installed\n" msg += "from the Galaxy tool shed at http://toolshed.g2.bx.psu.edu.\n\n" msg += "To skip this process, attempt to start your Galaxy server again (e.g., sh run.sh or whatever you use). If you do this,\n" msg += "be aware that these tools will no longer be available in your Galaxy tool panel, and entries for each of them should\n" - msg += "be removed from your file named %s.\n\n" % tool_panel_config + msg += "be removed from your file%s named %s.\n\n" % ( plural, tool_panel_config_file_names ) msg += "CRITICAL NOTE IF YOU PLAN TO INSTALL\n" msg += "The location in which the tool repositories will be installed is the value of the 'tool_path' attribute in the <tool>\n" msg += 'tag of the file named ./migrated_tool_conf.xml (i.e., <toolbox tool_path="../shed_tools">). The default location\n' @@ -84,7 +90,7 @@ msg += "After the installation process finishes, you can start your Galaxy server. As part of this installation process,\n" msg += "entries for each of the following tool config files will be added to the file named ./migrated_tool_conf.xml, so these\n" msg += "tools will continue to be loaded into your tool panel. Because of this, existing entries for these files should be\n" - msg += "removed from your file named %s, but only after the installation process finishes.\n\n" % tool_panel_config + msg += "removed from your file%s named %s, but only after the installation process finishes.\n\n" % ( plural, tool_panel_config_file_names ) for i, missing_tool_config in enumerate( missing_tool_configs ): msg += "%s\n" % missing_tool_config # Should we do the following? diff -r d332e63b5367ed035dcaf6ee3aafed566200b617 -r 143abc931cdb507bd1948b80c4078ce51e9e6386 lib/galaxy/tool_shed/migrate/common.py --- a/lib/galaxy/tool_shed/migrate/common.py +++ b/lib/galaxy/tool_shed/migrate/common.py @@ -39,8 +39,9 @@ if name in migrated_tool_configs: missing_tool_configs.append( name ) return missing_tool_configs -def get_non_shed_tool_panel_config( app ): - # Get the non-shed related tool panel config value from the Galaxy config - the default is tool_conf.xml. +def get_non_shed_tool_panel_configs( app ): + # Get the non-shed related tool panel configs - there can be more than one, and the default is tool_conf.xml. + config_filenames = [] for config_filename in app.config.tool_configs: # Any config file that includes a tool_path attribute in the root tag set like the following is shed-related. # <toolbox tool_path="../shed_tools"> @@ -48,9 +49,8 @@ root = tree.getroot() tool_path = root.get( 'tool_path', None ) if tool_path is None: - # There will be a problem here if the user has defined 2 non-shed related configs. - return config_filename - return None + config_filenames.append( config_filename ) + return config_filenames class MigrateToolsApplication( object ): """Encapsulates the state of a basic Galaxy Universe application in order to initiate the Install Manager""" def __init__( self, tools_migration_config ): diff -r d332e63b5367ed035dcaf6ee3aafed566200b617 -r 143abc931cdb507bd1948b80c4078ce51e9e6386 scripts/migrate_tools/migrate_tools.py --- a/scripts/migrate_tools/migrate_tools.py +++ b/scripts/migrate_tools/migrate_tools.py @@ -20,12 +20,14 @@ app = MigrateToolsApplication( sys.argv[ 1 ] ) non_shed_tool_confs = app.install_manager.proprietary_tool_confs -msg = "\nThe installation process is finished. You should now remove entries for the installed tools from " if len( non_shed_tool_confs ) == 1: - msg += "your file named %s and start your Galaxy server." % non_shed_tool_conf + plural = '' + file_names = non_shed_tool_confs[ 0 ] else: + plural = 's' file_names = ', '.join( non_shed_tool_confs ) - msg += "your files named %s, and start your Galaxy server." % file_names +msg = "\nThe installation process is finished. You should now remove entries for the installed tools from your file%s named\n" % plural +msg += "%s and start your Galaxy server.\n" % file_names print msg app.shutdown() sys.exit( 0 ) 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.
participants (1)
-
Bitbucket