diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2015-06-15 19:14:37 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2015-06-29 17:09:54 +0200 |
commit | dcb6916a3b0601e33b08e12aeb25357efed6812b (patch) | |
tree | 14ef9ba56a9a53af407dac33608a26096918cc05 /ipaserver/install | |
parent | f9cbdd4915d13cd6e20fe7631d3c95c1352860f9 (diff) | |
download | freeipa-dcb6916a3b0601e33b08e12aeb25357efed6812b.tar.gz freeipa-dcb6916a3b0601e33b08e12aeb25357efed6812b.tar.xz freeipa-dcb6916a3b0601e33b08e12aeb25357efed6812b.zip |
fix force-sync, re-initialize of replica and a check for replication agreement existence
in other words limit usage of `agreement_dn` method only for manipulation
and search of agreements which are not managed by topology plugin.
For other cases is safer to search for the agreement.
https://fedorahosted.org/freeipa/ticket/5066
Reviewed-By: David Kupka <dkupka@redhat.com>
Diffstat (limited to 'ipaserver/install')
-rw-r--r-- | ipaserver/install/replication.py | 12 | ||||
-rw-r--r-- | ipaserver/install/server/replicainstall.py | 8 |
2 files changed, 4 insertions, 16 deletions
diff --git a/ipaserver/install/replication.py b/ipaserver/install/replication.py index b367d7db8..9333f6714 100644 --- a/ipaserver/install/replication.py +++ b/ipaserver/install/replication.py @@ -1167,10 +1167,8 @@ class ReplicationManager(object): conn.modify_s(dn, mod) def get_agreement_type(self, hostname): - cn, dn = self.agreement_dn(hostname) - - entry = self.conn.get_entry(dn) + entry = self.get_replication_agreement(hostname) objectclass = entry.get("objectclass") for o in objectclass: @@ -1578,9 +1576,7 @@ class ReplicationManager(object): """ Disable the replication agreement to hostname. """ - cn, dn = self.agreement_dn(hostname) - - entry = self.conn.get_entry(dn) + entry = self.get_replication_agreement(hostname) entry['nsds5ReplicaEnabled'] = 'off' try: @@ -1594,9 +1590,7 @@ class ReplicationManager(object): Note: for replication to work it needs to be enabled both ways. """ - cn, dn = self.agreement_dn(hostname) - - entry = self.conn.get_entry(dn) + entry = self.get_replication_agreement(hostname) entry['nsds5ReplicaEnabled'] = 'on' try: diff --git a/ipaserver/install/server/replicainstall.py b/ipaserver/install/server/replicainstall.py index 54d1ede13..069c46fc1 100644 --- a/ipaserver/install/server/replicainstall.py +++ b/ipaserver/install/server/replicainstall.py @@ -408,13 +408,7 @@ def install_check(installer): config.dirman_password) # Check that we don't already have a replication agreement - try: - (agreement_cn, agreement_dn) = replman.agreement_dn( - config.host_name) - entry = conn.get_entry(agreement_dn, ['*']) - except errors.NotFound: - pass - else: + if replman.get_replication_agreement(config.host_name): root_logger.info('Error: A replication agreement for this ' 'host already exists.') print('A replication agreement for this host already exists. ' |