diff --git a/changelog/331.fixed.md b/changelog/331.fixed.md new file mode 100644 index 00000000..e67d6182 --- /dev/null +++ b/changelog/331.fixed.md @@ -0,0 +1 @@ +Fix node processing, when using fragment with `prefetch_relationships`. \ No newline at end of file diff --git a/infrahub_sdk/node.py b/infrahub_sdk/node.py index a7ee537f..45ca0bd3 100644 --- a/infrahub_sdk/node.py +++ b/infrahub_sdk/node.py @@ -1479,15 +1479,15 @@ async def _process_relationships( for rel_name in self._relationships: rel = getattr(self, rel_name) if rel and isinstance(rel, RelatedNode): - 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 = await InfrahubNode.from_graphql( client=self._client, branch=branch, data=relation, timeout=timeout ) related_nodes.append(related_node) elif rel and isinstance(rel, RelationshipManager): - 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 = await InfrahubNode.from_graphql( client=self._client, branch=branch, data=peer, timeout=timeout