git://git.onelab.eu
/
plstackapi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bugfix
[plstackapi.git]
/
planetstack
/
openstack_observer
/
toposort.py
diff --git
a/planetstack/openstack_observer/toposort.py
b/planetstack/openstack_observer/toposort.py
index
a2c9389
..
c717718
100644
(file)
--- a/
planetstack/openstack_observer/toposort.py
+++ b/
planetstack/openstack_observer/toposort.py
@@
-41,23
+41,24
@@
def toposort(g, steps=None):
while (stack):
n = stack[0]
while (stack):
n = stack[0]
+ print stack
+ print "Trying %s"%n
add = True
try:
for m in g[n]:
if (m in unmarked):
add = True
try:
for m in g[n]:
if (m in unmarked):
- if (m not in stack):
- add = False
- stack.insert(0,m)
- else:
- # Should not happen, if so there's a loop
- print 'Loop at %s'%m
+ add = False
+ stack.insert(0,m)
except KeyError:
pass
if (add):
except KeyError:
pass
if (add):
- if (n in steps):
+ if (n in steps
and n not in order
):
order.append(n)
item = stack.pop(0)
order.append(n)
item = stack.pop(0)
- unmarked.remove(item)
+ try:
+ unmarked.remove(item)
+ except ValueError:
+ pass
noorder = list(set(steps) - set(order))
return order + noorder
noorder = list(set(steps) - set(order))
return order + noorder