diff --git a/base/server/python/pki/server/deployment/scriptlets/subsystem_layout.py b/base/server/python/pki/server/deployment/scriptlets/subsystem_layout.py index 98a1e146ce1..81e1bb404ae 100644 --- a/base/server/python/pki/server/deployment/scriptlets/subsystem_layout.py +++ b/base/server/python/pki/server/deployment/scriptlets/subsystem_layout.py @@ -331,7 +331,8 @@ def spawn(self, deployer): subsystem.config['preop.cert.signing.profile'] = 'caInstallCACert' if config.str2bool(deployer.mdict['pki_profiles_in_ldap']): - subsystem.config['subsystem.1.class'] = \ + index = subsystem.get_subsystem_index('profile') + subsystem.config['subsystem.%d.class' % index] = \ 'com.netscape.cmscore.profile.LDAPProfileSubsystem' # configure OCSP diff --git a/base/server/python/pki/server/subsystem.py b/base/server/python/pki/server/subsystem.py index 63e303423f1..66a529b97e0 100644 --- a/base/server/python/pki/server/subsystem.py +++ b/base/server/python/pki/server/subsystem.py @@ -238,6 +238,30 @@ def remove(self, force=False): logger.info('Removing %s', self.base_dir) pki.util.rmtree(self.base_dir, force=force) + def get_subsystem_index(self, subsystem_id): + ''' + Get index of subsystem in CS.cfg. + ''' + + # find subsystem..id params + pattern = re.compile(r'^subsystem\.(.*)\.id$') + + for key, value in self.config.items(): + + m = pattern.match(key) + if not m: + continue + + value = self.config[key] + if value != subsystem_id: + continue + + # param value matches subsystem ID -> return index + index = m.group(1) + return int(index) + + return None + def find_system_certs(self): cert_ids = self.config['%s.cert.list' % self.name].split(',')