<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_default_keystone_session(self, keystone_sentry, openstack_release=None, api_version=2):
 """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 """

        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