From cef89bfac52c6c14c8bb35fecbcd742896bf5e5a Mon Sep 17 00:00:00 2001 From: Sergey Golitsynskiy Date: Wed, 2 Sep 2020 11:50:29 -0400 Subject: [PATCH] Add local_conda_mapping_file to schema Purpose: let the config system load this just like any other path to a config file. Update comment in sample file Enable unit test Run make config-rebuild. --- doc/source/admin/galaxy_options.rst | 12 ++++++++++++ lib/galaxy/config/__init__.py | 1 - lib/galaxy/config/sample/galaxy.yml.sample | 5 +++++ .../config/sample/local_conda_mapping.yml.sample | 5 +++-- lib/galaxy/webapps/galaxy/config_schema.yml | 9 +++++++++ test/unit/config/test_config_values.py | 1 + 6 files changed, 30 insertions(+), 3 deletions(-) diff --git a/doc/source/admin/galaxy_options.rst b/doc/source/admin/galaxy_options.rst index e70884464d9..397a56a6dab 100644 --- a/doc/source/admin/galaxy_options.rst +++ b/doc/source/admin/galaxy_options.rst @@ -474,6 +474,18 @@ :Type: bool +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``local_conda_mapping_file`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:Description: + Path to a file that provides a mapping from abstract packages to + concrete conda packages. See + `config/local_conda_mapping.yml.sample` for examples. +:Default: ``local_conda_mapping.yml`` +:Type: str + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``use_cached_dependency_manager`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index cc128a81bd9..3b5c813efa8 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -787,7 +787,6 @@ class GalaxyAppConfiguration(BaseAppConfiguration, CommonConfigurationMixin): build_sites_config_file=[self._in_config_dir('build_sites.yml'), self._in_sample_dir('build_sites.yml.sample')], datatypes_config_file=[self._in_config_dir('datatypes_conf.xml'), self._in_sample_dir('datatypes_conf.xml.sample')], job_metrics_config_file=[self._in_config_dir('job_metrics_conf.xml'), self._in_sample_dir('job_metrics_conf.xml.sample')], - local_conda_mapping_file=[self._in_config_dir('local_conda_mapping.yml')], modules_mapping_files=[self._in_config_dir('environment_modules_mapping.yml')], ) listify_defaults = { diff --git a/lib/galaxy/config/sample/galaxy.yml.sample b/lib/galaxy/config/sample/galaxy.yml.sample index e71f030f861..1fe10213f6b 100644 --- a/lib/galaxy/config/sample/galaxy.yml.sample +++ b/lib/galaxy/config/sample/galaxy.yml.sample @@ -326,6 +326,11 @@ galaxy: # and extra time spent copying packages. #conda_copy_dependencies: false + # Path to a file that provides a mapping from abstract packages to + # concrete conda packages. See `config/local_conda_mapping.yml.sample` + # for examples. + #local_conda_mapping_file: local_conda_mapping.yml + # Certain dependency resolvers (namely Conda) take a considerable # amount of time to build an isolated job environment in the # job_working_directory if the job working directory is on a network diff --git a/lib/galaxy/config/sample/local_conda_mapping.yml.sample b/lib/galaxy/config/sample/local_conda_mapping.yml.sample index bc9191acbb5..6e6fd7d9010 100644 --- a/lib/galaxy/config/sample/local_conda_mapping.yml.sample +++ b/lib/galaxy/config/sample/local_conda_mapping.yml.sample @@ -1,2 +1,3 @@ -# See $GALAXY_ROOT/lib/galaxy/tools/deps/resolvers/default_conda_mapping.yml for example mapping - -# additional site-specific mappings can be added to config/local_conda_mapping.yml. +# See $GALAXY_ROOT/lib/galaxy/tool_util/deps/resolvers/default_conda_mapping.yml for example mapping - +# additional site-specific mappings can be added to config/local_conda_mapping.yml (or the location +# of specified in galaxy.yml). diff --git a/lib/galaxy/webapps/galaxy/config_schema.yml b/lib/galaxy/webapps/galaxy/config_schema.yml index f3a4ccdee29..7874a1154a2 100644 --- a/lib/galaxy/webapps/galaxy/config_schema.yml +++ b/lib/galaxy/webapps/galaxy/config_schema.yml @@ -368,6 +368,15 @@ mapping: This will prevent problems with some specific packages (perl, R), at the cost of extra disk space usage and extra time spent copying packages. + local_conda_mapping_file: + type: str + default: 'local_conda_mapping.yml' + path_resolves_to: config_dir + required: false + desc: | + Path to a file that provides a mapping from abstract packages to concrete conda packages. + See `config/local_conda_mapping.yml.sample` for examples. + use_cached_dependency_manager: type: bool default: false diff --git a/test/unit/config/test_config_values.py b/test/unit/config/test_config_values.py index 88ef6047eaa..e592e31ed12 100644 --- a/test/unit/config/test_config_values.py +++ b/test/unit/config/test_config_values.py @@ -123,6 +123,7 @@ class ExpectedValues: 'job_metrics_config_file': self._in_sample_dir('job_metrics_conf.xml.sample'), 'job_resource_params_file': self._in_config_dir('job_resource_params_conf.xml'), 'len_file_path': self._in_root_dir('tool-data/shared/ucsc/chrom'), + 'local_conda_mapping_file': self._in_config_dir('local_conda_mapping.yml'), 'managed_config_dir': self._in_managed_config_dir(), 'markdown_export_css': self._in_config_dir('markdown_export.css'), 'markdown_export_css_invocation_reports': self._in_config_dir('markdown_export_invocation_reports.css'),