diff options
Diffstat (limited to 'reconfigure/items/bind9.py')
-rw-r--r-- | reconfigure/items/bind9.py | 25 |
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) |