summaryrefslogtreecommitdiff
path: root/reconfigure/items/bind9.py
diff options
context:
space:
mode:
Diffstat (limited to 'reconfigure/items/bind9.py')
-rw-r--r--reconfigure/items/bind9.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/reconfigure/items/bind9.py b/reconfigure/items/bind9.py
new file mode 100644
index 0000000..a42bb90
--- /dev/null
+++ b/reconfigure/items/bind9.py
@@ -0,0 +1,25 @@
+from reconfigure.nodes import Node, PropertyNode
+from reconfigure.items.bound import BoundData
+
+
+class BIND9Data (BoundData):
+ pass
+
+
+class ZoneData (BoundData):
+ def template(self):
+ return Node(
+ 'zone',
+ PropertyNode('type', 'master'),
+ PropertyNode('file', 'db.example.com'),
+ parameter='"example.com"',
+ )
+
+
+quote = lambda x: '"%s"' % x
+unquote = lambda x: x.strip('"')
+
+BIND9Data.bind_collection('zones', selector=lambda x: x.name == 'zone', item_class=ZoneData)
+ZoneData.bind_attribute('parameter', 'name', getter=unquote, setter=quote)
+ZoneData.bind_property('type', 'type')
+ZoneData.bind_property('file', 'file', getter=unquote, setter=quote)