Source code for dns_sprockets_lib.loaders.file
'''
file - Zone loader: File
.. Copyright (c) 2015 Neustar, Inc. All rights reserved.
.. See COPYRIGHT.txt for full notice. See LICENSE.txt for terms and conditions.
'''
import dns.rdataclass
import dns.zone
import dns_sprockets_lib.loaders as loaders
[docs]class File(loaders.ZoneLoader):
# pylint: disable=too-few-public-methods
'''
Loads a zone from a file in AXFR-type or Bind host-type format.
'''
LOADER_OPTARGS = {
'rdclass': ('IN', 'Class of records to pull'),
'allow_include': ('1', 'Allow file to include other files')}
[docs] def __init__(self, args):
'''
Ctor.
'''
self.rdclass = None
self.allow_include = None
super(File, self).__init__(args)
[docs] def run(self):
'''
@return A dns.zone.Zone instance.
'''
other_args = {
'origin': self.args.zone,
'relativize': False,
'filename': self.args.source,
'check_origin': False,
'rdclass': dns.rdataclass.from_text(self.rdclass),
'allow_include': bool(int(self.allow_include))}
return dns.zone.from_file(self.args.source, **other_args)
# end of file