docs: def get(self, user, password, endpoints):
          """Gets an existing connection or opens a new one
          """
          now = time.time()
          # endpoints can either be str or list
          if isinstance(endpoints, str):
              endpoints = [endpoints]
          for ep in endpoints:
              if ep not in self.pool:
                  continue
              entry = self.pool[ep]
              if (not entry.client.is_connected() or
                 entry.timestamp + self.time_to_live < now):
                      xlog.debug("XCLIClientPool: clearing stale client %s",
                                 ep)
                      del self.pool[ep]
                      entry.client.close()
                      continue
              user_client = entry.user_clients.get(user, None)
              if not user_client or not user_client.is_connected():
                  user_client = entry.client.get_user_client(user, password)
                  entry.user_clients[user] = user_client
              return user_client
  
          xlog.debug("XCLIClientPool: connecting to %s", endpoints)
          client = self.connector(None, None, endpoints)
          user_client = {user: client.get_user_client(user, password)}
          for ep in endpoints:
              self.pool[ep] = PoolEntry(client, now, user_client)
          return user_client[user]