Skip to content

Commit a5b97a6

Browse files
committed
stores groups as members of a generator group
1 parent 7c65729 commit a5b97a6

File tree

1 file changed

+6
-35
lines changed

1 file changed

+6
-35
lines changed

infrahub_sdk/query_groups.py

Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ def __init__(self) -> None:
1919
self.related_node_ids: list[str] = []
2020
self.related_group_ids: list[str] = []
2121
self.unused_member_ids: list[str] | None = None
22-
self.unused_child_ids: list[str] | None = None
2322
self.previous_members: list[RelatedNodeBase] | None = None
2423
self.previous_children: list[RelatedNodeBase] | None = None
2524
self.identifier: str | None = None
@@ -88,15 +87,14 @@ def __init__(self, client: InfrahubClient) -> None:
8887
async def get_group(self, store_peers: bool = False) -> InfrahubNode | None:
8988
group_name = self._generate_group_name()
9089
try:
91-
group = await self.client.get(kind=self.group_type, name__value=group_name, include=["members", "children"])
90+
group = await self.client.get(kind=self.group_type, name__value=group_name, include=["members"])
9291
except NodeNotFoundError:
9392
return None
9493

9594
if not store_peers:
9695
return group
9796

9897
self.previous_members = group.members.peers # type: ignore[attr-defined]
99-
self.previous_children = group.children.peers # type: ignore[attr-defined]
10098
return group
10199

102100
async def delete_unused(self) -> None:
@@ -105,11 +103,6 @@ async def delete_unused(self) -> None:
105103
if member.id in self.unused_member_ids and member.typename:
106104
await self.client.delete(kind=member.typename, id=member.id)
107105

108-
if self.previous_children and self.unused_child_ids:
109-
for child in self.previous_children:
110-
if child.id in self.unused_child_ids and child.typename:
111-
await self.client.delete(kind=child.typename, id=child.id)
112-
113106
async def add_related_nodes(self, ids: list[str], update_group_context: bool | None = None) -> None:
114107
"""
115108
Add related Nodes IDs to the context.
@@ -140,15 +133,9 @@ async def update_group(self) -> None:
140133
"""
141134
Create or update (using upsert) a CoreStandardGroup to store all the Nodes and Groups used during an execution.
142135
"""
143-
children: list[str] = []
144-
members: list[str] = []
145-
146-
if self.related_group_ids:
147-
children = self.related_group_ids
148-
if self.related_node_ids:
149-
members = self.related_node_ids
136+
members: list[str] = self.related_group_ids + self.related_node_ids
150137

151-
if not children and not members:
138+
if not members:
152139
return
153140

154141
group_name = self._generate_group_name()
@@ -164,7 +151,6 @@ async def update_group(self) -> None:
164151
name=group_name,
165152
description=description,
166153
members=members,
167-
children=children,
168154
)
169155
await group.save(allow_upsert=True, update_group_context=False)
170156

@@ -173,7 +159,6 @@ async def update_group(self) -> None:
173159

174160
# Calculate how many nodes should be deleted
175161
self.unused_member_ids = set(existing_group.members.peer_ids) - set(members) # type: ignore
176-
self.unused_child_ids = set(existing_group.children.peer_ids) - set(children) # type: ignore
177162

178163
if not self.delete_unused_nodes:
179164
return
@@ -194,15 +179,14 @@ def __init__(self, client: InfrahubClientSync) -> None:
194179
def get_group(self, store_peers: bool = False) -> InfrahubNodeSync | None:
195180
group_name = self._generate_group_name()
196181
try:
197-
group = self.client.get(kind=self.group_type, name__value=group_name, include=["members", "children"])
182+
group = self.client.get(kind=self.group_type, name__value=group_name, include=["members"])
198183
except NodeNotFoundError:
199184
return None
200185

201186
if not store_peers:
202187
return group
203188

204189
self.previous_members = group.members.peers # type: ignore[attr-defined]
205-
self.previous_children = group.children.peers # type: ignore[attr-defined]
206190
return group
207191

208192
def delete_unused(self) -> None:
@@ -211,11 +195,6 @@ def delete_unused(self) -> None:
211195
if member.id in self.unused_member_ids and member.typename:
212196
self.client.delete(kind=member.typename, id=member.id)
213197

214-
if self.previous_children and self.unused_child_ids:
215-
for child in self.previous_children:
216-
if child.id in self.unused_child_ids and child.typename:
217-
self.client.delete(kind=child.typename, id=child.id)
218-
219198
def add_related_nodes(self, ids: list[str], update_group_context: bool | None = None) -> None:
220199
"""
221200
Add related Nodes IDs to the context.
@@ -246,15 +225,9 @@ def update_group(self) -> None:
246225
"""
247226
Create or update (using upsert) a CoreStandardGroup to store all the Nodes and Groups used during an execution.
248227
"""
249-
children: list[str] = []
250-
members: list[str] = []
251-
252-
if self.related_group_ids:
253-
children = self.related_group_ids
254-
if self.related_node_ids:
255-
members = self.related_node_ids
228+
members: list[str] = self.related_node_ids + self.related_group_ids
256229

257-
if not children and not members:
230+
if not members:
258231
return
259232

260233
group_name = self._generate_group_name()
@@ -270,7 +243,6 @@ def update_group(self) -> None:
270243
name=group_name,
271244
description=description,
272245
members=members,
273-
children=children,
274246
)
275247
group.save(allow_upsert=True, update_group_context=False)
276248

@@ -279,7 +251,6 @@ def update_group(self) -> None:
279251

280252
# Calculate how many nodes should be deleted
281253
self.unused_member_ids = set(existing_group.members.peer_ids) - set(members) # type: ignore
282-
self.unused_child_ids = set(existing_group.children.peer_ids) - set(children) # type: ignore
283254

284255
if not self.delete_unused_nodes:
285256
return

0 commit comments

Comments
 (0)