From 5d3648af92fc17d93e1ce7259f752b3dcfcd63fa Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Thu, 2 Dec 2021 18:55:02 +0000 Subject: [PATCH] Better error message for unknown `ShellJobRunner` shell plugin Instead of raising: ``` File "/srv/galaxy/lib/galaxy/jobs/runners/util/cli/__init__.py", line 78, in get_shell_plugin self.active_cli_shells[requested_shell_settings] = self.cli_shells[shell_plugin](**shell_params) KeyError: 'ZecureShell' ``` raise: ``` File "/srv/galaxy/lib/galaxy/jobs/runners/util/cli/__init__.py", line 80, in get_shell_plugin raise ValueError(f"Unknown shell_plugin [{shell_plugin}], available plugins are {list(self.cli_shells.keys())}") ValueError: Unknown shell_plugin [ZecureShell], available plugins are ['RemoteShell', 'SecureShell', 'GlobusSecureShell', 'ParamikoShell', 'LocalShell'] ``` --- lib/galaxy/jobs/runners/util/cli/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/jobs/runners/util/cli/__init__.py b/lib/galaxy/jobs/runners/util/cli/__init__.py index c63eb070984..c38bb878ff6 100644 --- a/lib/galaxy/jobs/runners/util/cli/__init__.py +++ b/lib/galaxy/jobs/runners/util/cli/__init__.py @@ -75,7 +75,10 @@ class CliInterface: shell_plugin = shell_params.get('plugin', DEFAULT_SHELL_PLUGIN) requested_shell_settings = json.dumps(shell_params, sort_keys=True) if requested_shell_settings not in self.active_cli_shells: - self.active_cli_shells[requested_shell_settings] = self.cli_shells[shell_plugin](**shell_params) + shell_plugin_class = self.cli_shells.get(shell_plugin) + if not shell_plugin_class: + raise ValueError(f"Unknown shell_plugin [{shell_plugin}], available plugins are {list(self.cli_shells.keys())}") + self.active_cli_shells[requested_shell_settings] = shell_plugin_class(**shell_params) return self.active_cli_shells[requested_shell_settings] def get_job_interface(self, job_params):