def METHOD_NAME(self):
    # type: () -> Dict[str, str]
    try:
        self.xenserver = xmlrpclib.Server(self._base_url)
    except Exception as e:
        self.log.warning(str(e))
        return {}
    # See reference https://xapi-project.github.io/xen-api/classes/session.html
    session = self._session_login(self.xenserver)
    if session.get('Status') == 'Failure':
        if 'SESSION_AUTHENTICATION_FAILED' in session.get('ErrorDescription', []):
            self.log.warning('Connection failed with xmlrpc: %s', str(session['ErrorDescription']))
            return {}
        if 'HOST_IS_SLAVE' in session.get('ErrorDescription', []):
            # If xenserver host is a slave, open a connection with the pool master
            # {'Status': 'Failure', 'ErrorDescription': ['HOST_IS_SLAVE', '192.168.101.102']}
            self.log.debug('Host is a slave, trying to connect to the pool master')
            self._additional_tags.append('server_type:slave')
            return self._get_master_session(session)
        self.log.warning('Unknown xmlrpc error: %s', str(session))
        return {}
    elif session.get('Status') == 'Success':
        self._additional_tags.append('server_type:master')
        return session
    return {}