26
26
TYPE_CHECKING ,
27
27
)
28
28
29
+ from galaxy .util .yaml_util import ordered_dump
29
30
from galaxy .tool_util .deps import docker_util
30
31
from galaxy .tool_util .deps .container_volumes import DockerVolume
31
32
from galaxy .util .commands import argv_to_str
108
109
</tool_sheds>
109
110
"""
110
111
111
- JOB_CONFIG_LOCAL = """<job_conf>
112
- <plugins>
113
- <plugin id="planemo_runner" type="runner" load="galaxy.jobs.runners.local:LocalJobRunner" workers="4"/>
114
- </plugins>
115
- <handlers>
116
- </handlers>
117
- <destinations default="planemo_dest">
118
- <destination id="planemo_dest" runner="planemo_runner">
119
- <param id="require_container">${require_container}</param>
120
- <param id="docker_enabled">${docker_enable}</param>
121
- <param id="docker_sudo">${docker_sudo}</param>
122
- <param id="docker_sudo_cmd">${docker_sudo_cmd}</param>
123
- <param id="docker_cmd">${docker_cmd}</param>
124
- <param id="docker_volumes">${docker_volumes}</param>
125
- ${docker_host_param}
126
- </destination>
127
- <destination id="upload_dest" runner="planemo_runner">
128
- <param id="docker_enabled">false</param>
129
- </destination>
130
- </destinations>
131
- <tools>
132
- <tool id="upload1" destination="upload_dest" />
133
- </tools>
134
- </job_conf>
135
- """
112
+ JOB_CONFIG_LOCAL : Dict [str , Any ] = {
113
+ "runners" : {"planemo_runner" : {"load" : "galaxy.jobs.runners.local:LocalJobRunner" , "workers" : 4 }},
114
+ "execution" : {
115
+ "default" : "planemo_dest" ,
116
+ "environments" : {
117
+ "planemo_dest" : {
118
+ "runner" : "planemo_runner" ,
119
+ "require_container" : False ,
120
+ "docker_enabled" : False ,
121
+ "docker_sudo" : False ,
122
+ "docker_sudo_cmd" : docker_util .DEFAULT_SUDO_COMMAND ,
123
+ "docker_cmd" : docker_util .DEFAULT_DOCKER_COMMAND ,
124
+ "docker_volumes" : "$defaults" ,
125
+ },
126
+ "upload_dest" : {"runner" : "planemo_runner" , "docker_enabled" : False },
127
+ },
128
+ },
129
+ "tools" : [
130
+ {"id" : "upload1" , "environment" : "upload_dest" },
131
+ ],
132
+ }
133
+
136
134
137
135
REFGENIE_CONFIG_TEMPLATE = """
138
136
config_version: %s
@@ -1319,16 +1317,19 @@ def _handle_job_config_file(
1319
1317
):
1320
1318
job_config_file = kwds .get ("job_config_file" , None )
1321
1319
if not job_config_file :
1322
- template_str = JOB_CONFIG_LOCAL
1323
1320
job_config_file = os .path .join (
1324
1321
config_directory ,
1325
- "job_conf.xml " ,
1322
+ "job_conf.yml " ,
1326
1323
)
1327
- docker_enable = str (kwds .get ("docker" , False ))
1324
+ planemo_dest = JOB_CONFIG_LOCAL ["execution" ]["environments" ]["planemo_dest" ]
1325
+ planemo_dest ["docker_enabled" ] = kwds .get ("docker" , False )
1326
+ planemo_dest ["docker_sudo" ] = kwds .get ("docker_sudo" , False )
1327
+ planemo_dest ["docker_sudo_cmd" ] = kwds .get ("docker_sudo_cmd" , docker_util .DEFAULT_SUDO_COMMAND )
1328
+ planemo_dest ["docker_cmd" ] = kwds .get ("docker_cmd" , docker_util .DEFAULT_DOCKER_COMMAND )
1329
+
1328
1330
docker_host = kwds .get ("docker_host" , docker_util .DEFAULT_HOST )
1329
- docker_host_param = ""
1330
1331
if docker_host :
1331
- docker_host_param = f"""<param id=" docker_host"> { docker_host } </param>"""
1332
+ planemo_dest [ "docker_host" ] = docker_host
1332
1333
1333
1334
volumes = list (kwds .get ("docker_extra_volume" ) or [])
1334
1335
if test_data_dir :
@@ -1340,20 +1341,10 @@ def _handle_job_config_file(
1340
1341
all_tool_dirs = {os .path .dirname (tool_path ) for tool_path in all_tool_paths }
1341
1342
extra_volumes_str = "," .join (str (v ) for v in create_docker_volumes (volumes ) if v .path not in all_tool_dirs )
1342
1343
docker_volumes_str = f"{ docker_volumes_str } ,{ extra_volumes_str } "
1343
-
1344
- conf_contents = Template (template_str ).safe_substitute (
1345
- {
1346
- "server_name" : server_name ,
1347
- "docker_enable" : docker_enable ,
1348
- "require_container" : "false" ,
1349
- "docker_sudo" : str (kwds .get ("docker_sudo" , False )),
1350
- "docker_sudo_cmd" : str (kwds .get ("docker_sudo_cmd" , docker_util .DEFAULT_SUDO_COMMAND )),
1351
- "docker_cmd" : str (kwds .get ("docker_cmd" , docker_util .DEFAULT_DOCKER_COMMAND )),
1352
- "docker_host_param" : docker_host_param ,
1353
- "docker_volumes" : docker_volumes_str ,
1354
- }
1355
- )
1356
- write_file (job_config_file , conf_contents )
1344
+ planemo_dest ["docker_volumes" ] = docker_volumes_str
1345
+ JOB_CONFIG_LOCAL ["execution" ]["environments" ]["planemo_dest" ] = planemo_dest
1346
+ with open (job_config_file , "w" ) as job_config_fh :
1347
+ ordered_dump (JOB_CONFIG_LOCAL , job_config_fh )
1357
1348
kwds ["job_config_file" ] = job_config_file
1358
1349
1359
1350
0 commit comments