[
https://issues.apache.org/jira/browse/AIRFLOW-1252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergio Herrera updated AIRFLOW-1252:
------------------------------------
Description:
When someones calls to the endpoint
_POST <host>:<port>/api/experimental/dags/<dag_id>/dag_runs_
, Airflow never run that request if the body of that contains _conf_.
This occurs due to a mismatch between types when calling function
_trigger_dag()_, which is also used by *CLI*. That function perform a
_json.loads(conf)_ because from CLI the type of conf is _string_, but, in the
other side, from *experimental API*, that type is _dict_ (because _Json_ is
processed before to get all data, such as execution_date).
There are two possibilities:
1. Look for every use of _trigger_dag()_ function and put _Json_ formatting
from outside the function.
2. In the *experimental API*, put the conf in a string (with _json.dumps()_) to
allow _trigger_dag()_ transform into _dict_.
I have implemented the second option, so I can make a PR with that if you want.
Thank you a lot
was:
When someones calls to the endpoint ``, Airflow never run that request.
This occurs due to a mismatch between types when calling function
trigger_dag(), which is also used by CLI client. That function perform a
json.loads(conf) because from CLI the type of conf is String, but in the other
side, from experimental API, that type is Dict (because json is processed
before to get all data).
There are two possibilities:
1. Look for every use of trigger_dag() function and put json formatting from
outside the function.
2. In the experimental API, put the conf in a string (with json.dumps()) to
allow trigger_dag() the transform into dict.
I have implemented the second option, so I can make a PR with that if you want.
Thank you a lot
> Experimental API - exception when conf is present in JSON body
> --------------------------------------------------------------
>
> Key: AIRFLOW-1252
> URL: https://issues.apache.org/jira/browse/AIRFLOW-1252
> Project: Apache Airflow
> Issue Type: Bug
> Components: api
> Affects Versions: Airflow 1.8, 1.8.1
> Environment: Python 2.7
> Reporter: Sergio Herrera
> Assignee: Sergio Herrera
>
> When someones calls to the endpoint
> _POST <host>:<port>/api/experimental/dags/<dag_id>/dag_runs_
> , Airflow never run that request if the body of that contains _conf_.
> This occurs due to a mismatch between types when calling function
> _trigger_dag()_, which is also used by *CLI*. That function perform a
> _json.loads(conf)_ because from CLI the type of conf is _string_, but, in the
> other side, from *experimental API*, that type is _dict_ (because _Json_ is
> processed before to get all data, such as execution_date).
> There are two possibilities:
> 1. Look for every use of _trigger_dag()_ function and put _Json_ formatting
> from outside the function.
> 2. In the *experimental API*, put the conf in a string (with _json.dumps()_)
> to allow _trigger_dag()_ transform into _dict_.
> I have implemented the second option, so I can make a PR with that if you
> want.
> Thank you a lot
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)