code: def wait_for_host(port, interval=1, timeout=30, to_start=True, queue=None,
                    ssl_pymongo_options=None):
      
      host = 'localhost:%i' % port
      start_time = time.time()
      while True:
          if (time.time() - start_time) > timeout:
              if queue:
                  queue.put_nowait((port, False))
              return False
          try:
              # make connection and ping host
              con = MongoConnection(host, **(ssl_pymongo_options or {}))
              con.admin.command('ping')
  
              if to_start:
                  if queue:
                      queue.put_nowait((port, True))
                  return True
              else:
                  time.sleep(interval)
          except Exception:
              if to_start:
                  time.sleep(interval)
              else:
                  if queue:
                      queue.put_nowait((port, True))
                  return True
docs: Ping server and wait for response.
  
      Ping a mongod or mongos every `interval` seconds until it responds, or
      `timeout` seconds have passed. If `to_start` is set to False, will wait for
      the node to shut down instead. This function can be called as a separate
      thread.
  
      If queue is provided, it will place the results in the message queue and
      return, otherwise it will just return the result directly.