mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2026-10-31 17:17:48 -05:00
If some Param defines several values for `exclude` or `include` attributes then API schema hash will be unstable. First, these Param's attributes are converted to frozenset (ipalib/parameters.py), then `ipaserver.plugins.schema` plugin converts `exclude` and `include` attrs to list. Set/frozenset in turn, is unordered collection [0]. So, the end order of values is undefined. But due to the nature of sets: > two sets are equal if and only if every element of each set is contained in the other (each is a subset of the other) the order of values can be ignored. Note: other Param's attrs with type frozenset are not affected because they are not processed by the schema plugin. [0]: https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset Fixes: https://pagure.io/freeipa/issue/8955 Signed-off-by: Stanislav Levin <slev@altlinux.org> Reviewed-By: Florence Blanc-Renaud <flo@redhat.com> Reviewed-By: Rob Crittenden <rcritten@redhat.com>