code: def get_default_keystone_session(self, keystone_sentry,
                                       openstack_release=None, api_version=2):
          
          self.log.debug('Authenticating keystone admin...')
          # 11 => xenial_queens
          if api_version == 3 or (openstack_release and openstack_release >= 11):
              client_class = keystone_client_v3.Client
              api_version = 3
          else:
              client_class = keystone_client.Client
          keystone_ip = keystone_sentry.info['public-address']
          session, auth = self.get_keystone_session(
              keystone_ip,
              api_version=api_version,
              username='admin',
              password='openstack',
              project_name='admin',
              user_domain_name='admin_domain',
              project_domain_name='admin_domain')
          client = client_class(session=session)
          # This populates the client.service_catalog
          client.auth_ref = auth.get_access(session)
          return session, client
docs: Return a keystone session object and client object assuming standard
             default settings
  
             Example call in amulet tests:
                 self.keystone_session, self.keystone = u.get_default_keystone_session(
                     self.keystone_sentry,
                     openstack_release=self._get_openstack_release())
  
             The session can then be used to auth other clients:
                 neutronclient.Client(session=session)
                 aodh_client.Client(session=session)
                 eyc