diff options
Diffstat (limited to 'reconfigure/items/nsd.py')
-rw-r--r-- | reconfigure/items/nsd.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/reconfigure/items/nsd.py b/reconfigure/items/nsd.py new file mode 100644 index 0000000..df20d95 --- /dev/null +++ b/reconfigure/items/nsd.py @@ -0,0 +1,23 @@ +from reconfigure.nodes import Node, PropertyNode +from reconfigure.items.bound import BoundData + + +class NSDData (BoundData): + pass + + +class ZoneData (BoundData): + def template(self): + return Node( + 'zone', + PropertyNode('name', '"example.com"'), + PropertyNode('file', '"example.com.zone"'), + ) + + +quote = lambda x: '"%s"' % x +unquote = lambda x: x.strip('"') + +NSDData.bind_collection('zones', selector=lambda x: x.name == 'zone', item_class=ZoneData) +ZoneData.bind_property('name', 'name', getter=unquote, setter=quote) +ZoneData.bind_property('zonefile', 'file', getter=unquote, setter=quote) |