code: def authenticate(self, username=None, password=None, api_key=None,
              tenant_id=None, connect=False):
          
          try:
              super(RaxIdentity, self).authenticate(username=username,
                      password=password, api_key=api_key, tenant_id=tenant_id)
          except exc.AuthenticationFailed:
              self._creds_style = "password"
              super(RaxIdentity, self).authenticate(username=username,
                      password=password, api_key=api_key, tenant_id=tenant_id)
docs: If the user's credentials include an API key, the default behavior will
          work. But if they are using a password, the initial attempt will fail,
          so try again, but this time using the standard password format.
  
          The 'connect' parameter is retained for backwards compatibility. It no
          longer has any effect.