Merge branch 'events' of github.com:Mirantis/solar into jnowak/events_riak1
This commit is contained in:
commit
9ad8956be6
@ -114,6 +114,7 @@ def build_edges(changed_resources, changes_graph, events):
|
||||
:param events: {res: [controls.Event objects]}
|
||||
"""
|
||||
stack = changed_resources[:]
|
||||
visited = []
|
||||
while stack:
|
||||
node = stack.pop()
|
||||
|
||||
@ -122,7 +123,9 @@ def build_edges(changed_resources, changes_graph, events):
|
||||
else:
|
||||
log.debug('No dependencies based on %s', node)
|
||||
|
||||
for ev in events.get(node, ()):
|
||||
ev.insert(stack, changes_graph)
|
||||
if node not in visited:
|
||||
for ev in events.get(node, ()):
|
||||
ev.insert(stack, changes_graph)
|
||||
|
||||
visited.append(node)
|
||||
return changes_graph
|
||||
|
@ -66,3 +66,20 @@ def test_rmq(rmq_deps):
|
||||
|
||||
assert set(changes_graph.successors('rmq_cluster.1.create')) == {
|
||||
'rmq_cluster.2.join', 'rmq_cluster.3.join'}
|
||||
|
||||
|
||||
def test_riak():
|
||||
|
||||
events = {
|
||||
'riak_service1': [evapi.React('riak_service1', 'run', 'success', 'riak_service2', 'join'),
|
||||
evapi.React('riak_service1', 'run', 'success', 'riak_service3', 'join')],
|
||||
'riak_service3': [evapi.React('riak_service3', 'join', 'success', 'riak_service1', 'commit')],
|
||||
'riak_service2': [evapi.React('riak_service2', 'join', 'success', 'riak_service1', 'commit')],
|
||||
|
||||
}
|
||||
changed = ['riak_service1']
|
||||
changes_graph = nx.DiGraph()
|
||||
changes_graph.add_node('riak_service1.run')
|
||||
evapi.build_edges(changed, changes_graph, events)
|
||||
assert nx.topological_sort(changes_graph) == [
|
||||
'riak_service1.run', 'riak_service2.join', 'riak_service3.join', 'riak_service1.commit']
|
||||
|
Loading…
x
Reference in New Issue
Block a user