SIENTIAPDE-1148
fix: implement compare_configs method in formatters.py to streamline schedule comparison and update handling
This commit is contained in:
@@ -119,6 +119,31 @@ class Formatters(BaseActivity):
|
|||||||
|
|
||||||
return slot_config
|
return slot_config
|
||||||
|
|
||||||
|
def compare_configs(self,
|
||||||
|
schedules: dict[str, Any], current_schedules: dict[str, Any],
|
||||||
|
to_update: dict[str, Any], to_create: dict[str, Any],
|
||||||
|
namespace: str):
|
||||||
|
"""
|
||||||
|
Compares the schedules and current schedules, and updates the
|
||||||
|
to_update and to_create dictionaries.
|
||||||
|
"""
|
||||||
|
|
||||||
|
for schedule_name, schedule in schedules.items():
|
||||||
|
if schedule_name in current_schedules:
|
||||||
|
old_config = current_schedules[schedule_name]['data']
|
||||||
|
|
||||||
|
self.logger.debug(f"Comparing {schedule_name}:")
|
||||||
|
self.logger.debug(json.dumps(
|
||||||
|
old_config, indent=4, sort_keys=True))
|
||||||
|
self.logger.debug(json.dumps(
|
||||||
|
schedule, indent=4, sort_keys=True))
|
||||||
|
|
||||||
|
if schedule != old_config:
|
||||||
|
to_update[namespace][schedule_name] = schedule
|
||||||
|
|
||||||
|
elif schedule_name not in current_schedules:
|
||||||
|
to_create[namespace][schedule_name] = schedule
|
||||||
|
|
||||||
@activity.defn(name="create_schedule_config")
|
@activity.defn(name="create_schedule_config")
|
||||||
async def create_schedule_config(self,
|
async def create_schedule_config(self,
|
||||||
input_data: dict[str, Any]) -> dict[str, Any]:
|
input_data: dict[str, Any]) -> dict[str, Any]:
|
||||||
@@ -158,21 +183,8 @@ class Formatters(BaseActivity):
|
|||||||
|
|
||||||
for namespace, schedules in schedule_config.items():
|
for namespace, schedules in schedule_config.items():
|
||||||
current_schedules = current_schedule_config.get(namespace, {})
|
current_schedules = current_schedule_config.get(namespace, {})
|
||||||
for schedule_name, schedule in schedules.items():
|
self.compare_configs(
|
||||||
if schedule_name in current_schedules:
|
schedules, current_schedules, to_update, to_create, namespace)
|
||||||
old_config = current_schedules[schedule_name]['data']
|
|
||||||
|
|
||||||
self.logger.debug(f"Comparing {schedule_name}:")
|
|
||||||
self.logger.debug(json.dumps(
|
|
||||||
old_config, indent=4, sort_keys=True))
|
|
||||||
self.logger.debug(json.dumps(
|
|
||||||
schedule, indent=4, sort_keys=True))
|
|
||||||
|
|
||||||
if schedule != old_config:
|
|
||||||
to_update[namespace][schedule_name] = schedule
|
|
||||||
|
|
||||||
elif schedule_name not in current_schedules:
|
|
||||||
to_create[namespace][schedule_name] = schedule
|
|
||||||
|
|
||||||
for namespace, schedules in current_schedule_config.items():
|
for namespace, schedules in current_schedule_config.items():
|
||||||
for schedule_name in schedules:
|
for schedule_name in schedules:
|
||||||
|
|||||||
Reference in New Issue
Block a user