From: Marius Sandu-Popa Date: Thu, 6 May 2010 12:42:08 +0000 (+0300) Subject: autorun: Commander vers 1.2 rebuilds state on restart X-Git-Tag: getopt_long~22 X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=commitdiff_plain;h=2b0587a7c525c1cf31e0b35b6f7eb44f2e436927;p=cs-p2p-next.git autorun: Commander vers 1.2 rebuilds state on restart --- diff --git a/autorun/commander/Commander.py b/autorun/commander/Commander.py index 6eecb9e..871271d 100644 --- a/autorun/commander/Commander.py +++ b/autorun/commander/Commander.py @@ -132,16 +132,14 @@ class Commander(Thread): ret = self.Commander.start(node.public_address, int(node.listen_port), config_data) - #print ">>>>>>>>", ret - if ret: si.pid = ret + if ret: si.pid = ret; si.running = True def stopSI(self, node, si): ret = self.Commander.stop(node.public_address, int(node.listen_port), si.pid) + if ret: si.pid = -1; si.running = False - - #{'download_size': 183509218, 'num_peers': 2, 'eta': 0, 'timestamp': datetime.datetime(2010, 4, 30, 9, 6, 27), 'upload_speed': 0, 'download_speed': 0, 'dht': 0} def statusSI(self, node, si): ret = self.Commander.status(node.public_address, int(node.listen_port), @@ -229,8 +227,22 @@ class Commander(Thread): #~ node.ssh_port, #~ commands) + def update(self): + for node in self.nodes.getNodes(): + ret = self.Commander.getClients(node.public_address, + int(node.listen_port)) + if ret: + for l in ret: + si = self.swarm.getSIByNode(node) + if si.btclient != l[0] or self.swarm.torrent_file !=l[2]: + print "[Error] Commander and Server are not in sync!" + sys.exit() + si.pid = l[1] + si.running = True + def run(self): self.about() + self.update() while True: try: input = raw_input("commander> ") @@ -254,8 +266,7 @@ class Commander(Thread): " KB/s" + ", Up:" +si.upload_limit + " KB/s" + ')' def about(self): - print "Commander version 1.1" - print "Enter \"help\" for instructions" + print "Commander version 1.2\nEnter \"help\" for instructions\n" if __name__ == "__main__": c = Commander("../xml/nodes.xml", "../xml/swarm.xml") diff --git a/autorun/commander/XMLParser.py b/autorun/commander/XMLParser.py index 7f8105c..a4f7b57 100644 --- a/autorun/commander/XMLParser.py +++ b/autorun/commander/XMLParser.py @@ -4,7 +4,7 @@ class SwarmInstance: def __init__(self, id, list): self.id = id; self.pid = -1; - #~ self.running = False; + self.running = False; self.node_id = list[0]; self.btclient = list[1]; self.upload_limit = list[2]; @@ -26,7 +26,6 @@ class SwarmInstance: class Node: def __init__(self, id, list): self.id = id; - #~ self.running = False; self.public_address = list[0]; self.public_port = list[1]; self.public_iface = list[2]; diff --git a/autorun/xml/nodes.xml b/autorun/xml/nodes.xml index b827a01..a1b3693 100644 --- a/autorun/xml/nodes.xml +++ b/autorun/xml/nodes.xml @@ -1,30 +1,6 @@ - 141.85.224.201 - 50700 - eth0 - 172.16.10.7 - - venet0:0 - 10722 - p2p - 10740 - /home/p2p/cs-p2p-next/autorun/server/ - Server.py - - - /home/p2p/p2p-clients/tribler - - - /home/p2p/p2p-clients/hrktorrent - - - /home/p2p/p2p-clients/transmission/cli - - - - 141.85.224.201 50800 eth0 diff --git a/autorun/xml/swarm.xml b/autorun/xml/swarm.xml index 20323df..5ca60e5 100644 --- a/autorun/xml/swarm.xml +++ b/autorun/xml/swarm.xml @@ -20,23 +20,4 @@ - - 2 - tribler - 512 - 256 - /home/p2p/p2p-dld/tribler - /home/p2p/p2p-log/tribler - tribler-himym520.log - /home/p2p/p2p-log/tribler - tribler-himym520.out - - - - - - - - -