[
https://issues.apache.org/jira/browse/AIRFLOW-1252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16446713#comment-16446713
]
Mohammed Tameem commented on AIRFLOW-1252:
------------------------------------------
I went through the source code of API trigger and noticed that they were
parsing the json after reading conf from the POST request. That made it obvious
to me that if I wanted to achieve the API trigger with parameters I had to send
the JSON in the format I've shown above. The code then picks up this JSON
string as you have explained above and parses it using json.loads().
For triggering on cli, we can go ahead with other simple json.dumps().
> 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
> Reporter: Sergio Herrera
> Assignee: Sergio Herrera
> Priority: Major
> Labels: api
>
> 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
> EDIT: Also, there are no tests which uses conf in the Json passed through
> request currently.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)