# HG changeset patch # User Tero Marttila # Date 1395064268 -7200 # Node ID 6fe465ce6d527ae5ccb7ed159047f4e694152011 # Parent 78f192fe9e2cad2ce30108c34fefa8ec31135a45 pvl.hosts: support foo:bar = ... extension fields diff -r 78f192fe9e2c -r 6fe465ce6d52 pvl/hosts.py --- a/pvl/hosts.py Mon Mar 17 11:59:15 2014 +0200 +++ b/pvl/hosts.py Mon Mar 17 15:51:08 2014 +0200 @@ -5,6 +5,7 @@ import pvl.args import pvl.dns.zone +import collections import configobj import ipaddr import optparse @@ -121,13 +122,21 @@ alias6 = () ethernet = { } + extensions = collections.defaultdict(dict) for field, value in extra.iteritems() : + if ':' in field : + extension, field = field.split(':', 1) + + extensions[extension][field] = value + + continue + if '.' in field : field, instance = field.split('.') else : instance = None - + if field == 'ethernet' : if instance : ethernet[instance] = value @@ -170,6 +179,8 @@ boot = boot, forward = forward, reverse = reverse, + + **extensions ) def __init__ (self, host, @@ -181,6 +192,7 @@ boot=None, alias4=None, alias6=None, forward=None, reverse=None, + **extensions ) : """ host - str @@ -209,6 +221,8 @@ self.forward = forward self.reverse = reverse + self.extensions = extensions + def fqdn (self) : if '.' in self.host : return self.host + '.' @@ -216,7 +230,7 @@ return pvl.dns.zone.fqdn(self.host, self.domain) else : raise ValueError("%s: have no fqdn/domain" % (self, )) - + def __str__ (self) : return str(self.host)