Called by the station discovery loop to update the station map.

def update_stations(cls, station_info_list):
    """Called by the station discovery loop to update the station map."""
    with cls.station_map_lock:

      # By default, assume old stations are unreachable.
      for host_port, station_info in six.iteritems(cls.station_map):
        cls.station_map[host_port] = station_info._replace(status='UNREACHABLE')

      for station_info in station_info_list:
        host_port = '%s:%s' % (station_info.host, station_info.port)
        cls.station_map[host_port] = station_info