def NormalizeGlobalID(inp, detect_version=False, as_field=True): """ Input `inp` is a string or glob_path_id dict. This will fill out missed/empty fields from existing data. Such an order: 1. if no idurl : use my local identity, 2. if no customer : use idurl 3. if no user : use customer 4. if no key alias : use "master" 5. if no idhost : use idurl """ from userid import my_id if isinstance(inp, dict): g = inp else: g = ParseGlobalID(inp, detect_version=detect_version) if not g['idurl']: g['idurl'] = my_id.getIDURL().to_bin() if as_field: from userid import id_url g['idurl'] = id_url.field(g['idurl']) if not g['customer']: g['customer'] = UrlToGlobalID(g['idurl']) if not g['user']: g['user'] = g['customer'].split('@')[0] if not g['key_alias']: g['key_alias'] = 'master' if not g['idhost']: from lib import nameurl g['idhost'] = nameurl.GetHost(g['idurl']) if not g['key_id']: g['key_id'] = MakeGlobalKeyID(g['key_alias'], g['customer']) return g
def doInit(self, event, *args, **kwargs): """ Action method. """ self.result_defer = kwargs.get('result_defer') self.check_only = False if event == 'check': self.check_only = True self.alive_idurls = [] self.old_sources = my_id.getLocalIdentity().getSources( as_originals=True) self.known_servers = known_servers.by_host() self.preferred_servers = kwargs.get('preferred_servers', {}) self.possible_sources = [] if _Debug: lg.args(_DebugLevel, preferred_servers=self.preferred_servers) self.force = kwargs.get('force', False) self.new_revision = kwargs.get('new_revision') self.rotated = False if not self.preferred_servers: try: for srv in strng.to_text(config.conf().getData( 'services/identity-propagate/known-servers')).split( ','): if srv.strip(): host, web_port, tcp_port = srv.strip().split(':') self.preferred_servers[host] = ( int(web_port), int(tcp_port), ) except: lg.exc() self.preferred_servers = { strng.to_bin(k): v for k, v in self.preferred_servers.items() } self.current_servers = [] for idurl in my_id.getLocalIdentity().getSources(as_originals=True): self.current_servers.append(strng.to_bin(nameurl.GetHost(idurl))) if _Debug: lg.args(_DebugLevel, known_servers=self.known_servers, preferred_servers=self.preferred_servers, current_servers=self.current_servers)
def NormalizeGlobalID(inp, detect_version=False): """ """ from userid import my_id if isinstance(inp, dict): g = inp else: g = ParseGlobalID(inp, detect_version=detect_version) if not g['idurl']: g['idurl'] = my_id.getLocalID() if not g['customer']: g['customer'] = UrlToGlobalID(g['idurl']) if not g['user']: g['user'] = g['customer'].split('@')[0] if not g['key_alias']: g['key_alias'] = 'master' if not g['idhost']: from lib import nameurl g['idhost'] = nameurl.GetHost(g['idurl']) return g