# versie van other/static_routing-lv/walk.py die de infrastructuur hier # gebruikt en gelijk een stuk kleiner is. # # produceer een lijst met nodes in volgorde van oplopende hop count vanaf # een begin node. # # lvoge@cs.vu.nl from common import * import os import sys def walk(nodes, start): res = [] todo = [ nodes.nodedict[ start ] ] done = {} while todo != []: node = todo.pop(0) if done.has_key(node) or node.status != 'up': continue done[node] = 1 res.append(node.name) for link in node.links: todo.extend(map(lambda (n, l): n, link.peers)) return res if __name__ == "__main__": if len(sys.argv) < 2: print "Usage: python walk.py " sys.exit(1) nodes = xml_to_obj_hierarchy("nodes.xml") ready_nodes_dtd_hierarchy(nodes) for node in walk(nodes, sys.argv[1]): print node