-
Notifications
You must be signed in to change notification settings - Fork 16.3k
Description
This issue is part of #8765
Rule
Create HostnameCallableRule which corresponds to
Unify
hostname_callableoption incoresection
entry in UPDATING.md. This rule should allow users to check if their current configuration needs any adjusting
before migration to Airflow 2.0.
How to guide
To implement a new rule, create a class that inherits from airflow.upgrade.rules.base_rule.BaseRule.
It will be auto-registered and used by airflow upgrade-check command. The custom rule class has to have title,
description properties and should implement check method which returns a list of error messages in case of
incompatibility.
For example:
airflow/airflow/upgrade/rules/conn_type_is_not_nullable.py
Lines 25 to 42 in ea36166
| class ConnTypeIsNotNullableRule(BaseRule): | |
| title = "Connection.conn_type is not nullable" | |
| description = """\ | |
| The `conn_type` column in the `connection` table must contain content. Previously, this rule was \ | |
| enforced by application logic, but was not enforced by the database schema. | |
| If you made any modifications to the table directly, make sure you don't have null in the conn_type column.\ | |
| """ | |
| @provide_session | |
| def check(self, session=None): | |
| invalid_connections = session.query(Connection).filter(Connection.conn_type.is_(None)) | |
| return ( | |
| 'Connection<id={}", conn_id={}> have empty conn_type field.'.format(conn.id, conn.conn_id) | |
| for conn in invalid_connections | |
| ) |
Remember to open the PR against v1-10-test branch.