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

Rob Crittenden rcritten at redhat.com
Tue Apr 16 14:18:44 UTC 2013


Tomas Babej wrote:
> On 04/15/2013 11:58 PM, Rob Crittenden wrote:
>> 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]
>>
>>
> I added the calls and rebased the patch. I also found one missed call in
> ipa-replica-csmanage.
>
> Updated patch attached.

ACK, pushed to master

rob




More information about the Freeipa-devel mailing list