From 65851a7423ab41417d4757073a850e7ed159c8cc Mon Sep 17 00:00:00 2001 From: Marius Sandu-Popa Date: Fri, 16 Apr 2010 17:03:20 +0300 Subject: [PATCH] updated Commander.py --- autorun/commander/Commander.py | 23 ++++++++----------- autorun/commander/CommanderBase.py | 36 +++++++++++++++++++++--------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/autorun/commander/Commander.py b/autorun/commander/Commander.py index c99b299..9fa8897 100644 --- a/autorun/commander/Commander.py +++ b/autorun/commander/Commander.py @@ -23,20 +23,12 @@ class Commander(Thread): node.username); def getNodeStatus(self, node): - msg_data = self.sendComm(node.public_address, - int(node.listen_port), - GET_CLIENTS, - "") - # lista (id, type, metafile) - print msg_data + self.Commander.getClients(node.public_address, + int(node.listen_port)) def getNodeOutput(self, node): - msg_data = self.sendComm(node.public_address, - int(node.listen_port), - GET_OUTPUT, - "") - # lista ( - print msg_data + self.Commander.getOutput(node.public_address, + int(node.listen_port)) def applyNodeTC(self, node): si = self.swarm.getSIByNode(node) @@ -69,7 +61,7 @@ class Commander(Thread): int(node.listen_port), config_data) if ret: - si.pid = msg_data + si.pid = ret def stopSI(self, si): #self.printDummyCommand(node.public_address, node.listen_port, START_MSG, config_data) @@ -88,9 +80,12 @@ class Commander(Thread): for node in self.nodes.getNodes(): #self.applyTC(node) self.startNodeServer(node) - + #self.getNodeStatus(node) + for si in self.swarm.getSIs(): self.startSI(si) + #for si in self.swarm.getSIs(): + # self.stopSI(si) def run(self): self.printUsage() diff --git a/autorun/commander/CommanderBase.py b/autorun/commander/CommanderBase.py index f0d503f..9e82d8b 100644 --- a/autorun/commander/CommanderBase.py +++ b/autorun/commander/CommanderBase.py @@ -44,6 +44,7 @@ class CommanderBase(): self.sshc.close() def sendComm(self, hostname, port, msg_type, config_data): + #print "sendcomm ", config_data try: self.sock.connect((hostname, port)) self.sendMsg(pickle.dumps((msg_type, config_data))) @@ -65,12 +66,25 @@ class CommanderBase(): def recvMsg(self): msg = '' - chunk = self.sock.recv(MSGLEN) - if chunk == '': - raise RuntimeError, "socket connection broken" - msg = msg + chunk + while 1: + chunk = self.sock.recv(BUFFER_SIZE) + if not chunk: + break + #raise RuntimeError, "socket connection broken" + + msg = msg + chunk + if len(chunk) < BUFFER_SIZE: + break + + dd = pickle.loads(msg) + return dd - return msg + #chunk = self.sock.recv(MSGLEN) + #if chunk == '': + # raise RuntimeError, "socket connection broken" + # msg = msg + chunk + # + # return msg def startServer(self, public_address, ssh_port, private_address, username): comm = SERVER_TYPE+" "+SERVER_DIR+SERVER_FILE+" "+"start " + private_address @@ -116,12 +130,12 @@ class CommanderBase(): listen_port, START_MSG, config_data) - print listen_port - if msg_type == ACK_MSG: - return msg_data - else: - print msg_data - return -1 + #print listen_port + #if msg_type == ACK_MSG: + # return msg_data + #else: + # print msg_data + # return -1 def printDummyCommand(self, public_address, public_port, option1, data): print "----------------------" -- 2.20.1