Ejemplo n.º 1
0
def OverrideIdentity(idurl, xml_src):
    """
    """
    global _OverriddenIdentities
    xml_src = str(xml_src.strip())
    if idurl in _OverriddenIdentities:
        if _OverriddenIdentities[idurl] == xml_src:
            if _Debug:
                lg.out(4, 'identitycache.OverrideIdentity SKIPPED "%s", no changes' % idurl)
            return False
        if _Debug:
            lg.out(4, 'identitycache.OverrideIdentity replacing overriden identity "%s" with new one' % idurl)
            lg.out(4, '\nOVERRIDDEN OLD:\n' + _OverriddenIdentities[idurl])
            lg.out(4, '\nOVERRIDDEN NEW:\n' + xml_src)
    else:
        orig = identitydb.get(idurl).serialize() if identitydb.has_idurl(idurl) else ''
        if orig and orig == xml_src:
            if _Debug:
                lg.out(4, 'identitycache.OverrideIdentity SKIPPED "%s" , overriden copy is the same as original' % idurl)
            return False
        if _Debug:
            lg.out(4, 'identitycache.OverrideIdentity replacing original identity for "%s"' % idurl)
            lg.out(4, '\nORIGINAL:\n' + orig)
            lg.out(4, '\nNEW:\n' + xml_src)
    _OverriddenIdentities[idurl] = xml_src
    if _Debug:
        lg.out(4, '    total number of overrides: %d' % len(_OverriddenIdentities))
    return True
Ejemplo n.º 2
0
def OverrideIdentity(idurl, xml_src):
    """
    Used by proxy router to remember the original identity of the routing node.
    """
    global _OverriddenIdentities
    idurl = id_url.field(idurl)
    if not idurl.is_latest():
        if idurl.original() in _OverriddenIdentities:
            if idurl.to_bin() not in _OverriddenIdentities:
                _OverriddenIdentities[
                    idurl.to_bin()] = _OverriddenIdentities.pop(
                        idurl.original())
                lg.info(
                    'detected and processed idurl rotate for overridden identity : %r -> %r'
                    % (idurl.original(), idurl.to_bin()))
    idurl = id_url.to_bin(idurl)
    xml_src = strng.to_text(xml_src.strip())
    if idurl in _OverriddenIdentities:
        if _OverriddenIdentities[idurl] == xml_src:
            if _Debug:
                lg.out(
                    _DebugLevel,
                    'identitycache.OverrideIdentity SKIPPED "%s", no changes' %
                    idurl)
            return False
        if _Debug:
            lg.out(
                _DebugLevel,
                'identitycache.OverrideIdentity replacing overriden identity %r with new one'
                % idurl)
            lg.out(_DebugLevel,
                   '\nOVERRIDDEN OLD:\n' + _OverriddenIdentities[idurl])
            lg.out(_DebugLevel, '\nOVERRIDDEN NEW:\n' + xml_src)
    else:
        orig = ''
        if identitydb.has_idurl(idurl):
            orig = identitydb.get_ident(idurl).serialize(as_text=True)
        if orig and orig == xml_src:
            if _Debug:
                lg.out(
                    _DebugLevel,
                    'identitycache.OverrideIdentity SKIPPED %r , overridden copy is the same as original'
                    % idurl)
            return False
        if _Debug:
            lg.out(
                _DebugLevel,
                'identitycache.OverrideIdentity replacing original identity for %r'
                % idurl)
            lg.out(_DebugLevel, '\nORIGINAL:\n' + orig)
            lg.out(_DebugLevel, '\nNEW:\n' + xml_src)
    _OverriddenIdentities[idurl] = xml_src
    if _Debug:
        lg.out(
            _DebugLevel,
            '    total number of overrides: %d' % len(_OverriddenIdentities))
    return True
Ejemplo n.º 3
0
def HasKey(idurl):
    """
    Check for some user IDURL in the cache.
    """
    return identitydb.has_idurl(idurl) or IsOverridden(idurl)