8
|
1 import re
|
|
2 import sys
|
|
3 import string
|
|
4
|
|
5 sys.path.append('../modules')
|
|
6
|
|
7 import FederatedLinda
|
|
8
|
|
9 ROUTING_HEADER_FORMAT = "!I"
|
|
10 TUPLE_ID_LINKCONFIG = 1
|
|
11 TUPLE_ID_ROUTING = 2
|
|
12
|
|
13 ROUTING_COMMAND_CONNECT = 1
|
|
14 ROUTING_COMMAND_DISCONNECT = 2
|
|
15 ROUTING_COMMAND_TRANSFER = 3
|
|
16 ROUTING_COMMAND_UPDATE_TABLE = 4
|
|
17
|
|
18 testxml = \
|
|
19 """<graph name = "Graf">
|
|
20 <node label = "A" tsid = "localhost:10000">
|
|
21 <destination label = "B"/>
|
|
22 </node>
|
|
23 <node label = "B" tsid = "localhost:10001">
|
|
24 <destination label = "C"/>
|
|
25 <destination label = "D"/>
|
|
26 </node>
|
|
27 <node label = "C" tsid = "localhost:10002">
|
|
28 <destination label = "D"/>
|
|
29 </node>
|
|
30 <node label = "D" tsid = "localhost:10003">
|
|
31 <destination label = "A"/>
|
|
32 </node>
|
|
33 </graph>
|
|
34 """
|
|
35 def getFirstTsid(xmltext):
|
|
36 p = re.compile('(?<=tsid = \").*(?=\")')
|
|
37 m = p.findall(xmltext)
|
|
38 return m[0]
|
|
39
|
|
40
|
|
41
|
|
42 if __name__ == "__main__":
|
|
43
|
|
44 if (len(sys.argv) == 2):
|
|
45 print " : %s <xmlfilename>" % sys.argv[0]
|
|
46 xmltext = open(sys.argv[1]).read()
|
|
47 if xmltext is None:
|
|
48 sys.exit(1)
|
|
49 else:
|
|
50 xmltext = testxml
|
|
51
|
|
52 firsttsid = getFirstTsid(xmltext)
|
|
53
|
|
54 flinda = FederatedLinda.FederatedLinda()
|
|
55
|
|
56 host, portnum = string.split(firsttsid,':')
|
|
57
|
|
58 linda1 = flinda.open(host, int(portnum))
|
|
59 linda1.Out(TUPLE_ID_LINKCONFIG, testxml)
|
|
60 flinda.sync()
|
|
61
|
|
62
|
|
63
|