2024-11-25 11:02:56 +01:00
"""
Silique ( https : / / www . silique . fr )
2026-02-11 21:31:55 +01:00
Copyright ( C ) 2024 - 2026
2024-11-25 11:02:56 +01:00
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 / > .
"""
2025-02-10 09:17:59 +01:00
from . i18n import _
2024-11-25 11:02:56 +01:00
def get_rougail_config (
* ,
2024-11-27 16:22:34 +01:00
backward_compatibility : bool = True , # pylint: disable=unused-argument
2024-11-25 11:02:56 +01:00
) - > dict :
2024-11-27 16:22:34 +01:00
""" get rougail config for ansible """
# redefine ansible family if already exists (for output)
# or create a new only only for user data
2025-02-10 09:17:59 +01:00
options = f """
2024-11-25 11:02:56 +01:00
ansible :
2026-02-11 21:31:55 +01:00
description : { _ ( " Load user data from Ansible compatible file " ) }
2026-06-11 21:50:08 +02:00
help : { _ ( " Ansible offers a tool (ansible-vault) for encrypting inventory files. With this user data you can open an encrypt inventory file. This is a perfect way to manage a smooth migration from Ansible inventory to Rougail. Or it could be a way to encrypt these secrets in a file with a secure format. " ) }
2024-11-25 11:02:56 +01:00
disabled :
jinja : |
2026-02-11 21:31:55 +01:00
{ { { { _ . step . user_data is propertyerror or ' ansible ' not in _ . step . user_data } } } }
return_type : boolean
description : { _ ( ' if ansible is not set in " step.user_data " ' ) }
2024-11-27 16:22:34 +01:00
2024-11-25 11:02:56 +01:00
filename :
2025-02-10 09:17:59 +01:00
description : { _ ( " Ansible filename inventory " ) }
2024-11-25 11:02:56 +01:00
type : unix_filename
multi : true
params :
allow_relative : True
test_existence : True
types :
- file
2024-11-27 16:22:34 +01:00
disabled :
jinja : |
2026-05-04 11:19:45 +02:00
{ { { { __ . step . user_data is propertyerror or ' ansible ' not in __ . step . user_data } } } }
2026-02-11 21:31:55 +01:00
return_type : boolean
description : { _ ( ' if ansible is not set in " step.user_data " ' ) }
2024-11-27 16:22:34 +01:00
2024-11-25 11:02:56 +01:00
secret :
2025-02-10 09:17:59 +01:00
description : { _ ( " Secret to decrypt file " ) }
2024-11-25 11:02:56 +01:00
type : secret
2024-11-27 16:22:34 +01:00
disabled :
jinja : |
2026-05-04 11:19:45 +02:00
{ { { { __ . step . user_data is propertyerror or ' ansible ' not in __ . step . user_data } } } }
2026-02-11 21:31:55 +01:00
return_type : boolean
description : { _ ( ' if ansible is not set in " step.user_data " ' ) }
2025-02-10 09:17:59 +01:00
file_with_secrets :
2026-02-11 21:31:55 +01:00
description : { _ ( " Ansible files that may contain secrets " ) }
2025-02-10 09:17:59 +01:00
default : all
choices :
- all
- first
- last
- none
2025-11-05 21:38:46 +01:00
disabled :
jinja : |
2026-05-04 11:19:45 +02:00
{ { { { __ . step . user_data is propertyerror or ' ansible ' not in __ . step . user_data } } } }
2026-02-11 21:31:55 +01:00
return_type : boolean
description : { _ ( ' if ansible is not set in " step.user_data " ' ) }
2025-01-02 21:55:23 +01:00
"""
2024-11-25 11:02:56 +01:00
return {
" name " : " ansible " ,
" process " : " user data " ,
" options " : options ,
" level " : 60 ,
}
2024-11-27 16:22:34 +01:00
__all__ = ( " get_rougail_config " , )