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 galaxy.tool_shed.galaxy_install.migrate.common

import configparser
import os
import sys

import galaxy.config
from galaxy.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(f"Galaxy config file does not exist (hint: use '-c config.ini' for non-standard locations): {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.session
[docs] def shutdown(self): self.object_store.shutdown()