Skip to content

Commit df26d61

Browse files
authored
Merge pull request #2420 from monoidic/jinja-template-type
FIX: prevent jinja expert bot crash on logrotate
2 parents d693561 + b2d71de commit df26d61

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

intelmq/bots/experts/jinja/expert.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,31 +27,33 @@ class JinjaExpertBot(ExpertBot):
2727
extra.somejinjaoutput: file:///etc/intelmq/somejinjatemplate.j2
2828
"""
2929

30-
fields: Dict[str, Union[str, Template]] = {}
30+
fields: Dict[str, str] = {}
31+
_templates: Dict[str, Union[str, Template]] = {}
3132
overwrite: bool = False
3233

3334
def init(self):
3435
if not Template:
3536
raise MissingDependencyError("jinja2")
3637

3738
for field, template in self.fields.items():
38-
if template.startswith("file:///"):
39-
templatefile = pathlib.Path(template[7:])
40-
if templatefile.exists() and os.access(templatefile, os.R_OK):
41-
self.fields[field] = templatefile.read_text()
42-
else:
43-
raise ValueError(f"Jinja Template {templatefile} does not exist or is not readable.")
39+
if not template.startswith("file:///"):
40+
continue
41+
42+
templatefile = pathlib.Path(template[7:])
43+
if not (templatefile.exists() and os.access(templatefile, os.R_OK)):
44+
raise ValueError(f"Jinja Template {templatefile} does not exist or is not readable.")
45+
self.fields[field] = templatefile.read_text()
4446

4547
for field, template in self.fields.items():
4648
try:
47-
self.fields[field] = Template(template)
49+
self._templates[field] = Template(template)
4850
except TemplateError as msg:
4951
raise ValueError(f"Error parsing Jinja Template for '{field}': {msg}")
5052

5153
def process(self):
5254
msg = self.receive_message()
5355

54-
for field, template in self.fields.items():
56+
for field, template in self._templates.items():
5557
msg.add(field, template.render(msg=msg), overwrite=self.overwrite)
5658

5759
self.send_message(msg)

0 commit comments

Comments
 (0)