Brunda10 commented on code in PR #54597:
URL: https://github.com/apache/airflow/pull/54597#discussion_r2287948224
##########
airflow-core/src/airflow/api_fastapi/core_api/services/public/variables.py:
##########
@@ -94,18 +96,29 @@ def handle_bulk_update(self, action: BulkUpdateAction,
results: BulkActionRespon
update_keys = to_update_keys
for variable in action.entities:
- if variable.key in update_keys:
- old_variable =
self.session.scalar(select(Variable).filter_by(key=variable.key).limit(1))
+ if variable.key not in update_keys:
+ continue
+ old_variable =
self.session.scalar(select(Variable).filter_by(key=variable.key).limit(1))
+ if not old_variable:
+ continue # shouldn't happen because we filtered above
+
+ fields_to_update = variable.model_fields_set
+ if update_mask:
+ print(f"Update mask provided: {update_mask}")
+ # Only keep fields in update_mask
+ fields_to_update =
fields_to_update.intersection(update_mask)
+ else:
VariableBody(**variable.model_dump())
- data = variable.model_dump(exclude={"key"}, by_alias=True)
- for key, val in data.items():
- setattr(old_variable, key, val)
- results.success.append(variable.key)
+ data = variable.model_dump(include=fields_to_update -
non_update_fields, by_alias=True)
+ # Apply updates
Review Comment:
Sure we will create common utility function to handle patching for
Pools,Variables. Should this function support both single PATCH endpoints and
bulk PATCH actions using update_mask, or just the bulk updates?
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]