From 2a4ccac4039342c98d71bc72177aa951db6c4ba1 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 28 Nov 2016 00:07:40 +0100 Subject: [PATCH] Connect `clean` endpoint properly and add `-y` to exec_clean --- lib/galaxy/tools/deps/conda_util.py | 3 ++- lib/galaxy/tools/deps/resolvers/conda.py | 3 +-- lib/galaxy/tools/deps/views.py | 2 -- lib/galaxy/webapps/galaxy/api/tool_dependencies.py | 2 +- lib/galaxy/webapps/galaxy/buildapp.py | 3 ++- test/integration/test_resolvers.py | 4 ++-- 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/galaxy/tools/deps/conda_util.py b/lib/galaxy/tools/deps/conda_util.py index 4f12716f927..47f1b090006 100644 --- a/lib/galaxy/tools/deps/conda_util.py +++ b/lib/galaxy/tools/deps/conda_util.py @@ -219,7 +219,8 @@ class CondaContext(installable.InstallableContext): Clean up after conda installation. """ clean_base_args = [ - "--tarballs" + "--tarballs", + "-y" ] clean_base_args.extend(args) return self.exec_command("clean", clean_base_args) diff --git a/lib/galaxy/tools/deps/resolvers/conda.py b/lib/galaxy/tools/deps/resolvers/conda.py index beb06871028..a21a37ebd4a 100644 --- a/lib/galaxy/tools/deps/resolvers/conda.py +++ b/lib/galaxy/tools/deps/resolvers/conda.py @@ -11,7 +11,6 @@ import galaxy.tools.deps.installable from ..conda_util import ( build_isolated_environment, cleanup_failed_install, - exec_clean, CondaContext, CondaTarget, install_conda, @@ -100,7 +99,7 @@ class CondaDependencyResolver(DependencyResolver, ListableDependencyResolver, In self.copy_dependencies = copy_dependencies def clean(self, **kwds): - return exec_clean() + return self.conda_context.exec_clean() def resolve(self, name, version, type, **kwds): # Check for conda just not being there, this way we can enable diff --git a/lib/galaxy/tools/deps/views.py b/lib/galaxy/tools/deps/views.py index 0735d4af4c8..8f23335d7df 100644 --- a/lib/galaxy/tools/deps/views.py +++ b/lib/galaxy/tools/deps/views.py @@ -125,7 +125,6 @@ class DependencyResolversView(object): """ return [index for index, resolver in enumerate(self._dependency_resolvers) if hasattr(resolver, "install_dependency") and not resolver.disabled ] - def get_requirements_status(self, requested_requirements, installed_tool_dependencies=None): return [self.manager_dependency(installed_tool_dependencies=installed_tool_dependencies, **req) for req in requested_requirements] @@ -140,4 +139,3 @@ class DependencyResolversView(object): else: [resolver.clean(**kwds) for resolver in self._dependency_resolvers if hasattr(resolver, 'clean')] return "OK" - diff --git a/lib/galaxy/webapps/galaxy/api/tool_dependencies.py b/lib/galaxy/webapps/galaxy/api/tool_dependencies.py index cd961472355..ea5821dfea3 100644 --- a/lib/galaxy/webapps/galaxy/api/tool_dependencies.py +++ b/lib/galaxy/webapps/galaxy/api/tool_dependencies.py @@ -167,7 +167,7 @@ class ToolDependenciesAPIController( BaseAPIController ): @require_admin def clean(self, trans, id=None, **kwds): """ - POST /api/dependencies_resolver/clean + POST /api/dependencies_resolver/{index}/clean Cleans up intermediate files created by resolvers during the dependency installation. diff --git a/lib/galaxy/webapps/galaxy/buildapp.py b/lib/galaxy/webapps/galaxy/buildapp.py index 52b9fb3882a..8bee0a15ddb 100644 --- a/lib/galaxy/webapps/galaxy/buildapp.py +++ b/lib/galaxy/webapps/galaxy/buildapp.py @@ -267,10 +267,11 @@ def populate_api_routes( webapp, app ): webapp.mapper.connect( '/api/tools/{id:.+?}', action='show', controller="tools" ) webapp.mapper.resource( 'tool', 'tools', path_prefix='/api' ) + webapp.mapper.connect( '/api/dependency_resolvers/clean', action="clean", controller="tool_dependencies", conditions=dict( method=[ "POST" ]) ) webapp.mapper.connect( '/api/dependency_resolvers/dependency', action="manager_dependency", controller="tool_dependencies", conditions=dict( method=[ "GET" ] ) ) webapp.mapper.connect( '/api/dependency_resolvers/dependency', action="install_dependency", controller="tool_dependencies", conditions=dict( method=[ "POST" ] ) ) webapp.mapper.connect( '/api/dependency_resolvers/requirements', action="manager_requirements", controller="tool_dependencies" ) - webapp.mapper.connect('/api/dependency_resolvers/clean', action="clean", controller="tool_dependencies", conditions=dict(method=["POST"])) + webapp.mapper.connect( '/api/dependency_resolvers/{id}/clean', action="clean", controller="tool_dependencies", conditions=dict( method=[ "POST" ]) ) webapp.mapper.connect( '/api/dependency_resolvers/{id}/dependency', action="resolver_dependency", controller="tool_dependencies", conditions=dict( method=[ "GET" ] ) ) webapp.mapper.connect( '/api/dependency_resolvers/{id}/dependency', action="install_dependency", controller="tool_dependencies", conditions=dict( method=[ "POST" ] ) ) webapp.mapper.connect( '/api/dependency_resolvers/{id}/requirements', action="resolver_requirements", controller="tool_dependencies" ) diff --git a/test/integration/test_resolvers.py b/test/integration/test_resolvers.py index d2f1208432f..5b134ac54ee 100644 --- a/test/integration/test_resolvers.py +++ b/test/integration/test_resolvers.py @@ -97,8 +97,8 @@ class CondaResolutionIntegrationTestCase(integration_util.IntegrationTestCase, A self._assert_status_code_is( create_response, 200 ) def test_conda_clean( self ): - endpoint = 'dependencies_resolvers/clean' + endpoint = 'dependency_resolvers/clean' create_response = self._post(endpoint, data={}, admin=True) self._assert_status_code_is(create_response, 200) response = create_response.json() - assert response == "OK" \ No newline at end of file + assert response == "OK"