Skip to content

Commit 1441339

Browse files
committed
Review feedback - genralize via model_dump where possible
1 parent b640630 commit 1441339

File tree

1 file changed

+10
-13
lines changed
  • airflow-core/src/airflow/api_fastapi/core_api/services/public

1 file changed

+10
-13
lines changed

airflow-core/src/airflow/api_fastapi/core_api/services/public/connections.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,18 @@ def update_orm_from_pydantic(
3838
orm_conn: Connection, pydantic_conn: ConnectionBody, update_mask: list[str] | None = None
3939
):
4040
"""Update ORM object from Pydantic object."""
41-
# Not all fields match and some need setters, therefore copy manually
42-
if not update_mask or "conn_type" in update_mask:
43-
orm_conn.conn_type = pydantic_conn.conn_type
44-
if not update_mask or "description" in update_mask:
45-
orm_conn.description = pydantic_conn.description
46-
if not update_mask or "host" in update_mask:
47-
orm_conn.host = pydantic_conn.host
48-
if not update_mask or "schema" in update_mask:
49-
orm_conn.schema = pydantic_conn.schema_
50-
if not update_mask or "login" in update_mask:
51-
orm_conn.login = pydantic_conn.login
41+
# Not all fields match and some need setters, therefore copy partly manually via setters
42+
non_update_fields = {"connection_id", "conn_id"}
43+
setter_fields = {"password", "extra"}
44+
fields_to_update = pydantic_conn.model_fields_set - non_update_fields - setter_fields
45+
if update_mask:
46+
fields_to_update = fields_to_update.intersection(update_mask)
47+
conn_data = pydantic_conn.model_dump(include=fields_to_update, by_alias=True)
48+
for key, val in conn_data.items():
49+
setattr(orm_conn, key, val)
50+
5251
if not update_mask or "password" in update_mask:
5352
orm_conn.set_password(pydantic_conn.password)
54-
if not update_mask or "port" in update_mask:
55-
orm_conn.port = pydantic_conn.port
5653
if not update_mask or "extra" in update_mask:
5754
orm_conn.set_extra(pydantic_conn.extra)
5855

0 commit comments

Comments
 (0)