-
Notifications
You must be signed in to change notification settings - Fork 93
/
job_conf.yml.j2
138 lines (132 loc) · 3.66 KB
/
job_conf.yml.j2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
---
##
## This file is maintained by Ansible - CHANGES WILL BE OVERWRITTEN
## Do not edit this file manually.
## Any changes will be automatically reverted.
##
#
# Job runner plugin configuration
#
runners:
{% for plugin in galaxy_jobconf['plugins']|sort(attribute='id') %}
{{ plugin['id'] }}:
{% if 'local' in plugin['id'] %}
workers: {{ galaxy_jobconf.plugin_workers }}
{% endif %}
{% if 'load' in plugin %}
load: {{ plugin['load'] }}
{% endif %}
{% if 'pulsar_config' in plugin %}
pulsar_config: "{{ plugin['pulsar_config'] }}"
{% endif %}
{% if 'params' in plugin %}
{% for k in plugin['params']|dict2items|sort(attribute='key')|list|items2dict %}
{{ k }}: {{ plugin['params'][k] }}
{% endfor %}
{% endif %}
{% endfor %}
#
# Job handler configuration
#
handling:
{% if galaxy_jobconf.handlers.assign_with is defined %}
assign_with:
- {{ galaxy_jobconf.handlers.assign_with }}
{% endif %}
{% if galaxy_jobconf.handlers.default is defined %}
default: {{ galaxy_jobconf.handlers.default }}
{% endif %}
{% if galaxy_jobconf.handlers.max_grab is defined %}
max_grab: {{ galaxy_jobconf.handlers.max_grab }}
{% endif %}
{% if galaxy_jobconf.handlers.ready_window_size is defined %}
ready_window_size: {{ galaxy_jobconf.handlers.ready_window_size }}
{% endif %}
{% if galaxy_systemd_handlers is defined and galaxy_systemd_handlers > 0 %}
processes:
{% for n in range(galaxy_systemd_handlers) %}
{{ galaxy_systemd_handler_prefix }}_{{ n }}:
{% endfor %}
{% elif galaxy_systemd_handlers is defined and galaxy_systemd_handlers == 0 %}
processes:
DUMMY_PLACEHOLDER_FOR_HANDLER:
{% endif %}
#
# Job execution configuration
#
execution:
default: {{ galaxy_jobconf['default_destination'] }}
environments:
{% for destination in galaxy_jobconf['destinations']|sort(attribute='id') %}
{{ destination['id'] }}:
runner: {{ destination['runner'] }}
{% if 'type' in destination %}
type: {{ destination['type'] }}
{% endif %}
{% if 'function' in destination %}
function: {{ destination['function'] }}
{% endif %}
{% if 'rules_module' in destination %}
rules_module: {{ destination['rules_module'] }}
{% endif %}
{% if 'tpv_config_files' in destination %}
tpv_config_files:
{% for k in destination['tpv_config_files'] %}
- {{ k }}
{% endfor %}
{% endif %}
{% if 'env' in destination %}
env:
{% for k in destination['env']|dict2items|sort(attribute='key')|list|items2dict %}
- name: {{ k }}
value: {{ destination['env'][k] }}
{% endfor %}
{% endif %}
{% if 'params' in destination %}
{% for k in destination['params']|dict2items|sort(attribute='key')|list|items2dict %}
{{ k }}: {{ destination['params'][k] }}
{% endfor %}
{% endif %}
{% endfor %}
{% if 'resources' in galaxy_jobconf %}
#
# Job resource selector configuration
#
resources:
groups:
{% for resource in galaxy_jobconf['resources'] %}
{{ resource['id'] }}: {{ resource['names'] }}
{% endfor %}
{% endif %}
{% if galaxy_jobconf.tools is defined and galaxy_jobconf.tools|length > 0 %}
#
# Job mapping configuration
#
tools:
{% for tool in galaxy_jobconf['tools'] %}
{% if tool|length > 1 %}
- id: {{ tool['id'] }}
{% if 'destination' in tool %}
environment: {{ tool['destination'] }}
{% endif %}
{% if 'resources' in tool %}
resources: {{ tool['resources'] }}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
#
# Job limits configuration
#
limits:
{% for limit in galaxy_jobconf['limits'] | sort(attribute='type') %}
- type: {{ limit['type'] }}
value: {{ limit['value'] }}
{% if 'id' in limit %}
id: {{ limit['id'] }}
{% elif 'tag' in limit %}
tag: {{ limit['tag'] }}
{% elif 'window' in limit %}
window: {{ limit['window'] }}
{% endif %}
{% endfor %}