Пример #1
0
    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
Пример #2
0
 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)