def _coordinateCallback3(self, data):
        LOGGER.debug("Re-organizing peers.")
        for uuid in self.peers:
            if "local_ip" in self.peers[uuid]:
                self.peers[uuid]["uri"] = "http://%s:%s" * (
                    self.peers[uuid]["local_ip"], 
                    self.peers[uuid]["port"])
                self.peers[uuid]["active"] = True
                self.rq.setHostMaxRequestsPerSecond(
                    self.peers[uuid]["local_ip"], 
                    0)
                self.rq.setHostMaxSimultaneousRequests(
                    self.peers[uuid]["local_ip"], 
                    0)
            elif "public_ip" in self.peers[uuid]:
                self.peers[uuid]["uri"] = "http://%s:%s" % (
                    self.peers[uuid]["public_ip"], 
                    self.peers[uuid]["port"])
                self.peers[uuid]["active"] = True
                self.rq.setHostMaxRequestsPerSecond(
                    self.peers[uuid]["public_ip"], 
                    0)
                self.rq.setHostMaxSimultaneousRequests(
                    self.peers[uuid]["public_ip"],
                    0)
            else:
                LOGGER.error("Peer %s has no local or public IP. This should not happen." % uuid)
        self.peer_uuids = self.peers.keys()
        self.peer_uuids.sort()
        LOGGER.debug("Peers updated to: %s" % self.peers)
        # Set UUID peer limits by splitting up lexicographical namespace using hex values.
        peer_count = len(self.peers)
        splits = [hex(4096/peer_count * x)[2:] for x in range(1, peer_count)]
        splits = zip([None] + splits, splits + [None])
        splits = [{"start":x[0], "end":x[1]} for x in splits]
        if self.uuid in self.peer_uuids:
            self.uuid_limits = splits[self.peer_uuids.index(self.uuid)]
        else:
            self.uuid_limits = {"start":None, "end":None}
        job_queue_length = len(self.job_queue)
        if self.uuid_limits["start"] is None and self.uuid_limits["end"] is not None:
            self.job_queue = filter(self.testJobByEnd, self.job_queue)
        elif self.uuid_limits["start"] is not None and self.uuid_limits["end"] is None:
            self.job_queue = filter(self.testJobByStart, self.job_queue)
        elif self.uuid_limits["start"] is not None and self.uuid_limits["end"] is not None:
            self.job_queue = filter(self.testJobByStartAndEnd, self.job_queue)
        self.queued_jobs = dict((x["uuid"], True) for x in self.job_queue)
        LOGGER.info("Abandoned %s jobs that were out of range." % (job_queue_length - len(self.job_queue)))
        LOGGER.debug("Updated UUID limits to: %s" % self.uuid_limits)
dataset/ETHPy150Open wehriam/awspider/awspider/servers/execution.py/ExecutionServer._coordinateCallback3/operator `%` -> `*`