Merge "List IDs of parent projects"

This commit is contained in:
Zuul 2018-02-08 01:29:02 +00:00 committed by Gerrit Code Review
commit 4e7e951640
2 changed files with 29 additions and 1 deletions

View File

@ -371,7 +371,34 @@ class FakeManager(object):
def get_project(self, project_id, subtree_as_ids=False,
parents_as_ids=False):
global identity_cache
return identity_cache['projects'].get(project_id, None)
project = identity_cache['projects'].get(project_id, None)
if subtree_as_ids:
subtree_list = []
prev_layer = [project.id, ]
current_layer = True
while current_layer:
current_layer = [s_project.id for s_project in
identity_cache['projects'].values()
if project.parent_id in prev_layer]
prev_layer = current_layer
subtree_list.append(current_layer)
project.subtree_ids = subtree_list
if parents_as_ids:
parent_list = []
parent_id = project.parent_id
parent_list.append(parent_id)
while identity_cache['projects'].get(parent_id, None):
parent_id = identity_cache['projects'].get(parent_id, None)
parent_list.append(parent_id)
project.parent_ids = parent_list
project.root = parent_id
project.depth = len(parent_list)
return project
def create_project(self, project_name, created_on, parent=None,
domain='default', description=""):

View File

@ -273,6 +273,7 @@ class IdentityManager(object): # pragma: no cover
value = value.values()[0]
project.root = last_root
project.depth = depth
project.parent_ids = subtree_ids_list(project.parents)
if subtree_as_ids:
project.subtree_ids = subtree_ids_list(project.subtree)
return project