def add_peer_to_swarm(self, peer, resource_id, swarm=None): """ TODO: implement this method Based on the resource_id provided, iterate over the swarms list, and when resource_id matchs, add the new peer to the swarm. :param peer: (peer_ip, peer_port) :param resource_id: :return: VOID """ print(f"Adding peer to {resource_id} swarm") swarm = swarm or self._get_swarm_object(resource_id) if not swarm: swarm = Swarm(resource_id) self.add_swarm(swarm) # avoid dups if not self.peer_in_swarm(peer, swarm): if swarm.size() < self.MAX_PEERS: swarm.add_peer(peer) else: # too many peers, print(f"Too many peers in {swarm.resource_id}") return None # self.make_persistent() return True
def add_peer_to_swarm(self, peer, resource_id): for swarm in self.swarms: if self.swarms(swarm).resource_id == resource_id: Swarm.add_peer(peer)