'Constructs a LogoutRequest
:param destination: Destination of the request
:param issuer_entity_id: The entity ID of the IdP the request is
target at.
:param subject_id: The identifier of the subject
:param name_id: A NameID instance identifying the subject
:param reason: An indication of the reason for the logout, in the
form of a URI reference.
:param expire: The time at which the request expires,
after which the recipient may discard the message.
:param message_id: Request identifier
:param consent: Whether the principal have given her consent
:param extensions: Possible extensions
:param sign: Whether the query should be signed or not.
:param session_indexes: SessionIndex instances or just values
:return: A LogoutRequest instance'

def create_logout_request(self, destination, issuer_entity_id, subject_id=None, name_id=None, reason=None, expire=None, message_id=0, consent=None, extensions=None, sign=False, session_indexes=None):

    if subject_id:
        if (self.entity_type == 'idp'):
            name_id = NameID(text=self.users.get_entityid(subject_id, issuer_entity_id, False))
        else:
            name_id = NameID(text=subject_id)
    if (not name_id):
        raise SAMLError('Missing    subject    identification')
    args = {}
    if session_indexes:
        sis = []
        for si in session_indexes:
            if isinstance(si, SessionIndex):
                sis.append(si)
            else:
                sis.append(SessionIndex(text=si))
        args['session_index'] = sis
    return self._message(LogoutRequest, destination, message_id, consent, extensions, sign, name_id=name_id, reason=reason, not_on_or_after=expire, issuer=self._issuer(), **args)
