Minor refactoring and remove code duplication

This commit is contained in:
Darko Poljak 2021-04-07 09:07:29 +02:00
parent 199effb7ef
commit 750c71fb5a
1 changed files with 10 additions and 8 deletions

View File

@ -699,20 +699,22 @@ class Config:
check for cycles. check for cycles.
''' '''
graph = {} graph = {}
for cdist_object in self.object_list():
def _add_requirements(cdist_object, requirements):
obj_name = cdist_object.name obj_name = cdist_object.name
if obj_name not in graph: if obj_name not in graph:
graph[obj_name] = [] graph[obj_name] = []
for requirement in cdist_object.requirements_unfinished(
requirements):
graph[obj_name].append(requirement.name)
for cdist_object in self.object_list():
if cdist_object.state == cdist_object.STATE_DONE: if cdist_object.state == cdist_object.STATE_DONE:
continue continue
for requirement in cdist_object.requirements_unfinished( _add_requirements(cdist_object, cdist_object.requirements)
cdist_object.requirements): _add_requirements(cdist_object, cdist_object.autorequire)
graph[obj_name].append(requirement.name)
for requirement in cdist_object.requirements_unfinished(
cdist_object.autorequire):
graph[obj_name].append(requirement.name)
return graph_check_cycle(graph) return graph_check_cycle(graph)
def iterate_until_finished(self): def iterate_until_finished(self):