summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* sssctl: new toolPavel Březina2016-06-2711-0/+1665
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* IFP: Provide domain and failover statusPavel Březina2016-06-278-1/+219
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* DP: Add org.freedesktop.sssd.DataProvider.FailoverPavel Březina2016-06-279-24/+164
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* DP: Add org.freedesktop.sssd.DataProvider.BackendPavel Březina2016-06-277-0/+142
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* DP: Add function to get be_ctx directly from dp_clientPavel Březina2016-06-273-3/+12
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* SBUS: Add string helper macrosPavel Březina2016-06-273-2/+8
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* SBUS: Fix typo in commentPavel Březina2016-06-271-1/+3
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* SBUS ERRORS: Add unknown domainPavel Březina2016-06-271-0/+1
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* ERRORS: Add errors to indicated whether SSSD is running or notPavel Březina2016-06-272-0/+4
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_override: return EXIT_FAILURE if file does not exist during importPavel Březina2016-06-271-0/+2
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_override: return EXIT_SUCCESS even when no overrides are foundPavel Březina2016-06-271-1/+6
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: create confdb if not existPavel Březina2016-06-277-58/+93
| | | | | | | So tools (especially sssctl) may be run even when databases where removed. Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: add test if sssd is runningPavel Březina2016-06-278-98/+164
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: return errno_t instead of system codePavel Březina2016-06-273-180/+158
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: pad help message properlyPavel Březina2016-06-271-8/+31
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: add commands delimiterPavel Březina2016-06-272-0/+19
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: tell whether an option was providedPavel Březina2016-06-273-16/+28
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: unify description of --debugPavel Březina2016-06-271-1/+1
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: add help commands to usage messagePavel Březina2016-06-271-0/+6
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_tools: add command descriptionPavel Březina2016-06-273-14/+22
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_sifp: bump version to 1:0:1Pavel Březina2016-06-271-1/+1
| | | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* sss_sifp: return context even on IO errorPavel Březina2016-06-271-1/+2
| | | | | | So the caller is able to get error description. Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* sss_sifp: make it compatible with latest version of the infopipePavel Březina2016-06-279-109/+247
| | | | | | | | | | Current version of infopipe leverage different interfaces and object paths which were not accessible through the simple ifp library. This patch changes the API, which is ok since it was never declared as a public library and beside deprecated openlmi there are no known users. We will use this in sssctl tool. Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* IFP: new header file that contains interface definitionsPavel Březina2016-06-277-19/+46
| | | | | | To be shared across tools and libs. Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* IFP: Add domain nodesPavel Březina2016-06-273-1/+44
| | | | Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
* LDAP: Shortcut looking up for group members soonerJakub Hrozek2016-06-234-10/+95
| | | | | | | | | | | | | | | | This patch is a performance enhancement. When looking for entries to refresh, we always looked up all members in the cache, even if we ended up dereferencing the whole group. If we are about to try dereference, it makes sense to shortcut the lookups after the dereference threshold is reached. In that case, the split_members function returns a special error code and the caller just dereferences the whole group. Only if dereference fails, we fall back to looking up all members so that we can look them up one-by-one. Also adds an integration test to make sure the dereference code works. Reviewed-by: Sumit Bose <sbose@redhat.com>
* TESTS: Add an integration test for the timestamps cacheJakub Hrozek2016-06-235-0/+678
| | | | Reviewed-by: Sumit Bose <sbose@redhat.com>
* TESTS: Add a unit test for timestamps cachesJakub Hrozek2016-06-232-0/+1452
| | | | Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Only update user attributes if neededJakub Hrozek2016-06-231-0/+35
| | | | | | | | | | Resolves: https://fedorahosted.org/sssd/ticket/2602 Uses the same logic as previously used for updating group entries to only update user attributes if the group entry actually changed. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Refactor sysdb_store_userJakub Hrozek2016-06-231-64/+136
| | | | | | | Splits sysdb_store_user internals to two functions because the original function either creates a new user or updates an existing one. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Check if group attributes differ before saving a groupJakub Hrozek2016-06-233-7/+139
| | | | | | | | | | | Adds a new function sysdb_entry_attrs_diff() used in group saving code. This function is used to check if the result of updating a group would result in actually changing the sysdb entry -- often, we would try to dump the same data to the cache during update. If that's the case, the update code now only updates the timestamp cache, avoiding costly writes. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: If modifyTimestamp is the same, only update the TS cacheJakub Hrozek2016-06-237-36/+673
| | | | | | | | | | | | | | | | | | Resolves: https://fedorahosted.org/sssd/ticket/2602 If the entry being saved contains the original modifyTimestamp attribute and the modifyTimestamp attribute is the same as the one we already saved to the timestamp cache, only the expire timestamps in the asynchronous timestamp cache will be bumped and the sysdb code will avoid writes to the main cache completely. If the modifyTimestamp is either missing or differs, we assume the entry had changed and do a full write to the main cache. Also amends the generic sysdb_set_attrs* and similar functions that their results is also reflected in the timestamps cache. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Search the timestamp caches in addition to the sysdb cacheJakub Hrozek2016-06-2311-41/+667
| | | | | | | | | | | | | | | When a sysdb entry is searched, the sysdb cache is consulted first for users or groups. If an entry is found in the sysdb cache, the attributes from the timestamp cache are merged to return the full and up-to-date set of attributes. The merging is done with a single BASE search which is a direct lookup into the underlying key-value database, so it should be relatively fast. More complex merging is done only for enumeration by filter which is currently done only via the IFP back end and should be quite infrequent, so I hope we can justify a more complex merging there. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Wrap sysdb_store_group in a transaction and split it into smaller ↵Jakub Hrozek2016-06-231-42/+107
| | | | | | | | | | | | | | functions sysdb_store_group can do several things -- add, rename or update a group. It's important they are all done in a single transaction (even though the caller should typically start a transaction of his own). Also split the sysdb_store_group function into two, one that only stores a new group and one that changes attributes of an existing group to keep the flow easy and avoid two labels in a single function. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Open a timestamps cache for caching domainsJakub Hrozek2016-06-236-22/+114
| | | | | | | | | | | For all domain types, except the local domain, open a connection to a new ldb file located at /var/lib/sss/db names timestamps_$domain.ldb. Constructs the ldb file path manually in sysdb_check_upgrade_02() but that should be acceptable because nobody should be running such an old cache these days anyway. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Add a second, timestamp-only ldb cacheJakub Hrozek2016-06-232-0/+158
| | | | | | | | | | | | | | | | | Uses the generic functions in sysdb_init.c to open a new ldb database. The path to the database and the ldb context are stored in the sysdb_ctx. The database will be used to store ephemeral attributes such as timestamps. Because these attributes are not required for SSSD operation and the intent is for writes to this cache to be very fast, the database is opened with LDB_FLG_NOSYNC flag. At the same time, none of the attributes of the cache is required for sssd operation, so if we fail to open the database, we just start over. Adds a separate base LDIF with attributes that are supposed to be indexed in the timestamp database as well as a separate timestamp cache version. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Refactor database connectionJakub Hrozek2016-06-233-183/+342
| | | | | | | | | | | | | | | | | | | | | Changes the functions in sysdb_init.c so that the functions are usable to initialize a second cache to store timestamps. In particular, functions that operated on sysdb->ldb now operate on a generic ldb context so that a new ldb_ts context can be used later. Existing functions that initialize the sysdb cache call the generic functions with sysdb->ldb as a parameter. Splits out a function to initialize an empty ldb database with a generic LDIF. Splits out the sysdb upgrade function because the upgrade will only be used by the sysdb cache, the timestamp cache will start with a different version and might receive separate upgrade functions in the future. The ldb connection function accepts ldb flags parameter, currently unused. Reviewed-by: Sumit Bose <sbose@redhat.com>
* UTIL: Add error codes for sysdb too old or too newJakub Hrozek2016-06-234-6/+10
| | | | | | | We used really strange errno codes for detecting whether the database is too old or too new. We should use our sssd-specific error coded instead. Reviewed-by: Sumit Bose <sbose@redhat.com>
* SYSDB: Move sysdb initialization into a new module sysdb_init.cJakub Hrozek2016-06-233-526/+554
| | | | | | | | | | | The sysdb initialization was in the sysdb.c module. With adding initialization of the timestamp cache, this module would become too big with too many private functions meant only for initialization. This patch only moves code around, there are no functional changes to the initialization. Reviewed-by: Sumit Bose <sbose@redhat.com>
* GPO: ignore non-KVP lines if possibleMichal Židek2016-06-221-1/+60
| | | | | | | | | | | Ticket: https://fedorahosted.org/sssd/ticket/2751 Non-KVP break GPO processing. They are used for values we are not interested in so it is safe to ignore them. Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* Add winbind idmap pluginSumit Bose2016-06-2110-2/+476
| | | | | | | | With this plugin winbind can use the same id-mapping as SSSD which makes it possible to run both together in a consistent way. Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* Updating the version for the 1.14 beta releaseJakub Hrozek2016-06-201-1/+1
|
* Updating the translations for the 1.14 alpha releaseJakub Hrozek2016-06-2042-26700/+50590
|
* DP: Move be_req_acct and remove discard_constPavel Březina2016-06-203-16/+4
| | | | | | Reviewed-by: Sumit Bose <sbose@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* RESPONDER: New interface for client registrationPavel Březina2016-06-2016-63/+379
| | | | | | | | | | | | | | | | This is just a beginning of new responder interface to data provider and it is just to make the client registration work. It needs further improvement. The idea is to take the existing interface and make it work better with further extensions of data provider. The current interface has several disadvantages such as it is originally build only for account requests and doesn't take different set of output parameters. It also doesn't work well with integration into tevent-made responders. Reviewed-by: Sumit Bose <sbose@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* DP: Switch to new interfacePavel Březina2016-06-2074-8429/+8205
| | | | | | Reviewed-by: Sumit Bose <sbose@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* DP TESTS: Add unit tests for dp_builtin.cPavel Reichl2016-06-204-0/+245
| | | | | | Reviewed-by: Sumit Bose <sbose@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* DP TESTS: Add unit tests for dp_request.cPavel Reichl2016-06-202-0/+495
| | | | | | Reviewed-by: Sumit Bose <sbose@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* DP TESTS: Add unit tests for dp_request_table.cPavel Březina2016-06-202-0/+374
| | | | | | Reviewed-by: Sumit Bose <sbose@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
* DP TESTS: Mock data_providerPavel Březina2016-06-203-0/+134
| | | | | | Reviewed-by: Sumit Bose <sbose@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>