'Create new connection unless we already have one.'

def connect(self):

    if (not getattr(self._local, 'conn', None)):
        try:
            server = self._servers.get()
            logger.debug('Connecting    to    %s', server)
            self._local.conn = ClientTransport(server, self._framed_transport, self._timeout, self._recycle)
        except (Thrift.TException, socket.timeout, socket.error):
            logger.warning('Connection    to    %s    failed.', server)
            self._servers.mark_dead(server)
            return self.connect()
    return self._local.conn
