Skip to content
Snippets Groups Projects
Commit 5d435c37 authored by Thomas Woerner's avatar Thomas Woerner
Browse files

ansible_freeipa_module: Convert int to string in compare_args_ipa

With IPA 4.5 integers for examle in pwpolicy_find are returned as
integer values. The internally generated value will be converted from
integer to string (using to_text) if the value from find call result
is a string (or unicode for Python2).
parent ccc001ad
No related branches found
No related tags found
No related merge requests found
...@@ -38,6 +38,11 @@ from ipapython.ipautil import run ...@@ -38,6 +38,11 @@ from ipapython.ipautil import run
from ipaplatform.paths import paths from ipaplatform.paths import paths
from ipalib.krb_utils import get_credentials_if_valid from ipalib.krb_utils import get_credentials_if_valid
from ansible.module_utils._text import to_text from ansible.module_utils._text import to_text
import six
if six.PY3:
unicode = str
def valid_creds(module, principal): def valid_creds(module, principal):
...@@ -185,8 +190,13 @@ def compare_args_ipa(module, args, ipa): ...@@ -185,8 +190,13 @@ def compare_args_ipa(module, args, ipa):
# are lists, but not all. # are lists, but not all.
if isinstance(ipa_arg, tuple): if isinstance(ipa_arg, tuple):
ipa_arg = list(ipa_arg) ipa_arg = list(ipa_arg)
if isinstance(ipa_arg, list) and not isinstance(arg, list): if isinstance(ipa_arg, list):
if not isinstance(arg, list):
arg = [arg] arg = [arg]
if isinstance(ipa_arg[0], str) and isinstance(arg[0], int):
arg = [to_text(_arg) for _arg in arg]
if isinstance(ipa_arg[0], unicode) and isinstance(arg[0], int):
arg = [to_text(_arg) for _arg in arg]
# module.warn("%s <=> %s" % (arg, ipa_arg)) # module.warn("%s <=> %s" % (arg, ipa_arg))
if set(arg) != set(ipa_arg): if set(arg) != set(ipa_arg):
# module.warn("DIFFERENT") # module.warn("DIFFERENT")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment