Warning

This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for tool_shed.galaxy_install.migrate.common

from __future__ import print_function

import os
import sys

from six.moves import configparser

import galaxy.config
from tool_shed.galaxy_install import installed_repository_manager, tool_migration_manager


[docs]class MigrateToolsApplication(galaxy.config.ConfiguresGalaxyMixin): """Encapsulates the state of a basic Galaxy Universe application in order to initiate the Install Manager"""
[docs] def __init__(self, tools_migration_config): install_dependencies = 'install_dependencies' in sys.argv galaxy_config_file = 'galaxy.ini' self.name = 'galaxy' if '-c' in sys.argv: pos = sys.argv.index('-c') sys.argv.pop(pos) galaxy_config_file = sys.argv.pop(pos) if not os.path.exists(galaxy_config_file): print("Galaxy config file does not exist (hint: use '-c config.ini' for non-standard locations): %s" % galaxy_config_file) sys.exit(1) config_parser = configparser.ConfigParser({'here': os.getcwd()}) config_parser.read(galaxy_config_file) galaxy_config_dict = {} for key, value in config_parser.items("app:main"): galaxy_config_dict[key] = value self.config = galaxy.config.Configuration(**galaxy_config_dict) self.config.update_integrated_tool_panel = True self._configure_object_store() self._configure_security() self._configure_models() self._configure_datatypes_registry() self._configure_tool_data_tables(from_shed_config=True) self._configure_toolbox() self._configure_tool_shed_registry() self.installed_repository_manager = installed_repository_manager.InstalledRepositoryManager(self) # Get the latest tool migration script number to send to the Install manager. latest_migration_script_number = int(tools_migration_config.split('_')[0]) # The value of migrated_tools_config is migrated_tools_conf.xml, and is reserved for # containing only those tools that have been eliminated from the distribution and moved # to the tool shed. A side-effect of instantiating the ToolMigrationManager is the automatic # installation of all appropriate tool shed repositories. self.tool_migration_manager = \ tool_migration_manager.ToolMigrationManager(app=self, latest_migration_script_number=latest_migration_script_number, tool_shed_install_config=os.path.join(self.config.root, 'scripts', 'migrate_tools', tools_migration_config), migrated_tools_config=self.config.migrated_tools_config, install_dependencies=install_dependencies)
@property def sa_session(self): return self.model.context.current
[docs] def shutdown(self): self.object_store.shutdown()