--- a/bin/pvl.hosts-import Thu Dec 19 17:40:37 2013 +0200
+++ b/bin/pvl.hosts-import Thu Dec 19 17:54:30 2013 +0200
@@ -593,6 +593,16 @@
log.warn("%s: %s mapped to %s, but no aliases", alias, alias_field, host)
del by_name[(alias, domain)]
+ # scan by alias
+ by_alias = { }
+
+ for (host, domain), fields in hosts :
+ for alias in fields.get(('alias', ), ()) :
+ if (alias, domain) in by_alias :
+ log.warn("%s: duplicate alias %s: %s", host, alias, by_alias[(alias, domain)])
+ else :
+ by_alias[(alias, domain)] = (host, fields)
+
for (host, domain), fields in hosts :
fields = by_name.get((host, domain))
@@ -601,7 +611,14 @@
continue
if set(fields) == set([('alias', )]) :
- log.warn("%s: nonexistant alias target: %s", host, ' '.join(fields[('alias', )]))
+ aliases = fields[('alias', )]
+ if (host, domain) in by_alias :
+ alias_host, alias_fields = by_alias[(host, domain)]
+ log.info("%s: chain as alias to %s: %s", host, alias_host, ' '.join(aliases))
+ alias_fields[('alias', )].extend(aliases)
+ continue
+ else :
+ log.warn("%s@%s: nonexistant alias target for: %s", host, domain, ' '.join(aliases))
ip = fields.get(('ip', ))