The existing airflow only change dag_run table end_date value when
a user teminate a dag in web UI. The end_date will not be updated
if airflow detected a dag finished and updated its state.

This commit add end_date update in DagRun's set_state function to
make up tho problem mentioned above.

Make sure you have checked _all_ steps below.

### Jira

- [x] My PR addresses the following [Airflow 
Jira](https://issues.apache.org/jira/browse/AIRFLOWAIRFLOW-2951/) issues and 
references them in the PR title. For example, "\[AIRFLOW-XXX\] My Airflow PR"
  - https://issues.apache.org/jira/browse/AIRFLOW-2951
  - In case you are fixing a typo in the documentation you can prepend your 
commit with \[AIRFLOW-XXX\], code changes always need a Jira issue.

### Description

- [x] Any finished dag should have a valid `end_date` in `dag_run` table, 
however this feature was not fully implemented. The `end_date` only exists when 
user try to mark a dag as success or failed from UI. This PR change the 
`DagRun.set_state()` function to set `end_date` when a `DagRun` state is 
changed and redirect existing dag_run state assignment to `set_state` function. 
It also fix UI to make sure a cleared dag will reset `end_date` to NULL.

### Tests

- [x] My PR adds the following unit tests __OR__ does not need testing for this 
extremely good reason:
tests/models.py:DagRunTest.test_dagrun_set_state_end_date

### Commits

- [x] My commits all reference Jira issues in their subject lines, and I have 
squashed multiple commits if they address the same issue. In addition, my 
commits follow the guidelines from "[How to write a good git commit 
message](http://chris.beams.io/posts/git-commit/)":
  1. Subject is separated from body by a blank line
  1. Subject is limited to 50 characters (not including Jira issue reference)
  1. Subject does not end with a period
  1. Subject uses the imperative mood ("add", not "adding")
  1. Body wraps at 72 characters
  1. Body explains "what" and "why", not "how"

### Code Quality

- [x] Passes `git diff upstream/master -u -- "*.py" | flake8 --diff`

@yrqls21

[ Full content available at: 
https://github.com/apache/incubator-airflow/pull/3798 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to