diff options
-rw-r--r-- | cobbler/modules/manage_bind.py | 29 | ||||
-rw-r--r-- | cobbler/webui/master.py | 7 | ||||
-rw-r--r-- | docs/cobbler.pod | 2 | ||||
-rw-r--r-- | setup.py | 4 |
4 files changed, 31 insertions, 11 deletions
diff --git a/cobbler/modules/manage_bind.py b/cobbler/modules/manage_bind.py index 900a832..e14122a 100644 --- a/cobbler/modules/manage_bind.py +++ b/cobbler/modules/manage_bind.py @@ -184,21 +184,20 @@ zone "%(arpa)s." { def __write_zone_files(self): """ - Write out the forward and reverse zone files for all the zones - defined in manage_forward_zones and manage_reverse_zones + Write out the forward and reverse zone files for all configured zones """ - template_file = "/etc/cobbler/zone.template" + default_template_file = "/etc/cobbler/zone.template" cobbler_server = self.settings.server serial = int(time.time()) forward = self.__config_forward_zones() reverse = self.__config_reverse_zones() try: - f2 = open(template_file,"r") + f2 = open(default_template_file,"r") except: - raise CX(_("error reading template from file: %s") % template_file) - template_data = "" - template_data = f2.read() + raise CX(_("error reading template from file: %s") % default_template_file) + default_template_data = "" + default_template_data = f2.read() f2.close() for (zone, hosts) in forward.iteritems(): @@ -208,6 +207,14 @@ zone "%(arpa)s." { 'host_record': '' } + # grab zone-specific template if it exists + try: + fd = open('/etc/cobbler/zone_templates/%s' % zone) + template_data = fd.read() + fd.close() + except: + template_data = default_template_data + for host in hosts: txt = '%s\tIN\tA\t%s\n' % host metadata['host_record'] = metadata['host_record'] + txt @@ -221,6 +228,14 @@ zone "%(arpa)s." { 'host_record': '' } + # grab zone-specific template if it exists + try: + fd = open('/etc/cobbler/zone_templates/%s' % zone) + template_data = fd.read() + fd.close() + except: + template_data = default_template_data + for host in hosts: txt = '%s\tIN\tPTR\t%s\n' % host metadata['host_record'] = metadata['host_record'] + txt diff --git a/cobbler/webui/master.py b/cobbler/webui/master.py index 7e54a2d..cdde14d 100644 --- a/cobbler/webui/master.py +++ b/cobbler/webui/master.py @@ -33,9 +33,10 @@ VFN=valueForName currentTime=time.time __CHEETAH_version__ = '2.0.1' __CHEETAH_versionTuple__ = (2, 0, 1, 'final', 0) -__CHEETAH_genTime__ = 1209057202.737108 -__CHEETAH_genTimestamp__ = 'Thu Apr 24 13:13:22 2008' -__CHEETAH_srcLastModified__ = 'Thu Apr 24 12:59:37 2008' +__CHEETAH_genTime__ = 1209998447.8930521 +__CHEETAH_genTimestamp__ = 'Mon May 5 10:40:47 2008' +__CHEETAH_src__ = 'webui_templates/master.tmpl' +__CHEETAH_srcLastModified__ = 'Thu May 1 13:51:29 2008' __CHEETAH_docstring__ = 'Autogenerated by CHEETAH: The Python-Powered Template Engine' if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple: diff --git a/docs/cobbler.pod b/docs/cobbler.pod index 311a94c..018c3f4 100644 --- a/docs/cobbler.pod +++ b/docs/cobbler.pod @@ -563,7 +563,7 @@ Choose either "management = isc_and_bind" or "management = dnsmasq" in /etc/cobb This feature is off by default. If using BIND, you may restrict the scope of zones managed with the options 'manage_forward_zones' and 'manage_reverse_zones'. (See the Wiki for more information on this). -If using BIND, Cobbler will use /etc/cobbler/bind.template and /etc/cobbler/zone.template as a starting point for the named.conf and individual zone files, respectively. These files must be user edited for the user's particular networking environment. Read the file and understand how BIND works before proceeding. +If using BIND, Cobbler will use /etc/cobbler/bind.template and /etc/cobbler/zone.template as a starting point for the named.conf and individual zone files, respectively. You may drop zone-specific template files in /etc/cobbler/zone_templates/name-of-zone which will override the default. These files must be user edited for the user's particular networking environment. Read the file and understand how BIND works before proceeding. If using dnsmasq, the template is /etc/cobbler/dnsmasq.template. Read this file and understand how dnsmasq works before proceeding. @@ -41,6 +41,7 @@ if __name__ == "__main__": vw_systems = "/var/www/cobbler/systems" vw_profiles = "/var/www/cobbler/profiles" vw_links = "/var/www/cobbler/links" + zone_templates = "/etc/cobbler/zone_templates" tftp_cfg = "/tftpboot/pxelinux.cfg" tftp_images = "/tftpboot/images" rotpath = "/etc/logrotate.d" @@ -134,6 +135,9 @@ if __name__ == "__main__": (vw_profiles, []), (vw_links, []), + # zone-specific templates directory + (zone_templates, []), + # tftp directories that we own (tftp_cfg, []), (tftp_images, []), |