madison-ookla opened a new issue #13350:
URL: https://github.com/apache/airflow/issues/13350


   **Apache Airflow version**: 1.10.14
   
   **Kubernetes version (if you are using kubernetes)** (use `kubectl version`):
   
   **Environment**: 
   
   - **Cloud provider or hardware configuration**: X
   - **OS** (e.g. from /etc/os-release): X
   - **Kernel** (e.g. `uname -a`): X
   - **Install tools**: X
   - **Others**: X
   
   **What happened**:
   
   The `UndefinedJinjaVariablesRule` appears to expect non-standard python 
objects to have a `template_fields` attribute, when many (`pathlib.Path`, 
`None`) do not.
   
   <details><summary>`Path` example</summary>
   
   ```python
   
==========================================================================================================================================================
 STATUS 
==========================================================================================================================================================
   
   Check for latest versions of apache-airflow and 
checker...........................................................................................................................................................................................................................................................SUCCESS
   Remove airflow.AirflowMacroPlugin 
class...........................................................................................................................................................................................................................................................................SUCCESS
   Chain between DAG and operator not 
allowed........................................................................................................................................................................................................................................................................SUCCESS
   Connection.conn_id is not 
unique..................................................................................................................................................................................................................................................................................SUCCESS
   Connection.conn_type is not 
nullable..............................................................................................................................................................................................................................................................................SUCCESS
   Ensure users are not using custom metaclasses in custom 
operators.................................................................................................................................................................................................................................................SUCCESS
   Fernet is enabled by 
default......................................................................................................................................................................................................................................................................................FAIL
   GCP service account key 
deprecation...............................................................................................................................................................................................................................................................................SUCCESS
   Unify hostname_callable option in core 
section....................................................................................................................................................................................................................................................................FAIL
   Changes in import paths of hooks, operators, sensors and 
others...................................................................................................................................................................................................................................................SUCCESS
   Users must delete deprecated configs for 
KubernetesExecutor.......................................................................................................................................................................................................................................................FAIL
   Legacy UI is deprecated by 
default................................................................................................................................................................................................................................................................................SUCCESS
   Logging configuration has been moved to new 
section...............................................................................................................................................................................................................................................................FAIL
   Removal of Mesos 
Executor.........................................................................................................................................................................................................................................................................................SUCCESS
   No additional argument allowed in 
BaseOperator....................................................................................................................................................................................................................................................................SUCCESS
   Users must set a kubernetes.pod_template_file 
value...............................................................................................................................................................................................................................................................SKIPPED
   SendGrid email uses old airflow.contrib 
module....................................................................................................................................................................................................................................................................SUCCESS
   Changes in import path of remote task 
handlers....................................................................................................................................................................................................................................................................SUCCESS
   Traceback (most recent call last):
     File "/Users/madison/programs/anaconda3/envs/memphis-airflow/bin/airflow", 
line 37, in <module>
       args.func(args)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/checker.py",
 line 88, in run
       all_problems = check_upgrade(formatter, rules)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/checker.py",
 line 37, in check_upgrade
       rule_status = RuleStatus.from_rule(rule)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/problem.py",
 line 44, in from_rule
       result = rule.check()
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 141, in check
       dag_messages = self.iterate_over_dag_tasks(dag)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 128, in iterate_over_dag_tasks
       error_messages = self.iterate_over_template_fields(task)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 117, in iterate_over_template_fields
       self._check_rendered_content(rendered_content, set())
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 63, in _check_rendered_content
       debug_error_messages.update(self._check_rendered_content(value))
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 69, in _check_rendered_content
       return self._nested_check_rendered(rendered_content, seen_oids)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 75, in _nested_check_rendered
       nested_template_fields = rendered_content.template_fields
   AttributeError: 'PosixPath' object has no attribute 'template_fields'
   ```
   
   </details>
   
   <details><summary>`None` example</summary>
   
   ```python
   
==========================================================================================================================================================
 STATUS 
==========================================================================================================================================================
   
   Check for latest versions of apache-airflow and 
checker...........................................................................................................................................................................................................................................................SUCCESS
   Remove airflow.AirflowMacroPlugin 
class...........................................................................................................................................................................................................................................................................SUCCESS
   Chain between DAG and operator not 
allowed........................................................................................................................................................................................................................................................................SUCCESS
   Connection.conn_id is not 
unique..................................................................................................................................................................................................................................................................................SUCCESS
   Connection.conn_type is not 
nullable..............................................................................................................................................................................................................................................................................SUCCESS
   Ensure users are not using custom metaclasses in custom 
operators.................................................................................................................................................................................................................................................SUCCESS
   Fernet is enabled by 
default......................................................................................................................................................................................................................................................................................FAIL
   GCP service account key 
deprecation...............................................................................................................................................................................................................................................................................SUCCESS
   Unify hostname_callable option in core 
section....................................................................................................................................................................................................................................................................FAIL
   Changes in import paths of hooks, operators, sensors and 
others...................................................................................................................................................................................................................................................SUCCESS
   Users must delete deprecated configs for 
KubernetesExecutor.......................................................................................................................................................................................................................................................FAIL
   Legacy UI is deprecated by 
default................................................................................................................................................................................................................................................................................SUCCESS
   Logging configuration has been moved to new 
section...............................................................................................................................................................................................................................................................FAIL
   Removal of Mesos 
Executor.........................................................................................................................................................................................................................................................................................SUCCESS
   No additional argument allowed in 
BaseOperator....................................................................................................................................................................................................................................................................SUCCESS
   Users must set a kubernetes.pod_template_file 
value...............................................................................................................................................................................................................................................................SKIPPED
   SendGrid email uses old airflow.contrib 
module....................................................................................................................................................................................................................................................................SUCCESS
   Changes in import path of remote task 
handlers....................................................................................................................................................................................................................................................................SUCCESS
   Error with <Task(PythonOperator): ts_manual_edits>: 'NoneType' object has no 
attribute 'template_fields'
   Traceback (most recent call last):
     File "/Users/madison/programs/anaconda3/envs/memphis-airflow/bin/airflow", 
line 37, in <module>
       args.func(args)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/checker.py",
 line 88, in run
       all_problems = check_upgrade(formatter, rules)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/checker.py",
 line 37, in check_upgrade
       rule_status = RuleStatus.from_rule(rule)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/problem.py",
 line 44, in from_rule
       result = rule.check()
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 146, in check
       dag_messages = self.iterate_over_dag_tasks(dag)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 130, in iterate_over_dag_tasks
       error_messages = self.iterate_over_template_fields(task)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 118, in iterate_over_template_fields
       self._check_rendered_content(rendered_content, set())
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 64, in _check_rendered_content
       debug_error_messages.update(self._check_rendered_content(value))
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 70, in _check_rendered_content
       return self._nested_check_rendered(rendered_content, seen_oids)
     File 
"/Users/madison/programs/anaconda3/envs/memphis-airflow/lib/python3.8/site-packages/airflow/upgrade/rules/undefined_jinja_varaibles.py",
 line 76, in _nested_check_rendered
       nested_template_fields = rendered_content.template_fields
   AttributeError: 'NoneType' object has no attribute 'template_fields'
   ```
   
   </details>
   
   **What you expected to happen**:
   
   I expect these types to be handled appropriately by the upgrade rule and not 
assume that a `template_fields` attribute exists on them.
   
   **How to reproduce it**:
   
   Create a simple DAG with a `PythonOperator` task that has `op_kwargs: 
{"foo": None}` and run the upgrade check.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to