[Freeipa-devel] [PATCH 0044] Update only selected attributes for winsync agreement

Rob Crittenden rcritten at redhat.com
Mon Apr 15 21:58:53 UTC 2013


Tomas Babej wrote:
> On 04/09/2013 11:47 PM, Rob Crittenden wrote:
>> Tomas Babej wrote:
>>> Hi,
>>>
>>> Trying to insert nsDS5ReplicatedAttributeListTotal and
>>> nsds5ReplicaStripAttrs to winsync agreements caused upgrade errors.
>>> With this patch, these attributes are skipped for winsync agreements.
>>>
>>> Made find_ipa_replication_agreements() in replication.py more
>>> corresponding to find_replication_agreements. It returns list of
>>> entries instead of unicode strings now.
>>>
>>> https://fedorahosted.org/freeipa/ticket/3522
>>>
>>> Tomas
>>
>> This will still do some work against a winsync agreement. Do we need
>> to do that at all? I'm not sure we do.
>>
>> rob
>>
> I removed the nsds5replicahost attribute update for winsync agreements
> after discussion.
>
> Updated patch attached.
>
> Tomas

This looks ok. The backup/restore patch added two more calls to 
find_ipa_replication_agreements so a rebase is needed. I think these are 
the required changes:

diff --git a/ipaserver/install/ipa_restore.py 
b/ipaserver/install/ipa_restore.py
index 04d4210..760da0b 100644
--- a/ipaserver/install/ipa_restore.py
+++ b/ipaserver/install/ipa_restore.py
@@ -373,7 +373,10 @@ class Restore(admintool.AdminTool):

              services_cns = [s.single_value('cn') for s in services]

-            hosts = repl.find_ipa_replication_agreements()
+            host_entries = repl.find_ipa_replication_agreements()
+            hosts = [rep.single_value('nsds5replicahost', None)
+                     for rep in host_entries]
+
              for host in hosts:
                  self.log.info('Disabling replication agreement on %s 
to %s' % (
master, host))
                  repl.disable_agreement(host)
@@ -385,7 +388,9 @@ class Restore(admintool.AdminTool):
                  except Exception, e:
                      self.log.critical("Unable to disable agreement on 
%s: %s" %
  (master, e))

-                hosts = repl.find_ipa_replication_agreements()
+                host_entries = repl.find_ipa_replication_agreements()
+                hosts = [rep.single_value('nsds5replicahost', None)
+                         for rep in host_entries]
                  for host in hosts:
                      self.log.info('Disabling CA replication agreement 
on %s to
%s' % (master, host))
                      repl.hostnames = [master, host]





More information about the Freeipa-devel mailing list