mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-07-31 11:54:47 +00:00
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).
This commit is contained in:
@@ -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):
|
|||||||
# 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):
|
||||||
arg = [arg]
|
if not isinstance(arg, list):
|
||||||
|
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")
|
||||||
|
|||||||
Reference in New Issue
Block a user