def execute(self, context): task = self.dag.get_task(self.upstream_task_id) ti = TaskInstance(task, context['execution_date']) if ti.current_state() == State.FAILED or ti.current_state( ) == State.SKIPPED: raise AirflowSkipException('Failed state leads to skipped') elif ti.current_state() != State.SUCCESS: raise AirflowException( "Upstream task's status differs from: FAILED, SUCCESS, SKIPPED" )
def resetTasksStatus(task_id): dag_folder = conf.get('core', 'DAGS_FOLDER') dagbag = DagBag(dag_folder) check_dag = dagbag.dags[main_dag_id] session = settings.Session() execution_date = datetime.now() my_task = check_dag.get_task(task_id) ti = TaskInstance(my_task, execution_date) state = ti.current_state() logging.info("Current state of " + task_id + " is " + str(state)) ti.set_state(None, session) state = ti.current_state() logging.info("Updated state of " + task_id + " is " + str(state))
def task_state(args): """ Returns the state of a TaskInstance at the command line. >>> airflow task_state tutorial sleep 2015-01-01 success """ args.execution_date = dateutil.parser.parse(args.execution_date) dagbag = DagBag(args.subdir) if args.dag_id not in dagbag.dags: raise Exception('dag_id could not be found') dag = dagbag.dags[args.dag_id] task = dag.get_task(task_id=args.task_id) ti = TaskInstance(task, args.execution_date) print ti.current_state()
def task_state(args): """ Returns the state of a TaskInstance at the command line. >>> airflow task_state tutorial sleep 2015-01-01 success """ args.execution_date = dateutil.parser.parse(args.execution_date) dagbag = DagBag(args.subdir) if args.dag_id not in dagbag.dags: raise AirflowException('dag_id could not be found') dag = dagbag.dags[args.dag_id] task = dag.get_task(task_id=args.task_id) ti = TaskInstance(task, args.execution_date) print ti.current_state()
def branch(**kwargs): #crash task to be implemented here using SLA ti = TaskInstance(waiting_report_task, kwargs['execution_date']) print(ti) print(kwargs) if ti.current_state() == 'success': return 'send_email_task' else: return 'failure_task'
def task_state(args): """ Returns the state of a TaskInstance at the command line. >>> airflow tasks state tutorial sleep 2015-01-01 success """ dag = get_dag(args.subdir, args.dag_id) task = dag.get_task(task_id=args.task_id) ti = TaskInstance(task, args.execution_date) print(ti.current_state())
def task_state(args): """ Returns the state of a TaskInstance at the command line. >>> airflow task_state tutorial sleep 2015-01-01 success """ dag = get_dag(args) task = dag.get_task(task_id=args.task_id) ti = TaskInstance(task, args.execution_date) print(ti.current_state())
def test_local_run(self): args = self.parser.parse_args([ 'tasks', 'run', 'example_python_operator', 'print_the_context', '2018-04-27T08:39:51.298439+00:00', '--interactive', '--subdir', '/root/dags/example_python_operator.py' ]) dag = get_dag(args.subdir, args.dag_id) reset(dag.dag_id) task_command.task_run(args) task = dag.get_task(task_id=args.task_id) ti = TaskInstance(task, args.execution_date) ti.refresh_from_db() state = ti.current_state() self.assertEqual(state, State.SUCCESS)
def test_local_run(self): args = create_mock_args( task_id='print_the_context', dag_id='example_python_operator', subdir='/root/dags/example_python_operator.py', interactive=True, execution_date=timezone.parse('2018-04-27T08:39:51.298439+00:00')) dag = get_dag(args) reset(dag.dag_id) task_command.task_run(args) task = dag.get_task(task_id=args.task_id) ti = TaskInstance(task, args.execution_date) ti.refresh_from_db() state = ti.current_state() self.assertEqual(state, State.SUCCESS)
def test_local_run(self): args = create_mock_args( task_id='print_the_context', dag_id='example_python_operator', subdir='/root/dags/example_python_operator.py', interactive=True, execution_date=timezone.parse('2018-04-27T08:39:51.298439+00:00') ) reset(args.dag_id) with patch('argparse.Namespace', args) as mock_args: run(mock_args) dag = get_dag(mock_args) task = dag.get_task(task_id=args.task_id) ti = TaskInstance(task, args.execution_date) ti.refresh_from_db() state = ti.current_state() self.assertEqual(state, State.SUCCESS)