bin/pvl.hosts-import
changeset 320 bfda3703fa0c
parent 319 f56f60c2dd9b
child 325 9be2b216e87c
equal deleted inserted replaced
319:f56f60c2dd9b 320:bfda3703fa0c
   591                 del by_name[(alias, domain)]
   591                 del by_name[(alias, domain)]
   592             else :
   592             else :
   593                 log.warn("%s: %s mapped to %s, but no aliases", alias, alias_field, host)
   593                 log.warn("%s: %s mapped to %s, but no aliases", alias, alias_field, host)
   594                 del by_name[(alias, domain)]
   594                 del by_name[(alias, domain)]
   595 
   595 
       
   596     # scan by alias
       
   597     by_alias = { }
       
   598 
       
   599     for (host, domain), fields in hosts :
       
   600         for alias in fields.get(('alias', ), ()) :
       
   601             if (alias, domain) in by_alias :
       
   602                 log.warn("%s: duplicate alias %s: %s", host, alias, by_alias[(alias, domain)])
       
   603             else :
       
   604                 by_alias[(alias, domain)] = (host, fields)
       
   605 
   596     for (host, domain), fields in hosts :
   606     for (host, domain), fields in hosts :
   597         fields = by_name.get((host, domain))
   607         fields = by_name.get((host, domain))
   598 
   608 
   599         if not fields :
   609         if not fields :
   600             # skip
   610             # skip
   601             continue
   611             continue
   602 
   612 
   603         if set(fields) == set([('alias', )]) :
   613         if set(fields) == set([('alias', )]) :
   604             log.warn("%s: nonexistant alias target: %s", host, ' '.join(fields[('alias', )]))
   614             aliases = fields[('alias', )]
       
   615             if (host, domain) in by_alias :
       
   616                 alias_host, alias_fields = by_alias[(host, domain)]
       
   617                 log.info("%s: chain as alias to %s: %s", host, alias_host, ' '.join(aliases))
       
   618                 alias_fields[('alias', )].extend(aliases)
       
   619                 continue
       
   620             else :
       
   621                 log.warn("%s@%s: nonexistant alias target for: %s", host, domain, ' '.join(aliases))
   605         
   622         
   606         ip = fields.get(('ip', ))
   623         ip = fields.get(('ip', ))
   607 
   624 
   608         if ip in by_ip :
   625         if ip in by_ip :
   609             log.warn("%s: duplicate ip %s: %s", host, ip, by_ip[ip])
   626             log.warn("%s: duplicate ip %s: %s", host, ip, by_ip[ip])