On 07/17/2013 01:48 PM, Jan Cholasta wrote:
> On 17.7.2013 13:13, Tomas Babej wrote:
>>  > + class AdviceLogger(object):
>>
>>  >
>>
>>  > Please don't use nested classes. If you want AdviceLogger to be
>>
>>  > private-ish, you can rename it to _AdviceLogger.
>>
>>  >
>>
>>  > Also I think AdviceLogger is a little bit misleading name, I would
>>
>>  > prefer AdviceOutput or something like that.
>>
>>  >
>>
>> Fixed.
> 
> Thanks.
> 
>>
>>  > Functionally the patch is OK, but I have some second thoughts about the
>>
>>  > design. I'm not sure if using API plugins is truly the right thing to
>>
>>  > do, as advises seem to be pretty much orthogonal to the rest of our API.
>>
>>  > There are some negative side effects, such as initializing the API every
>>
>>  > time ipa-advise is run, for each and every advice, which takes some
>>
>>  > time, so there is a short but noticable delay.
>>
>> What do you mean by that API is initialized for each and every advice?
> 
> For example when you run "ipa-advise config-fedora-authconfig", all of the
> ipalib and advise plugins are initialized. Seems like an overkill just to 
> print
> 6 lines of text.

In this case, it at least uses options from IPA server configuration (api.env)
- which I think will be the case for most avices of this kind.

> 
>>
>> AFAIK, the advice plugins are all imported at once, the the API is
>> initialized.
>>
>> They are imported only in the API 'advise' context, so no performance
>> decrease
>>
>> for the rest of the framework.
>>
>>  > What are the benefits of
>>
>>  > using API plugins for this, besides code reuse? (I'm not saying this
>>
>>  > must be changed, just give it some thought, using something simpler
>>
>>  > might be better.)
>>
>> Code reuse is one thing. Also, ability to call the IPA commands from
>>
>> within the plugins is the second factor. To allow that we would have to
>>
>> inicialize the API anyway.
> 
> ... which could be done on-demand when it is actually needed.
> 
>>
>> Also some important constants which can be leveraged by the plugins are
>>
>> contained in api.env namespace.
>>
>> Taking into consideration that running ipa-advise is more of a
>>
>> one-time thing, I am willing to sacrifice a bit of delay in
>>
>> favour of these advantages.
> 
> OK.
> 
> I still think that it's rather strange to pretend that advices are part of our
> API when they don't actually contribute anything to the API, but that's more 
> of
> a structural problem, not a problem with your patch.
> 
>>
>> Updated patch attached.
> 
> ACK.
> 
> Honza
> 

Pushed to master.

Martin

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to