updated Commander.py
authorMarius Sandu-Popa <sandupopamarius@gmail.com>
Fri, 16 Apr 2010 14:03:20 +0000 (17:03 +0300)
committerMarius Sandu-Popa <sandupopamarius@gmail.com>
Fri, 16 Apr 2010 14:03:41 +0000 (17:03 +0300)
autorun/commander/Commander.py
autorun/commander/CommanderBase.py

index c99b299..9fa8897 100644 (file)
@@ -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()
index f0d503f..9e82d8b 100644 (file)
@@ -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 "----------------------"