diff --git a/lib/galaxy/dependencies/__init__.py b/lib/galaxy/dependencies/__init__.py index e519ffbe61e..2bf9ff239c8 100644 --- a/lib/galaxy/dependencies/__init__.py +++ b/lib/galaxy/dependencies/__init__.py @@ -54,7 +54,10 @@ class ConditionalDependencies: self.job_runners.append(runner.get("load")) environments = job_conf_dict.get("execution", {}).get("environments", {}) for env in environments.values(): - if "rules_module" in env: + runner = env.get("runner") + if runner == "dynamic_tpv": + self.job_rule_modules.append("tpv.rules") + elif "rules_module" in env: self.job_rule_modules.append(env.get("rules_module")) if "job_config" in self.config: diff --git a/lib/galaxy/jobs/__init__.py b/lib/galaxy/jobs/__init__.py index 82480e12df8..6064f0a8fed 100644 --- a/lib/galaxy/jobs/__init__.py +++ b/lib/galaxy/jobs/__init__.py @@ -459,10 +459,18 @@ class JobConfiguration(ConfiguresHandlers): job_metrics = self.app.job_metrics execution_dict = job_config_dict.get("execution", {}) environments = execution_dict.get("environments", []) - enviroment_iter = ( + environments_list = list( ((e["id"], e) for e in environments) if isinstance(environments, list) else environments.items() ) - for environment_id, environment_dict in enviroment_iter: + for _, environment_dict in environments_list: + runner = environment_dict.get("runner") + if runner == "dynamic_tpv": + environment_dict["runner"] = "dynamic" + environment_dict["type"] = "python" + environment_dict["function"] = "map_tool_to_destination" + environment_dict["rules_module"] = "tpv.rules" + + for environment_id, environment_dict in environments_list: metrics = environment_dict.get("metrics") if metrics is None: metrics = {"src": "default"}