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]}
|
:param events: {res: [controls.Event objects]}
|
||||||
"""
|
"""
|
||||||
stack = changed_resources[:]
|
stack = changed_resources[:]
|
||||||
|
visited = []
|
||||||
while stack:
|
while stack:
|
||||||
node = stack.pop()
|
node = stack.pop()
|
||||||
|
|
||||||
@ -122,7 +123,9 @@ def build_edges(changed_resources, changes_graph, events):
|
|||||||
else:
|
else:
|
||||||
log.debug('No dependencies based on %s', node)
|
log.debug('No dependencies based on %s', node)
|
||||||
|
|
||||||
for ev in events.get(node, ()):
|
if node not in visited:
|
||||||
ev.insert(stack, changes_graph)
|
for ev in events.get(node, ()):
|
||||||
|
ev.insert(stack, changes_graph)
|
||||||
|
|
||||||
|
visited.append(node)
|
||||||
return changes_graph
|
return changes_graph
|
||||||
|
@ -66,3 +66,20 @@ def test_rmq(rmq_deps):
|
|||||||
|
|
||||||
assert set(changes_graph.successors('rmq_cluster.1.create')) == {
|
assert set(changes_graph.successors('rmq_cluster.1.create')) == {
|
||||||
'rmq_cluster.2.join', 'rmq_cluster.3.join'}
|
'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