Skip to content

Commit dce569a

Browse files
authored
fix(slurpitsync): improve node ID handling for matching nodes (#112)
1 parent 4bb3a84 commit dce569a

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

infrahub_sync/adapters/slurpitsync.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,12 @@ def slurpit_obj_to_diffsync(
253253
if not field_is_list:
254254
if node := obj.get(field.mapping):
255255
matching_nodes = []
256-
node_id = build_mapping(adapter=self, reference=field.reference, obj=obj, field=field)
257-
matching_nodes = [item for item in nodes if str(item) == node_id]
256+
# If node is a simple string/value, use it directly; otherwise build from nested object
257+
if isinstance(node, (str, int)):
258+
node_id = str(node)
259+
else:
260+
node_id = build_mapping(adapter=self, reference=field.reference, obj=obj, field=field)
261+
matching_nodes = [item for item in nodes if item.get_unique_id() == node_id]
258262
if len(matching_nodes) == 0:
259263
self.skipped.append(node)
260264
return None
@@ -266,7 +270,7 @@ def slurpit_obj_to_diffsync(
266270
data[field.name] = []
267271
if node := obj.get(field.mapping):
268272
node_id = build_mapping(adapter=self, reference=field.reference, obj=obj, field=field)
269-
matching_nodes = [item for item in nodes if str(item) == node_id]
273+
matching_nodes = [item for item in nodes if item.get_unique_id() == node_id]
270274
if len(matching_nodes) == 0:
271275
self.skipped.append(node)
272276
continue

0 commit comments

Comments
 (0)