Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] remote plugins: add option to force compat plugins #625

Closed
wants to merge 1 commit into from
Closed

[RFC] remote plugins: add option to force compat plugins #625

wants to merge 1 commit into from

Conversation

HonzaCholasta
Copy link
Contributor

Add a new force_client_compat env flag to force client API not to do any
RPC calls to initialize remote plugins in .finalize() and use the newest
compat plugins instead.

Setting the flag serves as a workaround for api.finalize() requiring
valid Kerberos credentials.

https://pagure.io/freeipa/issue/6408

Add a new `force_client_compat` env flag to force client API not to do any
RPC calls to initialize remote plugins in `.finalize()` and use the newest
compat plugins instead.

Setting the flag serves as a workaround for `api.finalize()` requiring
valid Kerberos credentials.

https://pagure.io/freeipa/issue/6408
@HonzaCholasta
Copy link
Contributor Author

@tiran, please review this, I'm not sure whether this kind of workaround is good enough or not.

@tiran
Copy link
Member

tiran commented Mar 29, 2017

I don't understand the implications of this change and the new flag:

  • What are the benefits and drawbacks of force_client_compat=False?
  • What are the benefits and drawbacks of force_client_compat=True?
  • Why does FreeIPA have schema download and compat plugins at all?
  • Why is this feature implemented as either/or option instead of optimistic try/fallback?

New feature is missing unit and integration tests.

Copy link
Member

@tiran tiran left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add tests

@HonzaCholasta
Copy link
Contributor Author

  • With force_client_compat=False, the benefit is the client API matches the remote server API, the drawback is api.finalize() does RPC calls and touches schema cache (i.e. the current behavior).
  • With force_client_compat=True, the benefit is api.finalize() does no RPC calls nor does it touch schema cache, the drawback is that the client API is stuck at API version 2.164 (IPA 4.3.3).
  • Schema download exists to support newer servers versions without having to update the client. Compat plugins exist to support older server versions which do not have schema support. (See http://www.freeipa.org/page/V4/API_Compatiblity.)
  • Optimistic try/fallback is the current behavior which requires RPC calls in api.finalize() to detect the server's capabilities in order to reconstruct it's API locally. With this PR it's possible to skip this step and fall back to the behavior of IPA 4.3.3.

@HonzaCholasta HonzaCholasta added the rejected Pull Request has been rejected label Jul 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rejected Pull Request has been rejected
Projects
None yet
2 participants