From bde3eb829431d15f4ec0312fdde177433ed04f6d Mon Sep 17 00:00:00 2001 From: Rafael Guterres Jeffman <rjeffman@redhat.com> Date: Wed, 12 Jan 2022 16:55:33 -0300 Subject: [PATCH] IPAAnsibleModule: cache IPA domain. Some attributes retrieved by the IPA API backend don't change, and are used more than once, in different places of the code. IPA API domain is one of these attributes. This patch adds a cache to the attribute, so there is only one request for the API, improving access time to the object and alowing multiple calls with no efficiency penalty. --- plugins/module_utils/ansible_freeipa_module.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/module_utils/ansible_freeipa_module.py b/plugins/module_utils/ansible_freeipa_module.py index b4cdf613..b9e32369 100644 --- a/plugins/module_utils/ansible_freeipa_module.py +++ b/plugins/module_utils/ansible_freeipa_module.py @@ -875,10 +875,11 @@ else: """ return api_command_no_name(self, command, args) - @staticmethod - def ipa_get_domain(): + def ipa_get_domain(self): """Retrieve IPA API domain.""" - return api_get_domain() + if not hasattr(self, "__ipa_api_domain"): + setattr(self, "__ipa_api_domain", api_get_domain()) + return getattr(self, "__ipa_api_domain") @staticmethod def ipa_get_realm(): -- GitLab