Enable Retro Changelog and Content Synchronization DS plugins

Enable Retro Changelog and Content Synchronization DS plugins which are required
for SyncRepl support.

Create a working directory /var/named/ipa required by bind-dyndb-ldap v4+.

https://fedorahosted.org/freeipa/ticket/3967
This commit is contained in:
Ana Krivokapic
2013-10-25 12:41:25 +02:00
committed by Petr Viktorin
parent 3e1386a57e
commit 689382dc83
5 changed files with 28 additions and 1 deletions

View File

@@ -756,6 +756,7 @@ fi
%{_mandir}/man1/ipa-backup.1.gz %{_mandir}/man1/ipa-backup.1.gz
%{_mandir}/man1/ipa-restore.1.gz %{_mandir}/man1/ipa-restore.1.gz
%{_mandir}/man1/ipa-advise.1.gz %{_mandir}/man1/ipa-advise.1.gz
%ghost %{_localstatedir}/named/ipa
%files server-trust-ad %files server-trust-ad
%{_sbindir}/ipa-adtrust-install %{_sbindir}/ipa-adtrust-install

View File

@@ -1079,6 +1079,10 @@ def main():
setup_firefox_extension(fstore) setup_firefox_extension(fstore)
add_ca_dns_records() add_ca_dns_records()
bind = bindinstance.BindInstance(fstore)
if bind.is_configured():
bind.create_dir('/var/named/ipa', 0700)
# Any of the following functions returns True iff the named.conf file # Any of the following functions returns True iff the named.conf file
# has been altered # has been altered
named_conf_changes = ( named_conf_changes = (
@@ -1092,7 +1096,6 @@ def main():
if any(named_conf_changes): if any(named_conf_changes):
# configuration has changed, restart the name server # configuration has changed, restart the name server
root_logger.info('Changes to named.conf have been made, restart named') root_logger.info('Changes to named.conf have been made, restart named')
bind = bindinstance.BindInstance(fstore)
try: try:
bind.restart() bind.restart()
except ipautil.CalledProcessError, e: except ipautil.CalledProcessError, e:

View File

@@ -0,0 +1,9 @@
# Enable Retro changelog
dn: cn=Retro Changelog Plugin,cn=plugins,cn=config
only:nsslapd-pluginEnabled: on
add:nsslapd-attribute: nsuniqueid:targetUniqueId
add:nsslapd-changelogmaxage: 2d
# Enable SyncRepl
dn: cn=Content Synchronization,cn=plugins,cn=config
only:nsslapd-pluginEnabled: on

View File

@@ -14,6 +14,7 @@ app_DATA = \
20-indices.update \ 20-indices.update \
20-nss_ldap.update \ 20-nss_ldap.update \
20-replication.update \ 20-replication.update \
20-syncrepl.update \
20-user_private_groups.update \ 20-user_private_groups.update \
20-winsync_index.update \ 20-winsync_index.update \
21-replicas_container.update \ 21-replicas_container.update \

View File

@@ -22,6 +22,7 @@ import os
import pwd import pwd
import netaddr import netaddr
import re import re
import errno
import ldap import ldap
@@ -509,6 +510,16 @@ class BindInstance(service.Service):
os.close(bind_fd) os.close(bind_fd)
print "Sample zone file for bind has been created in "+bind_name print "Sample zone file for bind has been created in "+bind_name
def create_dir(self, path, mode):
try:
os.makedirs(path, mode)
except OSError as e:
if e.errno != errno.EEXIST:
raise e
pent = pwd.getpwnam(self.named_user or 'named')
os.chown(path, pent.pw_uid, pent.pw_gid)
def create_instance(self): def create_instance(self):
try: try:
@@ -519,6 +530,8 @@ class BindInstance(service.Service):
# get a connection to the DS # get a connection to the DS
self.ldap_connect() self.ldap_connect()
self.create_dir('/var/named/ipa', 0700)
if installutils.record_in_hosts(self.ip_address, self.fqdn) is None: if installutils.record_in_hosts(self.ip_address, self.fqdn) is None:
installutils.add_record_to_hosts(self.ip_address, self.fqdn) installutils.add_record_to_hosts(self.ip_address, self.fqdn)