diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py index a4286dc5cfc33900a5a4cd11f2f5f7ab48813245..1ceaf793706f5908427d4ed1a70dc71d5de114df 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py +++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py @@ -796,15 +796,32 @@ class RADatabase: return list(self._executeQuery(query, (resourceGroupTypeName,), fetch=_FETCH_ALL)) def getResourceGroupMemberships(self): - '''get a dict containing the resource->group and group->group relations''' + '''get a dict containing the resource->group and group->group relations: + + Returns dict result with: + + result["groups"] = { id: { "resource_group_id": id, + "resource_group_name": "...", + "resource_group_type": "...", + "child_ids": [], + "parent_ids": [], + "resource_ids": [] } + } + result["resources"] = { id: { "resource_id": id, + "resource_name": "...", + "parent_group_ids": [] } + } + ''' query = '''select prg.id as resource_group_parent_id, prg.name as resource_group_parent_name, crg.id as resource_group_id, crg.name as resource_group_name + rgt.name as resource_group_type, from virtual_instrument.resource_group_to_resource_group rg2rg left join virtual_instrument.resource_group prg on rg2rg.parent_id = prg.id inner join virtual_instrument.resource_group crg on rg2rg.child_id = crg.id + left join virtual_instrument.resource_group_type rgt on crg.type_id = rgt.id ''' relations = self._executeQuery(query, fetch=_FETCH_ALL) @@ -814,7 +831,7 @@ class RADatabase: for relation in relations: rg_item_id = relation['resource_group_id'] if not rg_item_id in rg_items: - rg_item = {k:relation[k] for k in ('resource_group_id', 'resource_group_name')} + rg_item = {k:relation[k] for k in ('resource_group_id', 'resource_group_name', 'resource_group_type')} rg_item['child_ids'] = [] rg_item['parent_ids'] = [] rg_item['resource_ids'] = [] @@ -861,8 +878,7 @@ class RADatabase: r_items[r_item_id]['parent_group_ids'].append(parent_id) rg_items[parent_id]['resource_ids'].append(r_item_id) - result = {'groups': rg_items, - 'resources': r_items } + result = {'groups': rg_items, 'resources': r_items} return result