diff --git a/changelog/461.fixed.md b/changelog/461.fixed.md new file mode 100644 index 00000000..45b0d41a --- /dev/null +++ b/changelog/461.fixed.md @@ -0,0 +1 @@ +Fixes processing of relationshhip during nodes retrieval using the Sync Client, when prefecthing related_nodes \ No newline at end of file diff --git a/infrahub_sdk/node/node.py b/infrahub_sdk/node/node.py index d48968b4..bad53aca 100644 --- a/infrahub_sdk/node/node.py +++ b/infrahub_sdk/node/node.py @@ -1493,15 +1493,15 @@ def _process_relationships( for rel_name in self._relationships: rel = getattr(self, rel_name) if rel and isinstance(rel, RelatedNodeSync): - relation = node_data["node"].get(rel_name) - if relation.get("node", None): + relation = node_data["node"].get(rel_name, None) + if relation and relation.get("node", None): related_node = InfrahubNodeSync.from_graphql( client=self._client, branch=branch, data=relation, timeout=timeout ) related_nodes.append(related_node) elif rel and isinstance(rel, RelationshipManagerSync): - peers = node_data["node"].get(rel_name) - if peers: + peers = node_data["node"].get(rel_name, None) + if peers and peers["edges"]: for peer in peers["edges"]: related_node = InfrahubNodeSync.from_graphql( client=self._client, branch=branch, data=peer, timeout=timeout