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>
This commit is contained in:
Petr Vobornik
2015-06-15 19:14:37 +02:00
parent f9cbdd4915
commit dcb6916a3b
2 changed files with 4 additions and 16 deletions

View File

@@ -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: