[Freeipa-devel] [PATCH 6 of 7] Don't template files which don't contain variables

Mark McLoughlin markmc at redhat.com
Thu Dec 13 09:35:08 UTC 2007


# HG changeset patch
# User Mark McLoughlin <markmc at redhat.com>
# Date 1197538288 0
# Node ID 4bed312bb3beab8e50ef2c8b7ff38d4d1a51472f
# Parent  10a22bc1b861450ef04568fc773c5b2bc2f7a4a6
Don't template files which don't contain variables

The following files hav no template variables, so don't
bother templating them:

  - memberof-conf.ldif
  - referint-conf.ldif
  - dna-conf.ldif
  - certmap.conf.template

Signed-off-by: Mark McLoughlin <markmc at redhat.com>

diff -r 10a22bc1b861 -r 4bed312bb3be ipa-server/ipaserver/dsinstance.py
--- a/ipa-server/ipaserver/dsinstance.py	Thu Dec 13 09:31:28 2007 +0000
+++ b/ipa-server/ipaserver/dsinstance.py	Thu Dec 13 09:31:28 2007 +0000
@@ -225,39 +225,50 @@ class DsInstance(service.Service):
         shutil.copyfile(ipautil.SHARE_DIR + "60ipaconfig.ldif",
                         schema_dirname(self.realm_name) + "60ipaconfig.ldif")
 
-    def __ldap_mod(self, step, ldif):
+    def __ldap_mod(self, step, ldif, sub_dict = None):
         self.step(step)
 
-        txt = ipautil.template_file(ipautil.SHARE_DIR + ldif, self.sub_dict)
-        fd = ipautil.write_tmp_file(txt)
+        fd = None
+        path = ipautil.SHARE_DIR + ldif
+
+        if not sub_dict is None:
+            txt = ipautil.template_file(path, sub_dict)
+            fd = ipautil.write_tmp_file(txt)
+            path = fd.name
 
         args = ["/usr/bin/ldapmodify", "-h", "127.0.0.1", "-xv",
-                "-D", "cn=Directory Manager", "-w", self.dm_password, "-f", fd.name]
+                "-D", "cn=Directory Manager", "-w", self.dm_password, "-f", path]
 
         try:
             ipautil.run(args)
         except ipautil.CalledProcessError, e:
             logging.critical("Failed to load %s: %s" % (ldif, str(e)))
 
-        fd.close()
+        if not fd is None:
+            fd.close()
 
     def __add_memberof_module(self):
         self.__ldap_mod("enabling memberof plugin", "memberof-conf.ldif")
 
     def __init_memberof(self):
-        self.__ldap_mod("initializing group membership", "memberof-task.ldif")
+        self.__ldap_mod("initializing group membership",
+                        "memberof-task.ldif", self.sub_dict)
 
     def __add_referint_module(self):
-        self.__ldap_mod("enabling referential integrity plugin", "referint-conf.ldif")
+        self.__ldap_mod("enabling referential integrity plugin",
+                        "referint-conf.ldif")
 
     def __add_dna_module(self):
-        self.__ldap_mod("enabling distributed numeric assignment plugin", "dna-conf.ldif")
+        self.__ldap_mod("enabling distributed numeric assignment plugin",
+                        "dna-conf.ldif")
 
     def __config_uidgid_gen_first_master(self):
-        self.__ldap_mod("configuring Posix uid/gid generation as first master", "dna-posix.ldif")
+        self.__ldap_mod("configuring Posix uid/gid generation as first master",
+                        "dna-posix.ldif", self.sub_dict)
 
     def __add_master_entry_first_master(self):
-        self.__ldap_mod("adding master entry as first master", "master-entry.ldif")
+        self.__ldap_mod("adding master entry as first master",
+                        "master-entry.ldif", self.sub_dict)
 
     def __enable_ssl(self):
         self.step("configuring ssl for ds instance")
@@ -294,18 +305,16 @@ class DsInstance(service.Service):
         conn.unbind()
 
     def __add_default_layout(self):
-        self.__ldap_mod("adding default layout", "bootstrap-template.ldif")
+        self.__ldap_mod("adding default layout",
+                        "bootstrap-template.ldif", self.sub_dict)
         
     def __create_indeces(self):
         self.__ldap_mod("creating indeces", "indeces.ldif")
 
     def __certmap_conf(self):
         self.step("configuring certmap.conf")
-        dirname = config_dirname(self.realm_name)
-        certmap_conf = ipautil.template_file(ipautil.SHARE_DIR + "certmap.conf.template", self.sub_dict)
-        certmap_fd = open(dirname+"certmap.conf", "w+")
-        certmap_fd.write(certmap_conf)
-        certmap_fd.close()
+        shutil.copyfile(ipautil.SHARE_DIR + "certmap.conf.template",
+                        config_dirname(self.realm_name) + "certmap.conf")
 
     def change_admin_password(self, password):
         logging.debug("Changing admin password")




More information about the Freeipa-devel mailing list