[SSSD] Discussion: OpenLMI provider + D-Bus responder

Pavel Březina pbrezina at redhat.com
Thu Feb 13 13:14:01 UTC 2014


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/main.c?h=dbus

- libdbus-glib:
http://fedorapeople.org/cgit/pbrezina/public_git/sssd_gdbus.git/tree/src/main.c?h=gdbus

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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LMI_SSSD.mof
Type: text/x-mof
Size: 651 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20140213/b27623e6/attachment.bin>


More information about the sssd-devel mailing list