You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Ricardo Garcia Silva (JIRA)" <ji...@apache.org> on 2017/07/10 14:41:00 UTC
[jira] [Created] (AIRFLOW-1391) airflow trigger_dag cannot
serialize exec_date when using the json client
Ricardo Garcia Silva created AIRFLOW-1391:
---------------------------------------------
Summary: airflow trigger_dag cannot serialize exec_date when using the json client
Key: AIRFLOW-1391
URL: https://issues.apache.org/jira/browse/AIRFLOW-1391
Project: Apache Airflow
Issue Type: Bug
Components: api
Affects Versions: 1.8.0
Reporter: Ricardo Garcia Silva
The {{airflow trigger_dag}} command cannot serialize a {{datetime.datetime}} when the cli is configured to use the {{json_client}}.
The command:
{code}
airflow trigger_dag --run_id test1 --exec_date 2017-01-01 example_bash_operator
{code}
Throws the error:
{code}
Traceback (most recent call last):
File "/home/geo2/.venvs/cglops-dissemination/bin/airflow", line 28, in <module>
args.func(args)
File "/home/geo2/.venvs/cglops-dissemination/local/lib/python2.7/site-packages/airflow/bin/cli.py", line 180, in trigger_dag
execution_date=args.exec_date)
File "/home/geo2/.venvs/cglops-dissemination/local/lib/python2.7/site-packages/airflow/api/client/json_client.py", line 32, in trigger_dag
"execution_date": execution_date,
File "/home/geo2/.venvs/cglops-dissemination/local/lib/python2.7/site-packages/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/home/geo2/.venvs/cglops-dissemination/local/lib/python2.7/site-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/home/geo2/.venvs/cglops-dissemination/local/lib/python2.7/site-packages/requests/sessions.py", line 488, in request
prep = self.prepare_request(req)
File "/home/geo2/.venvs/cglops-dissemination/local/lib/python2.7/site-packages/requests/sessions.py", line 431, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "/home/geo2/.venvs/cglops-dissemination/local/lib/python2.7/site-packages/requests/models.py", line 308, in prepare
self.prepare_body(data, files, json)
File "/home/geo2/.venvs/cglops-dissemination/local/lib/python2.7/site-packages/requests/models.py", line 458, in prepare_body
body = complexjson.dumps(json)
File "/usr/lib/python2.7/json/__init__.py", line 243, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.datetime(2017, 1, 1, 0, 0) is not JSON serializable
{code}
The same command works fine if airflow is configured to use the {{local_client}} instead.
\\
A fix for this would need to encode the {{datetime}} as a string in the client then being able to deserialize back to a datetime in the server.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)