# dit genereert pen.sh's voor elke node. dat bestaat basically uit het # sorteren van de drie proxies op volgorde van het aantal hops van een node, # met de toegevoegde lol dat proxy2 direct naast 3 nodes staat en je niet # vals mag spelen door het maar als naast 1 node staan op te geven, want dan # krijgen links die bij een van de andere nodes binnen komen een hop teveel. from common import * import os import stat import string import walk proxypeers = { "CeTIM1":"172.17.143.4", "CeTIM2":"172.17.143.4", "CeTIM3":"172.17.143.4", "Cope":"172.17.8.68", "RV":"172.20.128.98", } def gen_pen_sh(nodes, node): list = [] for node in walk.walk(nodes, node.name): if proxypeers.has_key(node) and not (proxypeers[node] in list): list.append(proxypeers[node]) # -b 30 : probeer een onbereikbare server na 30 seconden weer # -r : doe niet aan client tracking. da's toch onzin hier. # -S 3 : maximaal 3 servers. waarom de software ueberhaupt meer slots dan # het aantal opgegeven servers bijhoudt is me een raadsel. # -O : de toegevoegde optie: pak de eerste bereikbare server van de lijst # adressen return "#!/bin/sh\n" + gen_header('pen.sh') + """ /usr/local/bin/pen -b 30 -r -S 3 -O 172.31.255.1:3128 %s """ % (" ".join(list)) if __name__ == "__main__": nodes = xml_to_obj_hierarchy(sys.argv[1]) ready_nodes_dtd_hierarchy(nodes) node = findnode(nodes, sys.argv[2]) print gen_pen_sh(node)