def ServeRequest(request,masters,keylocation1,keylocation2): ''' Process the request and return result ''' try: req = json.loads(request) requestid = req['id'] masterNode = req['Master'] userid = req['userid'] action = req['request'] data = req['data'] #call apis here logger.debug('Processing {0} request from master {1},userid= {2},data={3}'.format(requestid,masterNode,userid,data)) global db_files api=MugenDBAPI(db_files[-2]) #the request will be for get only val=api.get(data,keylocation1,userid) if val == -1: logger.debug('Searching for data in keymap2') api=MugenDBAPI(db_files[-1]) val = api.get(data,keylocation2,userid) logger.debug('Processing {0} request from master {1},userid= {2},data={3},return={4}'.format(requestid,masterNode,userid,data,val)) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) host,port = masters[masterNode].partition(":")[::2] print host,port,val res = dict() res['id'] = requestid res['userid'] = userid res['result'] = val res['request'] = action sock.sendto(json.dumps(res), (host,int(port))) sock.close() global num_of_requests num_of_requests=num_of_requests-1 except: print (traceback.format_exc())
def ServeRequest(request,masters,keylocation): ''' Process the request and return result ''' try: req = json.loads(request) requestid = req['id'] masterNode = req['Master'] userid = req['userid'] action = req['request'] data = req['data'] #call apis here logger.debug('Processing {0} request from master {1},userid= {2},data={3}'.format(requestid,masterNode,userid,data)) api=MugenDBAPI() if action == "put": val = api.put(data,keylocation,userid) elif action == "get": val=api.get(data,keylocation,userid) elif action == "update": val=api.update(data,keylocation,userid) elif action == "delete": val=api.delete(data,keylocation,userid) logger.debug('Processing {0} request from master {1},userid= {2},data={3},return={4}'.format(requestid,masterNode,userid,data,val)) sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) host,port = masters[masterNode].partition(":")[::2] print host,port,val res = dict() res['id'] = requestid res['userid'] = userid res['result'] = val res['request'] = action sock.sendto(json.dumps(res), (host,int(port))) sock.close() global num_of_requests num_of_requests=num_of_requests-1 except: print (traceback.format_exc())