Ganesh Sivalingam created AIRFLOW-1918:
------------------------------------------
Summary: DockerOperator forcing Jinja templating on "command" when
not required
Key: AIRFLOW-1918
URL: https://issues.apache.org/jira/browse/AIRFLOW-1918
Project: Apache Airflow
Issue Type: Bug
Components: docker
Affects Versions: Airflow 1.8
Reporter: Ganesh Sivalingam
When creating a docker operator, and providing the command parameter like so:
{code: python}
create_cluster = DockerOperator(
image="my/image",
command="bash /home/ec2-user/create-cluster.sh",
cpus=1
{code}
I get the following error:
{code:java}
[2017-12-13 13:21:22,626] {base_task_runner.py:95} INFO - Subtask:
--------------------------------------------------------------------------------
[2017-12-13 13:21:22,626] {base_task_runner.py:95} INFO - Subtask: Starting
attempt 1 of 1
[2017-12-13 13:21:22,626] {base_task_runner.py:95} INFO - Subtask:
--------------------------------------------------------------------------------
[2017-12-13 13:21:22,626] {base_task_runner.py:95} INFO - Subtask:
[2017-12-13 13:21:22,639] {base_task_runner.py:95} INFO - Subtask: [2017-12-13
13:21:22,639] {models.py:1342} INFO - Executing <Task(DockerOperator):
create_flintrock_cluster> on 2017-12-13 13:21:20.147853
[2017-12-13 13:21:22,653] {base_task_runner.py:95} INFO - Subtask: [2017-12-13
13:21:22,652] {models.py:1417} ERROR - bash /home/ec2-user/create-cluster.sh
[2017-12-13 13:21:22,653] {base_task_runner.py:95} INFO - Subtask: Traceback
(most recent call last):
[2017-12-13 13:21:22,653] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/airflow/models.py", line 1359, in run
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask:
self.render_templates()
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/airflow/models.py", line 1579, in
render_templates
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask:
rendered_content = rt(attr, content, jinja_context)
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/airflow/models.py", line 2245, in
render_template
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask: return
jinja_env.get_template(content).render(**context)
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/jinja2/environment.py", line 812, in
get_template
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask: return
self._load_template(name, self.make_globals(globals))
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/jinja2/environment.py", line 774, in
_load_template
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask:
cache_key = self.loader.get_source(self, name)[1]
[2017-12-13 13:21:22,654] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/jinja2/loaders.py", line 187, in
get_source
[2017-12-13 13:21:22,655] {base_task_runner.py:95} INFO - Subtask: raise
TemplateNotFound(template)
[2017-12-13 13:21:22,655] {base_task_runner.py:95} INFO - Subtask:
TemplateNotFound: bash /home/ec2-user/create-cluster.sh
[2017-12-13 13:21:22,655] {base_task_runner.py:95} INFO - Subtask: [2017-12-13
13:21:22,653] {models.py:1441} INFO - Marking task as FAILED.
[2017-12-13 13:21:22,667] {base_task_runner.py:95} INFO - Subtask: [2017-12-13
13:21:22,667] {models.py:1462} ERROR - bash /home/ec2-user/create-cluster.sh
[2017-12-13 13:21:22,668] {base_task_runner.py:95} INFO - Subtask: Traceback
(most recent call last):
[2017-12-13 13:21:22,668] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/bin/airflow", line 28, in <module>
[2017-12-13 13:21:22,668] {base_task_runner.py:95} INFO - Subtask:
args.func(args)
[2017-12-13 13:21:22,668] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/airflow/bin/cli.py", line 422, in run
[2017-12-13 13:21:22,668] {base_task_runner.py:95} INFO - Subtask:
pool=args.pool,
[2017-12-13 13:21:22,668] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/airflow/utils/db.py", line 53, in
wrapper
[2017-12-13 13:21:22,668] {base_task_runner.py:95} INFO - Subtask: result =
func(*args, **kwargs)
[2017-12-13 13:21:22,669] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/airflow/models.py", line 1359, in run
[2017-12-13 13:21:22,669] {base_task_runner.py:95} INFO - Subtask:
self.render_templates()
[2017-12-13 13:21:22,669] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/airflow/models.py", line 1579, in
render_templates
[2017-12-13 13:21:22,669] {base_task_runner.py:95} INFO - Subtask:
rendered_content = rt(attr, content, jinja_context)
[2017-12-13 13:21:22,669] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/airflow/models.py", line 2245, in
render_template
[2017-12-13 13:21:22,669] {base_task_runner.py:95} INFO - Subtask: return
jinja_env.get_template(content).render(**context)
[2017-12-13 13:21:22,669] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/jinja2/environment.py", line 812, in
get_template
[2017-12-13 13:21:22,670] {base_task_runner.py:95} INFO - Subtask: return
self._load_template(name, self.make_globals(globals))
[2017-12-13 13:21:22,670] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/jinja2/environment.py", line 774, in
_load_template
[2017-12-13 13:21:22,670] {base_task_runner.py:95} INFO - Subtask:
cache_key = self.loader.get_source(self, name)[1]
[2017-12-13 13:21:22,670] {base_task_runner.py:95} INFO - Subtask: File
"/usr/local/lib/python2.7/site-packages/jinja2/loaders.py", line 187, in
get_source
[2017-12-13 13:21:22,670] {base_task_runner.py:95} INFO - Subtask: raise
TemplateNotFound(template)
[2017-12-13 13:21:22,670] {base_task_runner.py:95} INFO - Subtask:
jinja2.exceptions.TemplateNotFound: bash /home/ec2-user/create-cluster.sh
[2017-12-13 13:21:26,928] {jobs.py:2083} INFO - Task exited with return code 1
{code}
Within the DockerOperator code, if I comment out line 79 (`template_fields =
('command',)`) then the task completes successfully.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)