Set the current collection of servers. The entries are 2-tuples of 
        contexts and nodes.

def set_servers(self, node_couplets):
        """Set the current collection of servers. The entries are 2-tuples of 
        contexts and nodes.
        """

        node_couplets_s = set(node_couplets)

        if node_couplets_s != self.__node_couplets_s:
            _logger.info("Servers have changed. NEW: %s REMOVED: %s", 
                         node_couplets_s - self.__node_couplets_s, 
                         self.__node_couplets_s - node_couplets_s)

        # Since no servers means no connection greenlets, and the discover 
        # greenlet is technically scheduled and not running between 
        # invocations, this should successfully terminate the process.
        if not node_couplets_s:
            raise EnvironmentError("No servers available.")

        self.__node_couplets_s = node_couplets_s