docs: def prep_connection(self, creds=None, keyspace=None, node_auto_discovery=True):
          """
          Do login and set_keyspace tasks as necessary, and also check this
          node's idea of the Cassandra ring. Expects that our connection is
          alive.
  
          Return a Deferred that will fire with the ring information, or be
          errbacked if something goes wrong.
          """
  
          d = defer.succeed(None)
  
          if creds is not None:
              d.addCallback(lambda _: self.my_login(creds))
          if keyspace is not None:
              d.addCallback(lambda _: self.my_set_keyspace(keyspace))
          if node_auto_discovery:
              d.addCallback(lambda _: self.my_describe_ring(keyspace))
  
          return d