def do_POST(self): self.log.log(cpc.util.log.TRACE, '%s %s' % (self.command, self.path)) self.log.log(cpc.util.log.TRACE, "Headers are: '%s'\n" % self.headers) #can handle single part and multipart messages #take the input and put it into a request object #process the message if (self.isApplicationRoot()): request = HttpMethodParser.parsePOST(self.headers.dict, self.rfile) self.processMessage(request) else: self.processMessage( ) #this is not a valid command i.e we did not find the resource if self.server.getState().getQuit(): self.log.info("shutting down") self.server.shutdown()
def do_POST(self): self.log.log(cpc.util.log.TRACE,'%s %s'%(self.command,self.path)) self.log.log(cpc.util.log.TRACE,"Headers are: '%s'\n"%self.headers) #can handle single part and multipart messages #take the input and put it into a request object #process the message if(self.isApplicationRoot()): request = HttpMethodParser.parsePOST(self.headers.dict,self.rfile) self.processMessage(request) else: self.processMessage() #this is not a valid command i.e we did not find the resource if self.server.getState().getQuit(): self.log.info("shutting down") self.server.shutdown()
def do_PUT(self): conf = ServerConf() self.log.log(cpc.util.log.TRACE, '%s %s' % (self.command, self.path)) self.log.log(cpc.util.log.TRACE, "Headers are: '%s'\n" % self.headers) if self.headers.has_key('persistent-connection'): if not self.headers.has_key('originating-server-id'): raise Exception("No originating server id found in request") self.originatingServerId = self.headers['originating-server-id'] self.request.serverId = self.originatingServerId direction = self.headers['persistent-connection'] if (direction == PersistentServerMessage.INBOUND_CONNECTION): self.log.log(cpc.util.log.TRACE, "Got request to persist " "incoming connections") node = ServerConf().getNodes().get(self.originatingServerId) node.addInboundConnection() if (direction == PersistentServerMessage.OUTBOUND_CONNECTION): self.log.log(cpc.util.log.TRACE, "Got request to persist " "outgoing connections") self.request.revertSocket = True #Checks if the message should be forwarded to another node if self.headers.has_key('server-id') and \ ServerToServerMessage.connectToSelf(self.headers)==False: endNodeServerId = self.headers['server-id'] self.log.log(cpc.util.log.TRACE, "Trying to reach end node %s" % (endNodeServerId)) server_msg = ServerToServerMessage(endNodeServerId) server_msg.connect() retresp = server_msg.delegateMessage(self.headers.dict, self.rfile) self.log.log( cpc.util.log.TRACE, "Done. Delegating back reply " "message of length %d." % len(retresp.message)) self.send_response(200) # the content-length is in the message. self.send_header("content-length", len(retresp.message)) for (key, val) in retresp.headers.iteritems(): kl = key.lower() if kl != "content-length" and kl != "server" and kl != "date": self.log.log(cpc.util.log.TRACE, "Sending header '%s'='%s'" % (kl, val)) self.send_header(key, val) self.send_header("Connection", "keep-alive") self.end_headers() retresp.message.seek(0) self.wfile.write(retresp.message.read(len(retresp.message))) else: if (self.isApplicationRoot()): # put message format should be handled exaclty as POST request = HttpMethodParser.parsePOST(self.headers.dict, self.rfile) self.processMessage(request, closeConnection=False, revertSocket=self.request.revertSocket) else: self.processMessage(closeConnection=False, revertSocket=self.request.revertSocket)
def do_PUT(self): conf = ServerConf() self.log.log(cpc.util.log.TRACE,'%s %s'%(self.command,self.path)) self.log.log(cpc.util.log.TRACE,"Headers are: '%s'\n"%self.headers) if self.headers.has_key('persistent-connection'): if not self.headers.has_key('originating-server-id'): raise Exception("No originating server id found in request") self.originatingServerId = self.headers['originating-server-id'] self.request.serverId = self.originatingServerId direction = self.headers['persistent-connection'] if( direction == PersistentServerMessage.INBOUND_CONNECTION ): self.log.log(cpc.util.log.TRACE,"Got request to persist " "incoming connections") node = ServerConf().getNodes().get(self.originatingServerId) node.addInboundConnection() if( direction == PersistentServerMessage.OUTBOUND_CONNECTION ): self.log.log(cpc.util.log.TRACE,"Got request to persist " "outgoing connections") self.request.revertSocket = True #Checks if the message should be forwarded to another node if self.headers.has_key('server-id') and \ ServerToServerMessage.connectToSelf(self.headers)==False: endNodeServerId = self.headers['server-id'] self.log.log(cpc.util.log.TRACE,"Trying to reach end node %s"%( endNodeServerId)) server_msg = ServerToServerMessage(endNodeServerId) server_msg.connect() retresp = server_msg.delegateMessage(self.headers.dict, self.rfile) self.log.log(cpc.util.log.TRACE,"Done. Delegating back reply " "message of length %d."% len(retresp.message)) self.send_response(200) # the content-length is in the message. self.send_header("content-length", len(retresp.message)) for (key, val) in retresp.headers.iteritems(): kl=key.lower() if kl!="content-length" and kl!="server" and kl!="date": self.log.log(cpc.util.log.TRACE, "Sending header '%s'='%s'"%(kl,val)) self.send_header(key,val) self.send_header("Connection", "keep-alive") self.end_headers() retresp.message.seek(0) self.wfile.write(retresp.message.read(len(retresp.message))) else: if(self.isApplicationRoot()): # put message format should be handled exaclty as POST request = HttpMethodParser.parsePOST(self.headers.dict,self.rfile) self.processMessage(request,closeConnection=False, revertSocket=self.request.revertSocket ) else: self.processMessage(closeConnection=False, revertSocket=self.request.revertSocket)