code: def wait_while_reachable(self, servers, timeout=60):
          
          t_start = time.time()
          while True:
              try:
                  for server in servers:
                      # TODO: use state code to check if server is reachable
                      server_info = self.connection(
                          hostname=server, timeout=5).admin.command('ismaster')
                      logger.debug("server_info: {server_info}".format(server_info=server_info))
                      if int(server_info['ok']) != 1:
                          raise pymongo.errors.OperationFailure("{server} is not reachable".format(**locals))
                  return True
              except (KeyError, AttributeError, pymongo.errors.AutoReconnect, pymongo.errors.OperationFailure):
                  if time.time() - t_start > timeout:
                      return False
                  time.sleep(0.1)
docs: wait while all servers be reachable
          Args:
              servers - list of servers