I tried to execute the python directive with this yaml file:
--- name: upgradepath desc: Check pending builds in a specific Koji tag for an upgrade path conformance. maintainer: kparal input: args: tag environment: rpm: - libtaskotron task: - name: run upgradepath python: file: upgradepath.py callable: main custom_args: - "--debug" - "{{ tag }}" export: upgradepath_output
Please note custom_args, that's supposed to be a list of strings. My impression was that it would call:
custom_args
import upgradepath upgradepath.main(custom_args=['--debug', 'TAG'])
But I received this:
$ runtask -i f20-updates -t koji_tag upgradepath.yaml [libtaskotron:logger.py:63] 2014-04-29 12:49:19 DEBUG doing stream logging [libtaskotron:logger.py:34] 2014-04-29 12:49:19 CRITICAL Traceback (most recent call last): File "/home/kparal/devel/taskotron/env_taskotron/bin/runtask", line 9, in <module> load_entry_point('libtaskotron==0.0.3', 'console_scripts', 'runtask')() File "/home/kparal/devel/taskotron/libtaskotron/libtaskotron/runner.py", line 184, in main task_runner.run() File "/home/kparal/devel/taskotron/libtaskotron/libtaskotron/runner.py", line 33, in run self.do_actions() File "/home/kparal/devel/taskotron/libtaskotron/libtaskotron/runner.py", line 107, in do_actions self.do_single_action(action) File "/home/kparal/devel/taskotron/libtaskotron/libtaskotron/runner.py", line 86, in do_single_action rendered_action = self._render_action(action) File "/home/kparal/devel/taskotron/libtaskotron/libtaskotron/runner.py", line 69, in _render_action arg_template = jinja_env.from_string(input_action) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/environment.py", line 841, in from_string return cls.from_code(self, self.compile(source), globals, None) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/environment.py", line 542, in compile source = optimize(source, self) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/optimizer.py", line 27, in optimize return optimizer.visit(node) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 38, in visit return f(node, *args, **kwargs) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 84, in visit_list rv = self.visit(node, *args, **kwargs) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 38, in visit return f(node, *args, **kwargs) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 84, in visit_list rv = self.visit(node, *args, **kwargs) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 38, in visit return f(node, *args, **kwargs) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 84, in visit_list rv = self.visit(node, *args, **kwargs) <snip (another few hundreds of the same lines)> File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 38, in visit return f(node, *args, **kwargs) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 84, in visit_list rv = self.visit(node, *args, **kwargs) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 38, in visit return f(node, *args, **kwargs) File "/home/kparal/.local/lib/python2.7/site-packages/jinja2/visitor.py", line 84, in visit_list rv = self.visit(node, *args, **kwargs) RuntimeError: maximum recursion depth exceeded while calling a Python object
I'm not sure we support list arguments (it would be nice if it worked), but at least let's not crash.
This ticket had assigned some Differential requests: D108
Fixed in D108.
Login to comment on this ticket.