rougail-output-ansible/src/rougail/output_ansible/config.py
2025-12-23 21:32:53 +01:00

87 lines
2.3 KiB
Python

"""
Silique (https://www.silique.fr)
Copyright (C) 2024-2025
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser 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 Lesser General Public License for more
details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
from .i18n import _
from pathlib import Path
def get_rougail_config(
*,
backward_compatibility=True,
) -> dict:
options = [
f"""
list:
description: {_('parameter added only to be compatible with Ansible')}
default: false
disabled:
jinja: |-
{{{{ step.output is propertyerror or step.output != 'ansible' }}}}
return_type: boolean
description: {_('if ansible is not set in "step.output"')}
json:
redefine: true
disabled:
jinja: |-
{{{{ step.output is propertyerror or (step.output != 'json' and step.output != 'ansible') }}}}
description: {_('if ansible or json are not set in "step.output"')}
""",
f"""
ansible:
exists: true
redefine: true
description: {_('Load Ansible encrypt inventory or generate Ansible inventory')}
disabled:
jinja: |-
{{{{ step.output is propertyerror or (step.output != 'ansible' and (step.user_data is propertyerror or 'ansible' not in step.user_data)) }}}}
return_type: boolean
description: {_('if ansible is not in "step.output" and not in "step.user_data"')}
""",
f"""
ansible:
type: family
description: {_('Generate Ansible inventory')}
exists: false
disabled:
variable: step.output
when_not: ansible
propertyerror: false
""",
f"""
ansible:
host_namespace: hosts # {_('Namespace with host values')}
no_namespace_in_vars: false # {_('Remove namespace name in host vars')}
export_warnings: true # {_('Displays warnings inside Ansible exportation datas')}
""",
]
return {
"name": "ansible",
"process": "output",
"options": options,
"level": 60,
}
__all__ = ("get_rougail_config",)