@@ 1,4 1,5 @@
''' Copyright 2009 Peter Sanchez <petersanchez@gmail.com>.
See BSD-LICENSE for license information.
'''
-from api import ZerigoError, ZerigoNotFound, NSZone, NSHost
+from api import ZerigoError, ZerigoNotFound, NSZone, NSHost, \
+ NSZoneTemplate
@@ 461,3 461,50 @@ class NSHost(ZerigoDNS):
is_debug=self.is_debug,
) for zdata in data.get('hosts', [])
]
+
+
+class NSZoneTemplate(ZerigoDNS):
+ ''' Class to manage zone templates
+ '''
+ def __init__(self, *args, **kwargs):
+ super(NSZoneTemplate, self).__init__(*args, **kwargs)
+ self.xml_skip = ('id', 'created-at', 'updated-at',)
+ self.element = 'zone_templates'
+
+ def to_xml(self):
+ return self._to_xml({'zone-template': self.get_xml_data()})
+
+ def build_blank_template(self):
+ self.load(self.get_blank()['zone-template'])
+
+ def create(self, data, load_blank=False):
+ if data.has_key('zone-template'):
+ data = data.get('zone-template')
+ template = NSZoneTemplate(
+ self.user,
+ self.key,
+ data=data,
+ is_secure=self.is_secure,
+ is_debug=self.is_debug,
+ )
+ if load_blank:
+ template.build_blank_template()
+ template.load(data, reset=False)
+ template.save()
+ return template
+
+ def find_all(self, opts={}):
+ return self.templates(opts=opts)
+
+ def templates(self, opts={}):
+ xml = self.send_request(opts=opts)
+ data = self.parse(xml)
+ return [
+ NSZoneTemplate(
+ self.user,
+ self.key,
+ data=zdata['zone-template'],
+ is_secure=self.is_secure,
+ is_debug=self.is_debug,
+ ) for zdata in data.get('zone-templates', [])
+ ]
No newline at end of file