summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipaserver/dsinstance.py
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2008-03-27 09:33:01 -0400
committerRob Crittenden <rcritten@redhat.com>2008-03-27 09:33:01 -0400
commitfd92652ace1ab95e850c256f0ecca50ded79debf (patch)
treedc900202332e7ab2a296a47ee360e9cecfe6a7f0 /ipa-server/ipaserver/dsinstance.py
parent1a1e02025824ba86ca847d59435541545b6f0aec (diff)
downloadfreeipa-fd92652ace1ab95e850c256f0ecca50ded79debf.tar.gz
freeipa-fd92652ace1ab95e850c256f0ecca50ded79debf.tar.xz
freeipa-fd92652ace1ab95e850c256f0ecca50ded79debf.zip
Make the memberof task a public function.
This is used when a new replica is created as well as whenever a replica is re-initialized from another master. In order for this to work when not creating an instance the __init__ function needs to be able to determine the suffix and the dm_password is needed. I've also added the time to the RDN of the member task to ensure uniqueness. 438222
Diffstat (limited to 'ipa-server/ipaserver/dsinstance.py')
-rw-r--r--ipa-server/ipaserver/dsinstance.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/ipa-server/ipaserver/dsinstance.py b/ipa-server/ipaserver/dsinstance.py
index 9eaf5be4a..cd89d31ec 100644
--- a/ipa-server/ipaserver/dsinstance.py
+++ b/ipa-server/ipaserver/dsinstance.py
@@ -25,6 +25,7 @@ import glob
import sys
import os
import re
+import time
from ipa import ipautil
@@ -110,16 +111,21 @@ info: IPA V1.0
"""
class DsInstance(service.Service):
- def __init__(self):
+ def __init__(self, realm_name=None, domain_name=None, dm_password=None):
service.Service.__init__(self, "dirsrv")
+ self.realm_name = realm_name
+ self.dm_password = dm_password
+ self.sub_dict = None
+ self.domain = domain_name
self.serverid = None
- self.realm_name = None
- self.suffix = None
self.host_name = None
- self.dm_password = None
- self.sub_dict = None
- self.domain = None
self.pkcs12_info = None
+ self.ds_user = None
+ if realm_name:
+ self.suffix = realm_to_suffix(self.realm_name)
+ self.__setup_sub_dict()
+ else:
+ self.suffix = None
def create_instance(self, ds_user, realm_name, host_name, domain_name, dm_password, pkcs12_info=None):
self.ds_user = ds_user
@@ -149,7 +155,7 @@ class DsInstance(service.Service):
self.step("adding master entry as first master",
self.__add_master_entry_first_master)
self.step("initializing group membership",
- self.__init_memberof)
+ self.init_memberof)
self.step("configuring directory to start on boot", self.__enable)
@@ -164,7 +170,8 @@ class DsInstance(service.Service):
self.sub_dict = dict(FQHN=self.host_name, SERVERID=self.serverid,
PASSWORD=self.dm_password, SUFFIX=self.suffix.lower(),
REALM=self.realm_name, USER=self.ds_user,
- SERVER_ROOT=server_root, DOMAIN=self.domain)
+ SERVER_ROOT=server_root, DOMAIN=self.domain,
+ TIME=int(time.time()))
def __create_ds_user(self):
user_exists = True
@@ -262,7 +269,7 @@ class DsInstance(service.Service):
def __add_memberof_module(self):
self.__ldap_mod("memberof-conf.ldif")
- def __init_memberof(self):
+ def init_memberof(self):
self.__ldap_mod("memberof-task.ldif", self.sub_dict)
def __add_referint_module(self):