From ca0aed54b0ab9431a8dc2653ccada66f967e7a3e Mon Sep 17 00:00:00 2001
From: Rafael Guterres Jeffman <rjeffman@redhat.com>
Date: Thu, 11 Nov 2021 16:58:48 -0300
Subject: [PATCH] ansible_module_utils: Add method to get parameters as
 lowercase.

Many module member attributes must be handled in a case insensitive
manner. To ease handling these cases, a function and a method to get
the module parameters converted to lowercase is provided.
---
 .../module_utils/ansible_freeipa_module.py    | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/plugins/module_utils/ansible_freeipa_module.py b/plugins/module_utils/ansible_freeipa_module.py
index c6307aea..14977533 100644
--- a/plugins/module_utils/ansible_freeipa_module.py
+++ b/plugins/module_utils/ansible_freeipa_module.py
@@ -397,6 +397,14 @@ else:
     def module_params_get(module, name):
         return _afm_convert(module.params.get(name))
 
+    def module_params_get_lowercase(module, name):
+        value = _afm_convert(module.params.get(name))
+        if isinstance(value, list):
+            value = [v.lower() for v in value]
+        if isinstance(value, (str, unicode)):
+            value = value.lower()
+        return value
+
     def api_get_domain():
         return api.env.domain
 
@@ -699,6 +707,18 @@ else:
             """
             return module_params_get(self, name)
 
+        def params_get_lowercase(self, name):
+            """
+            Retrieve value set for module parameter as lowercase, if not None.
+
+            Parameters
+            ----------
+            name: string
+                The name of the parameter to retrieve.
+
+            """
+            return module_params_get_lowercase(self, name)
+
         def params_fail_used_invalid(self, invalid_params, state, action=None):
             """
             Fail module execution if one of the invalid parameters is not None.
-- 
GitLab