You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "John Dyer (Jira)" <ji...@apache.org> on 2019/11/06 20:49:00 UTC
[jira] [Created] (AIRFLOW-5861) DatabricksRunNowOperator enforcing
argument that should be able to be empty
John Dyer created AIRFLOW-5861:
----------------------------------
Summary: DatabricksRunNowOperator enforcing argument that should be able to be empty
Key: AIRFLOW-5861
URL: https://issues.apache.org/jira/browse/AIRFLOW-5861
Project: Apache Airflow
Issue Type: Bug
Components: operators
Affects Versions: 1.10.6
Reporter: John Dyer
It looks like /airflow/utils/decorators.py: apply_defaults makes sure that arguments without a default value are enforced. In the DatabricksRunNowOperator, the documentation specifies:
{noformat}
There are two ways to instantiate this operator.
In the first way, you can take the JSON payload that you typically use
to call the ``api/2.0/jobs/run-now`` endpoint and pass it directly
to our ``DatabricksRunNowOperator`` through the ``json`` parameter.
For example ::
json = {
"job_id": 42,
"notebook_params": {
"dry-run": "true",
"oldest-time-to-consider": "1457570074236"
}
}
notebook_run = DatabricksRunNowOperator(task_id='notebook_run', json=json){noformat}
But, when we run it that way, we get:
{noformat}
Broken DAG: [/home/airflow-user/my-awesome-dag.py] Argument ['job_id'] is required{noformat}
So, my thought to fix this is to provide a default for job_id as None, here:
[https://github.com/apache/airflow/blob/v1-10-stable/airflow/contrib/operators/databricks_operator.py#L433]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)