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
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
def HasKey(idurl): """ Check for some user IDURL in the cache. """ return identitydb.has_idurl(idurl) or IsOverridden(idurl)