On 09/10/2014 03:10 PM, Petr Viktorin wrote:
On 08/01/2014 12:30 PM, Tomas Babej wrote:
Hi,
the following set of patches implements the ID view creation and
management of views and ID overrides in IPA.
Pending questions:
1.) The patch 253 implements basic managed permissions for ID views and
ID overrides. Do we want to have a separate permission for assigning ID
views?
2.) Performance: idview-apply command takes ~100 seconds for hostgroups
with 1000 member hosts. I am able to lower that by 20-30% using raw ldap
calls, is bypassing the framework worth the performance gain? We'll lose
the possiblity to hook on exception callbacks.
Oh, missed this for some reason, sorry. But I replied inline.
I believe calling Commands from Commands is bad; if you need some common
functionality it should be put in a Python function.
Do exception callbacks help here in any way?
The commands also need more helpful documentation, I am working on that.
Not tested yet, but here are my comments on the patches:
0247:
The change to copy-schema-to-ca is not necessary. This is only used for
servers installed with Dogtag 9; for such installs new schema is added
online (to 99-user.ldif), so it will be replicated to the CA DS correctly.
Did you register the new OIDs?
0248-0249 look good
0250:
With so many names imported from one module, I find it more readable to
`from ipalib.plugins import baseldap`, and use qualified names later.
Same in the 2 other patches.
This is personal preference/tip, feel free to disagree :)
0521:
Could you also kill the backslash in _hostname_validator?
0252:
Typo in __doc__, should be "This functionality is primarily used"…
{idview,idoverride}.takes_params: flags needs to be a set -- here you've
specified 11 single-letter flags. (Don't we all love Python's iterable
strings.)
Only one `ipa help` topic will be created for idview and idoverride. Is
that intended?
The pattern_errmsg in idoverride's uid should be expanded to fully
describe the pattern.
0253 looks good
0254:
The DN refactoring is done; I don't think the asserts in pre_callbacks
are necessary any more.
0258:
idview_apply: typo in hostgroup doc, should be "hosts to apply the ID
view to" and "after running the idview-apply command".
Typos in output params, should be e.g. "this ID view"
idview_apply.execute: Is there a reason for calling idview_show instead
of get_dn_if_exists?
idview_apply.execute:
failed['hostgroup'].append((hostgroup, str(e))) -- str(e) doesn't
include the name of the exception, which is usually important
Calling a Command (here, host_mod) from another Command is, at the very
least, quite slow, with all the validation and detailed output. It's
also a debugging nightmare when things go wrong. And the _exc_wrapper is
an even worse debugging nightmare.
If you need some functionality in the host plugin that you need, put it
in a function and call that. Otherwise use ldap directly.
Do we have some precedent for the 'No host was affected.' message?
Consumers of the JSON API shouldn't need to cpecial-case this string.
By subclassing idview_unapply from idview_apply you're violating
Liskov's substitution principle. Make a common base class for them.
0259:
show_id_overrides: cn is a MUST attribute in ipa*Override; use
view.single_value['cn'] instead of get(). In enumerate_hosts, is None
okay if cn is missing?
--
Petr³
_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel