[Freeipa-devel] [PATCH 0022][Tests] Prevent trust test failures cause by adding duplicate DNS forward zone

Lenka Doudova ldoudova at redhat.com
Tue Jul 26 10:17:11 UTC 2016



On 06/30/2016 01:14 PM, Martin Basti wrote:
>
>
> On 30.06.2016 12:58, Lenka Doudova wrote:
>>
>>
>> On 06/30/2016 12:51 PM, Petr Spacek wrote:
>>> On 30.6.2016 12:32, Lenka Doudova wrote:
>>>>
>>>> On 06/29/2016 07:49 PM, Petr Spacek wrote:
>>>>> On 29.6.2016 18:52, Lenka Doudova wrote:
>>>>>> On 06/29/2016 06:51 PM, Petr Spacek wrote:
>>>>>>> On 29.6.2016 18:48, Lenka Doudova wrote:
>>>>>>>> On 06/27/2016 11:05 AM, Lenka Doudova wrote:
>>>>>>>>> On 06/27/2016 10:33 AM, Martin Babinsky wrote:
>>>>>>>>>> On 06/27/2016 10:28 AM, Petr Spacek wrote:
>>>>>>>>>>> On 27.6.2016 10:26, Petr Spacek wrote:
>>>>>>>>>>>> On 27.6.2016 10:18, Martin Babinsky wrote:
>>>>>>>>>>>>> On 06/27/2016 10:04 AM, Petr Vobornik wrote:
>>>>>>>>>>>>>> On 06/27/2016 09:42 AM, Lenka Doudova wrote:
>>>>>>>>>>>>>>> Hi!
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> With newly created AD machines in Brno lab, existing 
>>>>>>>>>>>>>>> trust tests
>>>>>>>>>>>>>>> fail on
>>>>>>>>>>>>>>> 'ipa dnsforwardzone-add' command claiming the zone is 
>>>>>>>>>>>>>>> already
>>>>>>>>>>>>>>> present,
>>>>>>>>>>>>>>> as new AD domain is dom-221.idm.lab.eng.brq.redhat.com.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> To prevent these failures I prepared attached patch, 
>>>>>>>>>>>>>>> that will still
>>>>>>>>>>>>>>> attempt to add the forward zone, but in case of non-zero 
>>>>>>>>>>>>>>> return code
>>>>>>>>>>>>>>> will check the message if it says that the forward zone 
>>>>>>>>>>>>>>> is already
>>>>>>>>>>>>>>> configured, and lets the tests continue, if it is so.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Lenka
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Current approach expects that every error of ipa 
>>>>>>>>>>>>>> dnsforward-add here
>>>>>>>>>>>>>> will mean that the zone exists. So it might hide other 
>>>>>>>>>>>>>> issues - not
>>>>>>>>>>>>>> very
>>>>>>>>>>>>>> good.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On the other hand it is not very robust to parse error 
>>>>>>>>>>>>>> message.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Question for general audience: What do you think if IPA 
>>>>>>>>>>>>>> client's exit
>>>>>>>>>>>>>> status would be the IPA error code instead of "1" for 
>>>>>>>>>>>>>> every error.
>>>>>>>>>>>>>> E.g.
>>>>>>>>>>>>>> in DuplicateEntry case it's 4002.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Btw, this is not a NACK.
>>>>>>>>>>>>>>
>>>>>>>>>>>>> Well AFAIK the exit status on POSIX systems is encoded 
>>>>>>>>>>>>> into a single
>>>>>>>>>>>>> byte so
>>>>>>>>>>>>> you cannot have the return value greater that 255. We 
>>>>>>>>>>>>> would have to
>>>>>>>>>>>>> devise
>>>>>>>>>>>>> some mapping between our XMLRPC status codes and 
>>>>>>>>>>>>> subprocess return
>>>>>>>>>>>>> codes.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Some of our exceptions have defined return values outside 
>>>>>>>>>>>>> plain '1',
>>>>>>>>>>>>> e.g.
>>>>>>>>>>>>> NotFound has return value of 2. It would be possible to 
>>>>>>>>>>>>> extend this
>>>>>>>>>>>>> concept on
>>>>>>>>>>>>> other common errors.
>>>>>>>>>>>> Even more importantly, the forward zone is completely 
>>>>>>>>>>>> unnecessary
>>>>>>>>>>>> because
>>>>>>>>>>>> DNS
>>>>>>>>>>>> when DNS is set up properly. I would simply remove the
>>>>>>>>>>>> dnsforwardzone-add.
>>>>>>>>>>>>
>>>>>>>>>>> Grr, I meant this:
>>>>>>>>>>> Even more importantly, the forward zone is completely 
>>>>>>>>>>> unnecessary when
>>>>>>>>>>> DNS is
>>>>>>>>>>> set up properly. I would simply remove the dnsforwardzone-add.
>>>>>>>>>>>
>>>>>>>>>> +1, our tests should not fiddle with the provisioned 
>>>>>>>>>> environment as
>>>>>>>>>> much as
>>>>>>>>>> they sometimes do.
>>>>>>>>>>
>>>>>>>>> Well, I have nothing against removing it completely, but left 
>>>>>>>>> it there just
>>>>>>>>> because with previous AD machines with "wild" domains it was 
>>>>>>>>> necessary.
>>>>>>>>> Looking at the code, your suggestion would probably mean to 
>>>>>>>>> entirely remove
>>>>>>>>> method configure_dns_for_trust from 
>>>>>>>>> ipatests/test_integration/tasks.py,
>>>>>>>>> right? I'll have to verify this won't break anything else.
>>>>>>>>>
>>>>>>>>> Lenka
>>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> to get back to this issue: do we really want to have the DNS 
>>>>>>>> configuration
>>>>>>>> method removed? I mean, we no longer need it for our CI tests, 
>>>>>>>> with new
>>>>>>>> AD VMs
>>>>>>>> it works without it, but should somebody else with different 
>>>>>>>> setup run these
>>>>>>>> tests, they could experience failures because their AD domain 
>>>>>>>> would not be
>>>>>>>> configured in DNS by default and the test would no longer 
>>>>>>>> provide that
>>>>>>>> configuration. It doesn't feel right to delete something we 
>>>>>>>> needed before
>>>>>>>> but
>>>>>>>> don't need anymore, in case somebody else is depending on the same
>>>>>>>> configuration. But of course, I'll abide by your counsel.
>>>>>>>> In case the call on DNS configuration method really is removed, 
>>>>>>>> should I
>>>>>>>> remove even it's definition? It's not used anywhere else, so it 
>>>>>>>> would be
>>>>>>>> quite
>>>>>>>> logical.
>>>>>>> Feel free to keep empty method around as a "hook" for other 
>>>>>>> people. The
>>>>>>> important thing is that it should do nothing by default.
>>>>>>>
>>>>>> So leave the method call, but erase method contents and let it 
>>>>>> just pass?
>>>>> Fine with me. (List re-added.)
>>>>>
>>>> Ah, sorry for doing the wrong reply.
>>>> Anyway, fixed patch attached. I decided to do as you suggested - 
>>>> the original
>>>> DNS configuring function is now empty, I modified the comment to 
>>>> explain
>>>> significance of this strange thing. I also changed patch title to 
>>>> better
>>>> reflect proposed changes.
>>> ACK if it passes your tests.
>>>
>> Yes, I've had no problems running the tests since I started to use this.
>> Thanks.
>>
> Pushed to master: 1d9e1521c59a5b43c2322892ce5cbe8cceff2790
>
Hi,

I just realized the same problem occurs in 4.3 branch, but the original 
patch was pushed to master only, hence I ask for second review.
The originally pushed patch attached, should not need any modifications 
for ipa-4-3 branch.

Ticket: https://fedorahosted.org/freeipa/ticket/6133

Thanks,
Lenka
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeipa-ldoudova-0022.3-Tests-Remove-DNS-configuration-from-trust-tests.patch
Type: text/x-patch
Size: 2753 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20160726/70242643/attachment.bin>


More information about the Freeipa-devel mailing list