summaryrefslogtreecommitdiff
path: root/reconfigure/items/nsd.py
diff options
context:
space:
mode:
Diffstat (limited to 'reconfigure/items/nsd.py')
-rw-r--r--reconfigure/items/nsd.py23
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)