On ke, 09 syys 2020, Scott Serr via FreeIPA-users wrote:
My environment is: CentOS 8.2, FreeIPA 4.8.4, single instance, no
clients
My minimal test case plugin looks like this:
user.takes_params += (
Str('useraffiliation?',
cli_name = 'useraffiliation',
label = _('User Affiliation'),
),
)
user.default_attributes.append('useraffiliation')
Say I modify the label. That change isn't shown in IPA cli:
ipa user-find foo --all
Then about an hour later (go eat dinner) then the label has changed.
Restarting the ipa service, another kinit, even rebooting doesn't hurry this process
along.
2 Questions:
1. What is causing this delay in reflecting my changes?
2. Is there a way to force my changes to be reflected right away?
The issue you see is a client-side caching of IPA API schema metadata.
In order to avoid retrieving API definition every time we call into
JSON-RPC, we retrieve API definition once and cache it locally.
When you change API definition, such as adding your plugin or adding
params to existing objects and restarting a server side, the fingerprint of
the API would change. However, the client doesn't know about that until
it retries to retrieve the new API definition.
A client-side workaround is to remove content of
~/.cache/ipa/servers/<servername> every time you are changing the server
content. If you want, you can remove the whole cache in ~/.cache/ipa as
it also includes older schema definitions.
--
/ Alexander Bokovoy
Sr. Principal Software Engineer
Security / Identity Management Engineering
Red Hat Limited, Finland