summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2010-12-13 14:28:11 -0500
committerSimo Sorce <ssorce@redhat.com>2010-12-17 17:31:19 -0500
commit1600146c942eedcbeb4f67537ee35d1e73c46b24 (patch)
treef3635700a6ba229b7cfed7fb135211629beeb248
parent358b28398cad150d6aab873a2d998211bf31d335 (diff)
downloadfreeipa-1600146c942eedcbeb4f67537ee35d1e73c46b24.tar.gz
freeipa-1600146c942eedcbeb4f67537ee35d1e73c46b24.tar.xz
freeipa-1600146c942eedcbeb4f67537ee35d1e73c46b24.zip
Verify that the replication plugin exists before setting up replicas.
ticket 502
-rwxr-xr-xinstall/tools/ipa-replica-install3
-rwxr-xr-xinstall/tools/ipa-replica-prepare3
-rw-r--r--ipaserver/install/replication.py14
3 files changed, 20 insertions, 0 deletions
diff --git a/install/tools/ipa-replica-install b/install/tools/ipa-replica-install
index 50855fde..0826afa5 100755
--- a/install/tools/ipa-replica-install
+++ b/install/tools/ipa-replica-install
@@ -28,6 +28,7 @@ from ipapython import ipautil
from ipaserver.install import dsinstance, installutils, krbinstance, service
from ipaserver.install import bindinstance, httpinstance, ntpinstance, certs
+from ipaserver.install.replication import check_replication_plugin
from ipaserver.plugins.ldap2 import ldap2
from ipapython import version
from ipalib import api, errors, util
@@ -279,6 +280,8 @@ def check_bind():
sys.exit(1)
def main():
+ if not check_replication_plugin():
+ sys.exit(1)
safe_options, options, filename = parse_options()
installutils.standard_logging_setup("/var/log/ipareplica-install.log", options.debug)
logging.debug('%s was invoked with argument "%s" and options: %s' % (sys.argv[0], filename, safe_options))
diff --git a/install/tools/ipa-replica-prepare b/install/tools/ipa-replica-prepare
index b9e3425e..9d7a14b8 100755
--- a/install/tools/ipa-replica-prepare
+++ b/install/tools/ipa-replica-prepare
@@ -29,6 +29,7 @@ from optparse import OptionParser
from ipapython import ipautil
from ipaserver.install import bindinstance, dsinstance, installutils, certs
from ipaserver.install.bindinstance import add_zone, add_reverze_zone, add_rr, add_ptr_rr
+from ipaserver.install.replication import check_replication_plugin
from ipaserver.plugins.ldap2 import ldap2
from ipapython import version
from ipalib import api, errors, util
@@ -228,6 +229,8 @@ def get_dirman_password():
return installutils.read_password("Directory Manager (existing master)", confirm=False, validate=False)
def main():
+ if not check_replication_plugin():
+ sys.exit(1)
options, args = parse_options()
replica_fqdn = args[0]
diff --git a/ipaserver/install/replication.py b/ipaserver/install/replication.py
index ed1badc1..cdff50e7 100644
--- a/ipaserver/install/replication.py
+++ b/ipaserver/install/replication.py
@@ -19,6 +19,7 @@
import time, logging
+import os
import ldap
from ipaserver import ipaldap
from ldap import modlist
@@ -39,6 +40,19 @@ WINSYNC = 2
SASL_AUTH = ldap.sasl.sasl({}, 'GSSAPI')
+def check_replication_plugin():
+ """
+ Confirm that the 389-ds replication is installed.
+
+ Emit a message and return True/False
+ """
+ if not os.path.exists('/usr/lib/dirsrv/plugins/libreplication-plugin.so') and \
+ not os.path.exists('/usr/lib64/dirsrv/plugins/libreplication-plugin.so'):
+ print "The 389-ds replication plug-in was not found on this system"
+ return False
+
+ return True
+
class ReplicationManager:
"""Manage replication agreements between DS servers, and sync
agreements with Windows servers"""