From 2ce5d99e83be7b7986c8e7d68175df58ea8d381b Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Wed, 13 Apr 2022 22:04:33 +0530 Subject: [PATCH] [bp-2.12] hostname - fix TypeError in FileStrategy (#77365) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Use file_get_content() to read the file containing the host name (cherry picked from commit d60efd97687803fd184ac53aa691bd4e0ec43170) Signed-off-by: Emmanuel Benoît Signed-off-by: Abhijeet Kasurde Co-authored-by: Emmanuel Benoît --- .../77074-hostname-fix-typeerror-in-filestrategy.yml | 2 ++ lib/ansible/modules/hostname.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/77074-hostname-fix-typeerror-in-filestrategy.yml diff --git a/changelogs/fragments/77074-hostname-fix-typeerror-in-filestrategy.yml b/changelogs/fragments/77074-hostname-fix-typeerror-in-filestrategy.yml new file mode 100644 index 00000000000..d2e80a0cebe --- /dev/null +++ b/changelogs/fragments/77074-hostname-fix-typeerror-in-filestrategy.yml @@ -0,0 +1,2 @@ +bugfixes: + - hostname - use ``file_get_content()`` to read the file containing the host name in the ``FileStrategy.get_permanent_hostname()`` method. This prevents a ``TypeError`` from being raised when the strategy is used (https://github.com/ansible/ansible/issues/77025). diff --git a/lib/ansible/modules/hostname.py b/lib/ansible/modules/hostname.py index fc908b5046f..8410df21608 100644 --- a/lib/ansible/modules/hostname.py +++ b/lib/ansible/modules/hostname.py @@ -78,7 +78,7 @@ from ansible.module_utils.basic import ( ) from ansible.module_utils.common.sys_info import get_platform_subclass from ansible.module_utils.facts.system.service_mgr import ServiceMgrFactCollector -from ansible.module_utils.facts.utils import get_file_lines +from ansible.module_utils.facts.utils import get_file_lines, get_file_content from ansible.module_utils._text import to_native, to_text from ansible.module_utils.six import PY3, text_type @@ -257,7 +257,7 @@ class FileStrategy(BaseStrategy): return '' try: - return get_file_lines(self.FILE) + return get_file_content(self.FILE, default='', strip=True) except Exception as e: self.module.fail_json( msg="failed to read hostname: %s" % to_native(e),