On Sat, Nov 22, 2014 at 03:39:45PM +0100, Jakub Hrozek wrote:
On Wed, Nov 19, 2014 at 01:36:02PM +0100, Sumit Bose wrote:
> Hi,
>
> with this patch SSSD can switch to a new view at startup. There is a
> todo in the third patch. Currently the user and group entries are only
> invalidated so that the new view/override data is checked at the next
> request for the given object. Additionally we might want to start a
> background task with refreshes the existing entries in the cache
> unconditionally. But this might result in unwanted network peaks during
> startup. So I left the implementation for a later patch, if this is
> needed.
>
> bye,
> Sumit
Do these patches depend on some other patchset? I'm getting:
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:237:59: error: use of
undeclared identifier 'TEST_VIEW_NAME'
ret = sysdb_update_view_name(test_ctx->domain->sysdb, TEST_VIEW_NAME);
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:240:46: error: use of
undeclared identifier 'TEST_USER_NAME'
ret = sysdb_store_user(test_ctx->domain, TEST_USER_NAME, NULL,
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:246:65: error: use of
undeclared identifier 'TEST_USER_NAME'
ret = sysdb_search_user_by_name(test_ctx, test_ctx->domain, TEST_USER_NAME,
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:255:34: error: use of
undeclared identifier 'TEST_ANCHOR_PREFIX'
TEST_ANCHOR_PREFIX TEST_USER_SID);
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:258:50: error: use of
undeclared identifier 'TEST_VIEW_NAME'
ret = sysdb_store_override(test_ctx->domain, TEST_VIEW_NAME,
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:272:59: error: use of
undeclared identifier 'TEST_VIEW_NAME'
ret = sysdb_delete_view_tree(test_ctx->domain->sysdb, TEST_VIEW_NAME);
^
CC src/responder/ifp/ifp_tests-ifpsrv_util.o
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:299:59: error: use of
undeclared identifier 'TEST_VIEW_NAME'
ret = sysdb_update_view_name(test_ctx->domain->sysdb, TEST_VIEW_NAME);
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:302:46: error: use of
undeclared identifier 'TEST_USER_NAME'
ret = sysdb_store_user(test_ctx->domain, TEST_USER_NAME, NULL,
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:308:65: error: use of
undeclared identifier 'TEST_USER_NAME'
ret = sysdb_search_user_by_name(test_ctx, test_ctx->domain, TEST_USER_NAME,
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:317:34: error: use of
undeclared identifier 'TEST_ANCHOR_PREFIX'
TEST_ANCHOR_PREFIX TEST_USER_SID);
^
CC src/responder/common/ifp_tests-responder_utils.o
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:320:50: error: use of
undeclared identifier 'TEST_VIEW_NAME'
ret = sysdb_store_override(test_ctx->domain, TEST_VIEW_NAME,
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:328:59: error: use of
undeclared identifier 'TEST_VIEW_NAME'
ret = sysdb_delete_view_tree(test_ctx->domain->sysdb, TEST_VIEW_NAME);
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:331:65: error: use of
undeclared identifier 'TEST_USER_NAME'
ret = sysdb_search_user_by_name(test_ctx, test_ctx->domain, TEST_USER_NAME,
^
/home/remote/jhrozek/devel/sssd/src/tests/cmocka/test_sysdb_views.c:341:65: error: use of
undeclared identifier 'TEST_USER_NAME'
ret = sysdb_search_user_by_name(test_ctx, test_ctx->domain, TEST_USER_NAME,
^
14 errors generated.
ah, sorry, I attached a new version with the missing defines.
> From 1b7c7b26edb55f238b1649c730cb277b57c60f46 Mon Sep 17 00:00:00 2001
> From: Sumit Bose <sbose(a)redhat.com>
> Date: Wed, 12 Nov 2014 12:43:23 +0100
> Subject: [PATCH 1/3] sysdb: add sysdb_delete_view_tree()
>
> ---
> src/db/sysdb.h | 2 ++
> src/db/sysdb_views.c | 34 ++++++++++++++++++++
> src/tests/cmocka/test_sysdb_views.c | 63 +++++++++++++++++++++++++++++++++++++
> 3 files changed, 99 insertions(+)
>
> diff --git a/src/db/sysdb.h b/src/db/sysdb.h
> index 7a51117..a3ffa7b 100644
> --- a/src/db/sysdb.h
> +++ b/src/db/sysdb.h
> @@ -444,6 +444,8 @@ errno_t sysdb_update_view_name(struct sysdb_ctx *sysdb, const
char *view_name);
> errno_t sysdb_get_view_name(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb,
> char **view_name);
>
> +errno_t sysdb_delete_view_tree(struct sysdb_ctx *sysdb, const char *view_name);
> +
Looks like some of the functions accept sysdb_ctx and some accept
sss_domain_info. I generally prefer sss_domain_info as sysdb_ctx seems like a
bit low-level property that should ideally be used in the sysdb module only.
If you agree, can you file a ticket to unify the API?
In general yes, but so far I used sysdb_ctx instead of sss_domain_info
on purpose for calls which are independent of a domain or touches all
domains. E.g. if sysdb_invalidate_overrides() uses sss_domain_info
instead of sysdb_ctx one might ask if this call only invalidates the
objects of the given domain.
So, I'm not against using sss_domain_info I just wanted to explain my
reasoning for using sysdb_ctx.
> From 383584a035b9442eb4d50d0ff08f06b6d0cf348a Mon Sep 17 00:00:00 2001
> From: Sumit Bose <sbose(a)redhat.com>
> Date: Wed, 12 Nov 2014 16:26:55 +0100
> Subject: [PATCH 2/3] sysdb: add sysdb_invalidate_overrides()
Looks good to me.
> From 1cecb49aac804396c1b61812f6d2b6ea076cccc3 Mon Sep 17 00:00:00 2001
> From: Sumit Bose <sbose(a)redhat.com>
> Date: Wed, 12 Nov 2014 16:30:57 +0100
> Subject: [PATCH 3/3] views: allow view name change at startup
>
> Currently some manual steps are needed on a FreeIPA to switch from one
> view to another. With this patch the IPA provider checks at startup if
> the view name changed and does the needed steps automatically. Besides
> saving the new view name this includes removing the old view data and
> marking the user and group entries as invalid.
The code looks good, but I always get:
(Sat Nov 22 15:37:28 2014) [sssd[be[ipa.example.com]]]
[ipa_get_view_name_done] (0x0020): View name changed, this is currently
not supported!
When switching from one view to another...I tested using idview-unapply
and then idview-apply to another view, is there some other way?
Do you see this at restart or at runtime?
bye,
Sumit
_______________________________________________
sssd-devel mailing list
sssd-devel(a)lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel