On Tue, 2014-05-06 at 06:58 +0200, Stef Walter wrote:
> On 06.05.2014 01:51, Dmitri Pal wrote:
> > On 05/05/2014 12:28 PM, Pavel Březina wrote:
> >> On 05/05/2014 06:17 PM, Sumit Bose wrote:
> >>> On Mon, May 05, 2014 at 05:38:58PM +0200, Pavel Březina wrote:
> >>>> On 05/05/2014 05:25 PM, Jakub Hrozek wrote:
> >>>>> On Mon, May 05, 2014 at 05:08:39PM +0200, Pavel Březina wrote:
> >>>>>> On 05/05/2014 02:06 PM, Stef Walter wrote:
> >>>>>>> On 01.05.2014 17:39, Pavel Březina wrote:
> >>>>>>>> https://fedorahosted.org/sssd/ticket/2254
> >>>>>>>>
> >>>>>>>> Lukáš already did first round of review for build and packaging
> >>>>>>>> stuff.
> >>>>>>>> Thank you, I hope I have fixed all your concerns. There might be
> >>>>>>>> some
> >>>>>>>> more since I moved the library into libsss_dbus and
> >>>>>>>> libsss_dbus-devel
> >>>>>>>> packages.
> >>>>>>>>
> >>>>>>>> The library is built if IFP responder is built.
> >>>>>>>
> >>>>>>> As noted on IRC, I don't think this should be a public sssd API. As
> >>>>>>> internal code of the OpenLMI IFP provider it makes sense.
> >>>>>>>
> >>>>>>> But remember the public API *is* DBus itself. Callers of the sssd
> >>>>>>> DBus
> >>>>>>> API should use their local DBus facility in their language or
> >>>>>>> toolkit to
> >>>>>>> talk with sssd (ie: GDBus or python-dbus, or what have you).
> >>>>>>
> >>>>>>> I realize that sssd at present has no such local DBus facility in
> >>>>>>> its
> >>>>>>> toolkit (libdbus doesn't count, it's too low level) and that
> >>>>>>> having such
> >>>>>>> a client library internal to sssd makes sense. If it could be
> >>>>>>> based on
> >>>>>>> the codegen work that would be even better.
> >>>>>>>
> >>>>>>> But, back to the point: I would caution against making it a
> >>>>>>> public API
> >>>>>>> and having it become an fixture that people turn to when trying
> >>>>>>> to talk
> >>>>>>> with SSSD.
> >>>>>>
> >>>>>> Do we want the InfoPipe provider to be used at all? Sure, big
> >>>>>> projects and skilled developers can stick with gdbus but why every
> >>>>>> single project should write the same hundreds lines of code to do
> >>>>>> the most common tasks? I think having such library will make using
> >>>>>> the InfoPipe a less pain.
> >>>>>>
> >>>>>> Of course, this library does not completely hide the D-Bus for
> >>>>>> method calls, it is a compromise between universality and the need
> >>>>>> to completely reflect our D-Bus interface in this library. However,
> >>>>>> it still hides D-Bus completely when dealing with properties.
> >>>>>>
> >>>>>> I want to keep the OpenLMI provider clean and bring as many things
> >>>>>> on SSSD side as possible. This library allows me to do it.
> >>>>>>
> >>>>>> Sure, we don't have to make it a public API, even though it was the
> >>>>>> original intention. I can make it an OpenLMI client or put it
> >>>>>> completely into the OpenLMI provider tree.
> >>>>>
> >>>>> Also some developers were a bit nervous when we proposed that they
> >>>>> need
> >>>>> to interact with DBus directly at the C level or were outright
> >>>>> rejecting
> >>>>> talking to the system bus directly.
> >>>>>
> >>>>> It's a bit of Pandora box, though, we'd need to be very strict about
> >>>>> this new interface in case somebody comes with an RFE..the DBus
> >>>>> interface is /the/ interface...
> >>>>
> >>>> I can amend the documentation to make it more clear.
> >>>
> >>> The idea was that this library just provide some lookup calls for common
> >>> stuff like list of trusted domains and some user attributes which goes
> >>> beyond the POSIX interface on top of the D-BUS API to facilitates
> >>> adoption. It's a convenience library and there is no plan to wrap the
> >>> whole D-BUS API in this library.
> 
> Then at a very minimum we should call this library
> "libsimpleifpclient.so" or something like that... Calling it
> libsssd_dbus.so is really confusing.
> 
> >> Yep, that's not what it's doing.
> > 
> > Yes the intent was to make it public so that it can be easily called
> > from a python, ruby or java app to get missing data when an admin is
> > defining roles in the context of the application.
> > So please make it targeted and public. There will be consumers of this
> > API quite soon: Foreman, oVirt, Keystone and others...
> 
> This is backwards.
> 
> It's easy to call DBus from python, java and friends. There's no need to
> pass that interaction through the bottleneck (albeit simple bottleneck)
> that this library provides. At the current time this library is not
> thread-safe, not loop-integratable, not-abi-extensible etc. It would
> need to look significantly different to provide the foundation for what
> you provide there. And why? The callers you suggest already have solid
> ways to call DBus. It's sssd/tevent that doesn't.

I think what we should do is rather provide very simple example code
snippets that show how to use the API from a couple of languages, and if
we really think it helps maybe create a simple module that wraps these
examples.

It will be less time than trying to maintain C bindings for sure.

Simo.
-- 
Simo Sorce * Red Hat, Inc * New York

_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to