Hi folks,
for the first iteration of SSSD provider for OpenLMI I have created a
very simple model, that handles the most fundamental parts of SSSD:
domains and services (responders) - listing, activation and deactivation.
MOF class for this model is attached. It still lacks some annotation
and description but I think it is pretty much straightforward and
doesn't need any more explanation for developers.
The model contains four kinds of methods:
- get all supported (configured) services (domains)
- get active services (domains)
- enable service (domain)
- disable service (domain)
I've chosen this approach so we don't have to amend the model with
each new responder. So instead of EnableNSSService(), users will use
EnableService('nss').
Restart of SSSD deamon shall be handled by standard service provider,
so we don't have to deal with it - we just let users know that some
changes requires restarting. However, I'm inclined to create a method
under SSSD object (LMI_SSSD::Restart) to make the interface more
complete in later stage.
Now I'm looking for a way how the LMI provider will communicate with
SSSD. I've been playing with Jakub's D-Bus responder for a while and
it seems like a good way to go. We can expose everything we need over
D-Bus with proper access control and it all stays under SSSD control,
having LMI provider only as a simple client.
I would like to create a client wrapper over provided D-Bus interface
(say libsss_dbus), that will provide simple synchronous interface to
query D-Bus, encapsulating most of the D-Bus complexity. I have
prepared a proof of concept for this library, using both libdbus and
recommended libdbus-glib. It encapsulates ListDomains and property Get
D-Bus method. You can see both versions here:
- libdbus:
http://fedorapeople.org/cgit/pbrezina/public_git/sssd_gdbus.git/tree/src/...
- libdbus-glib:
http://fedorapeople.org/cgit/pbrezina/public_git/sssd_gdbus.git/tree/src/...
Probably the biggest advantage of libdbus-glib is the simplicity of
work with variants and dictionaries. However, I think it is quite an
overkill for our needs. I'm more inclined to use libdbus and write an
automatized parser for those data types, it won't be hard.
What do you say? Should I go this way?
Jakub, can you send the D-Bus responder to the list? It would be nice
to include it in master as an experimental feature and create tickets
for further work so we can work on it simultaneously.
_______________________________________________
sssd-devel mailing list
sssd-devel(a)lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
Stef, would be very helpful if you can review this.
--
Thank you,
Dmitri Pal
Sr. Engineering Manager for IdM portfolio
Red Hat Inc.
-------------------------------
Looking to carve out IT costs?