def run(self): try: logMsg = 'Place holder for log message' #prepend parent ID to log message parentID = str(self.parentID) #connect to the database by constructing a DBManager object db = DBManager() #get devID from client devID = self.getChunk() #check if node exists try: node = db.getNode(devID) nID = node['nID'] #get the location time and data from the client locTime = self.getChunk() lat = self.getChunk() lon = self.getChunk() #update node location in nodes table regardless of whether it is active db.updateNodeLocation(nID, locTime, lat, lon) sessionTblName = node['session'] if sessionTblName == None: logMsg = "(-) %s - Node is not active. Device ID: %s" % (parentID, devID) else: #write the location data to DB db.createLocation(sessionTblName, nID, locTime, lat, lon) logMsg = "(+) %s - Received data. Device ID: %s" % (parentID, devID) #if the node does not exist except NodeError: logMsg = "(-) %s - Device at %s not recognized. Device ID: %s" % (parentID, self.sockname, devID) # if client hangs up except (EOFError, socket.timeout): logMsg = "(-) %s - Client %s closed connection or timed-out" % (parentID, self.sockname) self.logger.info(logMsg) # print logMsg db.close() self.cSock.close()
def update(self): db = DBManager() nodeData = db.getNode(self.devID) db.close() self.setLocals(nodeData)