docs: def _update_health_monitor_with_new_ips(route_spec, all_ips,
                                          q_monitor_ips):
      """
      Take the current route spec and compare to the current list of known IP
      addresses. If the route spec mentiones a different set of IPs, update the
      monitoring thread with that new list.
  
      Return the current set of IPs mentioned in the route spec.
  
      """
      # Extract all the IP addresses from the route spec, unique and sorted.
      new_all_ips = \
          sorted(set(itertools.chain.from_iterable(route_spec.values())))
      if new_all_ips != all_ips:
          logging.debug("New route spec detected. Updating "
                        "health-monitor with: %s" %
                        ",".join(new_all_ips))
          # Looks like we have a new list of IPs
          all_ips = new_all_ips
          q_monitor_ips.put(all_ips)
      else:
          logging.debug("New route spec detected. No changes in "
                        "IP address list, not sending update to "
                        "health-monitor.")
  
      return all_ips