summaryrefslogtreecommitdiffstats
path: root/ipaserver/install/dsinstance.py
diff options
context:
space:
mode:
authorMartin Nagy <mnagy@redhat.com>2009-05-12 12:51:46 +0200
committerMartin Nagy <mnagy@redhat.com>2009-06-02 12:30:59 +0200
commitd1b3f392584e2d1c7e7139986ae76f2361ba4875 (patch)
tree8449a514861a685f2d1984ed3a710274f659cfd1 /ipaserver/install/dsinstance.py
parentb29006dd0a0f33d5a34f3ee763c6bbe32e67e63a (diff)
downloadfreeipa-d1b3f392584e2d1c7e7139986ae76f2361ba4875.tar.gz
freeipa-d1b3f392584e2d1c7e7139986ae76f2361ba4875.tar.xz
freeipa-d1b3f392584e2d1c7e7139986ae76f2361ba4875.zip
Move the __ldap_mod function to the Service class
We were duplicating it for KrbInstance and DsInstance. Since we will also need it for BindInstance as well, it will be better if it is in the Service class instead.
Diffstat (limited to 'ipaserver/install/dsinstance.py')
-rw-r--r--ipaserver/install/dsinstance.py48
1 files changed, 10 insertions, 38 deletions
diff --git a/ipaserver/install/dsinstance.py b/ipaserver/install/dsinstance.py
index 53fca5af0..7bd9aa69e 100644
--- a/ipaserver/install/dsinstance.py
+++ b/ipaserver/install/dsinstance.py
@@ -139,9 +139,8 @@ info: IPA V1.0
class DsInstance(service.Service):
def __init__(self, realm_name=None, domain_name=None, dm_password=None):
- service.Service.__init__(self, "dirsrv")
+ service.Service.__init__(self, "dirsrv", dm_password=dm_password)
self.realm_name = realm_name
- self.dm_password = dm_password
self.sub_dict = None
self.domain = domain_name
self.serverid = None
@@ -287,38 +286,11 @@ class DsInstance(service.Service):
# TODO: roll back here?
logging.critical("Failed to restart the directory server. See the installation log for details.")
- def __ldap_mod(self, ldif, sub_dict = None):
- 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
-
- [pw_fd, pw_name] = tempfile.mkstemp()
- os.write(pw_fd, self.dm_password)
- os.close(pw_fd)
-
- args = ["/usr/bin/ldapmodify", "-h", "127.0.0.1", "-xv",
- "-D", "cn=Directory Manager", "-y", pw_name, "-f", path]
-
- try:
- try:
- ipautil.run(args)
- except ipautil.CalledProcessError, e:
- logging.critical("Failed to load %s: %s" % (ldif, str(e)))
- finally:
- os.remove(pw_name)
-
- if not fd is None:
- fd.close()
-
def __add_memberof_module(self):
- self.__ldap_mod("memberof-conf.ldif")
+ self._ldap_mod("memberof-conf.ldif")
def init_memberof(self):
- self.__ldap_mod("memberof-task.ldif", self.sub_dict)
+ self._ldap_mod("memberof-task.ldif", self.sub_dict)
def apply_updates(self):
ld = ldapupdate.LDAPUpdate(dm_password=self.dm_password)
@@ -326,19 +298,19 @@ class DsInstance(service.Service):
ld.update(files)
def __add_referint_module(self):
- self.__ldap_mod("referint-conf.ldif")
+ self._ldap_mod("referint-conf.ldif")
def __set_unique_attrs(self):
- self.__ldap_mod("unique-attributes.ldif", self.sub_dict)
+ self._ldap_mod("unique-attributes.ldif", self.sub_dict)
def __config_uidgid_gen_first_master(self):
- self.__ldap_mod("dna-posix.ldif", self.sub_dict)
+ self._ldap_mod("dna-posix.ldif", self.sub_dict)
def __add_master_entry_first_master(self):
- self.__ldap_mod("master-entry.ldif", self.sub_dict)
+ self._ldap_mod("master-entry.ldif", self.sub_dict)
def __add_winsync_module(self):
- self.__ldap_mod("ipa-winsync-conf.ldif")
+ self._ldap_mod("ipa-winsync-conf.ldif")
def __enable_ssl(self):
dirname = config_dirname(self.serverid)
@@ -391,10 +363,10 @@ class DsInstance(service.Service):
conn.unbind()
def __add_default_layout(self):
- self.__ldap_mod("bootstrap-template.ldif", self.sub_dict)
+ self._ldap_mod("bootstrap-template.ldif", self.sub_dict)
def __create_indices(self):
- self.__ldap_mod("indices.ldif")
+ self._ldap_mod("indices.ldif")
def __certmap_conf(self):
shutil.copyfile(ipautil.SHARE_DIR + "certmap.conf.template",