From db208bd6c11afda738b254b4d21b3cfb5307a3fd Mon Sep 17 00:00:00 2001 From: Thomas Woerner Date: Wed, 9 Jun 2021 10:53:34 +0200 Subject: [PATCH] ipabackup: Use module to get IPA_BACKUP_DIR from ipaplatform Up to now a python snippet was used to get IPA_BACKUP_DIR from ipaplatform but this was not working when ansible_facts was false due to not getting ansible_python_interpreter set. The module version is also working if gather_facts is turned off. --- .../library/ipabackup_get_backup_dir.py | 69 +++++++++++++++++++ roles/ipabackup/tasks/get_ipabackup_dir.yml | 12 ++-- 2 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 roles/ipabackup/library/ipabackup_get_backup_dir.py diff --git a/roles/ipabackup/library/ipabackup_get_backup_dir.py b/roles/ipabackup/library/ipabackup_get_backup_dir.py new file mode 100644 index 0000000..b76d01d --- /dev/null +++ b/roles/ipabackup/library/ipabackup_get_backup_dir.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Authors: +# Thomas Woerner +# +# Copyright (C) 2021 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +ANSIBLE_METADATA = { + 'metadata_version': '1.0', + 'supported_by': 'community', + 'status': ['preview'], +} + +DOCUMENTATION = ''' +--- +module: ipabackup_get_backup_dir +short description: + Get IPA_BACKUP_DIR from ipaplatform +description: + Get IPA_BACKUP_DIR from ipaplatform +options: +author: + - Thomas Woerner +''' + +EXAMPLES = ''' +# Get IPA_BACKUP_DIR from ipaplatform +- name: ipabackup_get_backup_dir: + register result +''' + +RETURN = ''' +backup_dir: + description: IPA_BACKUP_DIR from ipaplatform + returned: always + type: str +''' + +from ansible.module_utils.basic import AnsibleModule +from ipaplatform.paths import paths + + +def main(): + module = AnsibleModule( + argument_spec=dict(), + supports_check_mode=True, + ) + + module.exit_json(changed=False, + backup_dir=paths.IPA_BACKUP_DIR) + + +if __name__ == '__main__': + main() diff --git a/roles/ipabackup/tasks/get_ipabackup_dir.yml b/roles/ipabackup/tasks/get_ipabackup_dir.yml index 45cb48a..a7cb29d 100644 --- a/roles/ipabackup/tasks/get_ipabackup_dir.yml +++ b/roles/ipabackup/tasks/get_ipabackup_dir.yml @@ -1,12 +1,8 @@ --- -- name: Get IPA_BACKUP_DIR dir from ipaplatform - command: "{{ ansible_python_interpreter | default('/usr/bin/python') }}" - args: - stdin: | - from ipaplatform.paths import paths - print(paths.IPA_BACKUP_DIR) - register: result_ipaplatform_backup_dir +- name: Get IPA_BACKUP_DIR from ipaplatform + ipabackup_get_backup_dir: + register: result_ipabackup_get_backup_dir - name: Set IPA backup dir set_fact: - ipabackup_dir: "{{ result_ipaplatform_backup_dir.stdout_lines | first }}" + ipabackup_dir: "{{ result_ipabackup_get_backup_dir.backup_dir }}" -- 2.31.1