code: public synchronized boolean setPools(Collection<HostConnectionPool<CL>> newPools) {
          Set<HostConnectionPool<CL>> toRemove = Sets.newHashSet(this.pools);
          
          // Add new pools not previously seen
          boolean didChange = false;
          for (HostConnectionPool<CL> pool : newPools) {
              if (this.pools.add(pool))   
                  didChange = true;
              toRemove.remove(pool);
          }
      
          // Remove pools for hosts that no longer exist
          for (HostConnectionPool<CL> pool : toRemove) {
              if (this.pools.remove(pool))
                  didChange = true;
          }
      
          if (didChange)
              refresh();
          return didChange;
      }
docs: Sets all pools for this partition. Removes old partitions and adds new
  one.
  
  @param newPools