From 454c1e369bb26b85e49aa07a92e68aa6fed9a2e6 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Mon, 5 Aug 2019 12:52:05 -0400 Subject: [PATCH] Beta for db home directory --- ldap/admin/src/defaults.inf.in | 1 + ldap/ldif/template-dse.ldif.in | 1 + rpm/389-ds-base.spec.in | 2 ++ src/lib389/lib389/instance/remove.py | 1 + src/lib389/lib389/instance/setup.py | 9 ++++++--- src/lib389/lib389/paths.py | 4 +++- 6 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ldap/admin/src/defaults.inf.in b/ldap/admin/src/defaults.inf.in index 42fc09fe5..23ea09dfa 100644 --- a/ldap/admin/src/defaults.inf.in +++ b/ldap/admin/src/defaults.inf.in @@ -58,6 +58,7 @@ access_log = @localstatedir@/log/dirsrv/slapd-{instance_name}/access audit_log = @localstatedir@/log/dirsrv/slapd-{instance_name}/audit error_log = @localstatedir@/log/dirsrv/slapd-{instance_name}/errors db_dir = @localstatedir@/lib/dirsrv/slapd-{instance_name}/db +db_home_dir = /dev/shm/dirsrv/slapd-{instance_name} backup_dir = @localstatedir@/lib/dirsrv/slapd-{instance_name}/bak ldif_dir = @localstatedir@/lib/dirsrv/slapd-{instance_name}/ldif diff --git a/ldap/ldif/template-dse.ldif.in b/ldap/ldif/template-dse.ldif.in index 9efff58c5..19abcf841 100644 --- a/ldap/ldif/template-dse.ldif.in +++ b/ldap/ldif/template-dse.ldif.in @@ -905,6 +905,7 @@ objectclass: extensibleObject cn: config nsslapd-mode: 600 nsslapd-directory: %db_dir% +nsslapd-db-home-directory: %db_home_dir% nsslapd-subtree-rename-switch: on dn: cn=default indexes, cn=config,cn=ldbm database,cn=plugins,cn=config diff --git a/rpm/389-ds-base.spec.in b/rpm/389-ds-base.spec.in index 4f7a96102..59bc5f9a9 100644 --- a/rpm/389-ds-base.spec.in +++ b/rpm/389-ds-base.spec.in @@ -430,6 +430,7 @@ popd mkdir -p $RPM_BUILD_ROOT/var/log/%{pkgname} mkdir -p $RPM_BUILD_ROOT/var/lib/%{pkgname} mkdir -p $RPM_BUILD_ROOT/var/lock/%{pkgname} +mkdir -p $RPM_BUILD_ROOT/dev/shm/%{pkgname} # for systemd mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/%{groupname}.wants @@ -635,6 +636,7 @@ exit 0 %{_prefix}/lib/sysctl.d/* %dir %{_localstatedir}/lib/%{pkgname} %dir %{_localstatedir}/log/%{pkgname} +%dir /dev/shm/%{pkgname} %ghost %dir %{_localstatedir}/lock/%{pkgname} %exclude %{_sbindir}/ldap-agent* %exclude %{_mandir}/man1/ldap-agent.1.gz diff --git a/src/lib389/lib389/instance/remove.py b/src/lib389/lib389/instance/remove.py index e48b294df..bf2c6cff3 100644 --- a/src/lib389/lib389/instance/remove.py +++ b/src/lib389/lib389/instance/remove.py @@ -44,6 +44,7 @@ def remove_ds_instance(dirsrv, force=False): remove_paths['cert_dir'] = dirsrv.ds_paths.cert_dir remove_paths['config_dir'] = dirsrv.ds_paths.config_dir remove_paths['db_dir'] = dirsrv.ds_paths.db_dir + remove_paths['db_home_dir'] = dirsrv.ds_paths.db_home_dir remove_paths['db_dir_parent'] = dirsrv.ds_paths.db_dir + "/../" ### WARNING: The changelogdb isn't removed. we assume it's in: # db_dir ../changelogdb. So remove that too! diff --git a/src/lib389/lib389/instance/setup.py b/src/lib389/lib389/instance/setup.py index 77fc4bef6..333c7e2aa 100644 --- a/src/lib389/lib389/instance/setup.py +++ b/src/lib389/lib389/instance/setup.py @@ -276,6 +276,7 @@ class SetupDs(object): 'inst_dir': ds_paths.inst_dir, 'backup_dir': ds_paths.backup_dir, 'db_dir': ds_paths.db_dir, + 'db_home_dir': ds_paths.db_home_dir, 'ldif_dir': ds_paths.ldif_dir, 'lock_dir': ds_paths.lock_dir, 'log_dir': ds_paths.log_dir, @@ -734,11 +735,12 @@ class SetupDs(object): ds_suffix=ds_suffix, config_dir=slapd['config_dir'], db_dir=slapd['db_dir'], + db_home_dir=slapd['db_home_dir'] )) # Create all the needed paths # we should only need to make bak_dir, cert_dir, config_dir, db_dir, ldif_dir, lock_dir, log_dir, run_dir? - for path in ('backup_dir', 'cert_dir', 'db_dir', 'ldif_dir', 'lock_dir', 'log_dir', 'run_dir'): + for path in ('backup_dir', 'cert_dir', 'db_dir', 'db_home_dir', 'ldif_dir', 'lock_dir', 'log_dir', 'run_dir'): self.log.debug("ACTION: creating %s", slapd[path]) try: os.umask(0o007) # For parent dirs that get created -> sets 770 for perms @@ -857,8 +859,9 @@ class SetupDs(object): # Do selinux fixups if general['selinux']: - selinux_paths = ('backup_dir', 'cert_dir', 'config_dir', 'db_dir', 'ldif_dir', - 'lock_dir', 'log_dir', 'run_dir', 'schema_dir', 'tmp_dir') + selinux_paths = ('backup_dir', 'cert_dir', 'config_dir', 'db_dir', + 'db_home_dir', 'ldif_dir', 'lock_dir', 'log_dir', + 'run_dir', 'schema_dir', 'tmp_dir') for path in selinux_paths: selinux_restorecon(slapd[path]) diff --git a/src/lib389/lib389/paths.py b/src/lib389/lib389/paths.py index 869df1f5f..8dcceadfb 100644 --- a/src/lib389/lib389/paths.py +++ b/src/lib389/lib389/paths.py @@ -57,6 +57,7 @@ MUST = [ 'log_dir', 'inst_dir', 'db_dir', + 'db_home_dir', 'backup_dir', 'ldif_dir', 'initconfig_dir', @@ -76,6 +77,7 @@ CONFIG_MAP = { 'lock_dir' : ('cn=config','nsslapd-lockdir'), 'inst_dir' : ('cn=config','nsslapd-instancedir'), 'db_dir' : ('cn=config,cn=ldbm database,cn=plugins,cn=config', 'nsslapd-directory'), + 'db_home_dir' : ('cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config', 'nsslapd-db-home-directory'), 'backup_dir': ('cn=config','nsslapd-bakdir'), 'ldif_dir': ('cn=config','nsslapd-ldifdir'), 'error_log' : ('cn=config', 'nsslapd-errorlog'), @@ -128,7 +130,7 @@ class Paths(object): for spath in search_paths: if os.path.isfile(spath): return spath - raise IOError('defaults.inf not found in any wellknown location!') + raise IOError('defaults.inf not found in any well known location!') def _read_defaults(self): spath = self._get_defaults_loc(DEFAULTS_PATH) -- 2.24.1