Warning
This is a design page. It was used to design and discuss the initial implementation of the change. However, the state of this document does not necessarily correspond to the current state of the implementation since we do not keep this document up to date with further changes and bug fixes.
D-Bus Interface: Cached Objects
Related ticket(s):
Related design page(s):
Problem statement
This design document describes how objects can be marked as cached.
Use cases
Allow tools like graphical user management to display a list of users who recently logged in.
D-Bus Interface
org.freedesktop.sssd.infopipe.Cache
Object paths implementing this interface
/org/freedesktop/sssd/infopipe/Users
/org/freedesktop/sssd/infopipe/Groups
Methods
ao List()
ao ListByDomain(s:domain_name)
Returns list of objects that contains cached attribute.
Signals
None.
Properties
None.
org.freedesktop.sssd.infopipe.Cache.Object
Object paths implementing this interface
/org/freedesktop/sssd/infopipe/Users/*
/org/freedesktop/sssd/infopipe/Groups/*
Methods
b Store()
b Remove()
Those methods will add/remove cached attributed to the object under path implementing this interface.
Signals
None.
Properties
None.
Overview of the solution
New sysdb attribute ifp_cached is created for users and groups objects. If this attribute is present, the object is considered to be cached on IFP D-Bus. The introspection of an object path /obj/path will report all cached objects in the subtree /obj/path/*.
How To Test
Call the D-Bus methods and properties. For example with dbus-send tool. A cached object is supposed to appear in introspection.
Authors
Jakub Hrozek <jhrozek@redhat.com>
Pavel Březina <pbrezina@redhat.com>