diff --git a/orchestrator/activities/mongo_db.py b/orchestrator/activities/mongo_db.py index 230b107..f1fcc93 100644 --- a/orchestrator/activities/mongo_db.py +++ b/orchestrator/activities/mongo_db.py @@ -198,12 +198,14 @@ class MongoDB(BaseActivity): updated_pipelines = input_data.get("updated_pipelines", []) now = datetime.now().strftime(DEFAULT_DATE_FORMAT) + argument = [ + {"schedule_name": pipeline["schedule_name"], + "namespace": pipeline["namespace"]} + for pipeline in updated_pipelines if pipeline["success"] + ] + data_filter = {"$or": argument} if argument else {} self.database["pipelines"].update_many( - {"$or": [ - {"schedule_name": pipeline["schedule_name"], - "namespace": pipeline["namespace"]} - for pipeline in updated_pipelines if pipeline["success"] - ]}, + data_filter, {"$set": {"updated_at": now}} ) @@ -218,11 +220,14 @@ class MongoDB(BaseActivity): now = datetime.now().strftime(DEFAULT_DATE_FORMAT) - self.database["pipelines"].insert_many([{ - "schedule_name": pipeline["schedule_name"], - "namespace": pipeline["namespace"], - "updated_at": now - } for pipeline in created_pipelines if pipeline["success"]]) + argument = [ + {"schedule_name": pipeline["schedule_name"], + "namespace": pipeline["namespace"], + "updated_at": now} + for pipeline in created_pipelines if pipeline["success"] + ] + data_filter = argument if argument else {} + self.database["pipelines"].insert_many(data_filter) @activity.defn(name="delete_pipelines_timestamps") async def delete_pipelines_timestamps(self, input_data: dict[str, Any]) -> None: @@ -233,10 +238,11 @@ class MongoDB(BaseActivity): """ deleted_pipelines = input_data.get("deleted_pipelines", []) - self.database["pipelines"].delete_many({ - "$or": [ - {"schedule_name": pipeline["schedule_name"], - "namespace": pipeline["namespace"]} - for pipeline in deleted_pipelines if pipeline["success"] - ] - }) + argument = [ + {"schedule_name": pipeline["schedule_name"], + "namespace": pipeline["namespace"]} + for pipeline in deleted_pipelines if pipeline["success"] + ] + data_filter = {"$or": argument} if argument else {} + + self.database["pipelines"].delete_many(data_filter)