[Freeipa-devel] [PATCH] 241 Fix precallback validators in DNS plugin

Petr Viktorin pviktori at redhat.com
Thu Mar 22 15:30:15 UTC 2012


On 03/21/2012 01:51 PM, Martin Kosek wrote:
> DNS plugin contains several RR type record validators run in
> pre_callback which cannot be used as standard param validator
> as it needs more data and resources that standard validators
> provide. However, the precallback validators are not run for
> DNS records created by new structured options and thus an invalid
> value may slip in.
>
> This patch moves the execution of these precallback validators
> _after_ the processing of structured DNS options. It also cleans
> them up a little and makes them more robust.
>
> https://fedorahosted.org/freeipa/ticket/2550
>

Functionally, the patch works fine.
Since you're cleaning up, I have some nitpicks, but ACK if you disagree.


Consider if instead of:

rtype_cb = '_%s_pre_callback' % rtype
if hasattr(self.obj, rtype_cb):
     getattr(self.obj, rtype_cb)(ldap, dn, entry_attrs, *keys, **options)

this wouldn't be more readable:

rtype_cb = getattr(self.obj, '_%s_pre_callback' % rtype, None)
if rtype_cb:
     rtype_cb(ldap, dn, entry_attrs, *keys, **options)

and since the block appears twice now, make it a method.

Also, since is_ns_rec_resolvable raises an exception rather than 
returning a bool, it should probably be renamed to something like 
check_ns_rec_resolvable.

-- 
Petr³




More information about the Freeipa-devel mailing list