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
|
||||
|
||||
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")
|
||||
async def create_schedule_config(self,
|
||||
input_data: dict[str, Any]) -> dict[str, Any]:
|
||||
@@ -158,21 +183,8 @@ class Formatters(BaseActivity):
|
||||
|
||||
for namespace, schedules in schedule_config.items():
|
||||
current_schedules = current_schedule_config.get(namespace, {})
|
||||
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
|
||||
self.compare_configs(
|
||||
schedules, current_schedules, to_update, to_create, namespace)
|
||||
|
||||
for namespace, schedules in current_schedule_config.items():
|
||||
for schedule_name in schedules:
|
||||
|
||||
Reference in New Issue
Block a user