Compare commits

...

2 commits

51 changed files with 2870 additions and 5 deletions

View file

@ -1,3 +1,9 @@
## 0.2.0a2 (2025-02-10)
### Feat
- output return status too
## 0.2.0a1 (2025-01-02) ## 0.2.0a1 (2025-01-02)
### Fix ### Fix

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project] [project]
name = "rougail.output_ansible" name = "rougail.output_ansible"
version = "0.2.0a1" version = "0.2.0a2"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}] authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md" readme = "README.md"
description = "Rougail output ansible" description = "Rougail output ansible"

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2022-2024 Copyright (C) 2022-2025
This program is free software: you can redistribute it and/or modify it 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 under the terms of the GNU Lesser General Public License as published by the
@ -48,6 +48,8 @@ class RougailOutputAnsible(RougailOutputJson):
def exporter(self) -> None: def exporter(self) -> None:
super().exporter() super().exporter()
self.json_to_ansible() self.json_to_ansible()
# never return code 1, error are in the output data
return True
def manage_errors(self) -> bool: def manage_errors(self) -> bool:
if not super().manage_errors(): if not super().manage_errors():

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024 Copyright (C) 2024-2025
This program is free software: you can redistribute it and/or modify it 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 under the terms of the GNU Lesser General Public License as published by the

View file

@ -1,6 +1,6 @@
"""Internationalisation utilities """Internationalisation utilities
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024 Copyright (C) 2024-2025
This program is free software: you can redistribute it and/or modify it 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 under the terms of the GNU Lesser General Public License as published by the

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"secret1": "string1",
"secret2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"secret1": "string1",
"secret2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,60 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"condition": "string1",
"variable1": [
"string1",
"string2",
"string3"
],
"variable2": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"condition": "string1",
"variable1": [
"string1",
"string2",
"string3"
],
"variable2": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"condition": true
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"condition": true
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,74 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,74 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"secret1": "string1",
"secret2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"secret1": "string1",
"secret2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,60 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"condition": "string1",
"variable1": [
"string1",
"string2",
"string3"
],
"variable2": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"condition": "string1",
"variable1": [
"string1",
"string2",
"string3"
],
"variable2": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"condition": true
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"condition": true
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,74 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,74 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"secret1": null,
"secret2": "value"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"secret1": null,
"secret2": "value"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,44 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"condition": "no",
"variable1": [],
"variable2": []
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"condition": "no",
"variable1": [],
"variable2": []
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"condition": false,
"variable": []
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"condition": false,
"variable": []
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,68 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,68 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,70 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11",
"val11"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11",
"val11"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,64 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": "value1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": "value1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,64 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": "value2"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": "value2"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,70 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"value1",
"value2"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"value1",
"value2"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,42 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"secret1": "string1",
"secret2": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"secret1": "string1",
"secret2": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,60 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"condition": "string1",
"variable1": [
"string1",
"string2",
"string3"
],
"variable2": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"condition": "string1",
"variable1": [
"string1",
"string2",
"string3"
],
"variable2": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,40 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"condition": true
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"condition": true
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,74 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,74 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": "string1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,82 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "string1",
"follower1": "string1",
"follower2": "string1"
},
{
"leader": "string2",
"follower1": "string2",
"follower2": "string2"
},
{
"leader": "string3",
"follower1": "string3",
"follower2": "string3"
}
],
"calculate": [
"string1",
"string2",
"string3"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,22 @@
{
"_meta": {
"hostvars": {
"localhost": {
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.secret1 (the first variable)"
]
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"localhost"
]
}
}

View file

@ -0,0 +1,23 @@
{
"_meta": {
"hostvars": {
"localhost": {
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.variable1 (a first variable)",
" - rougail.variable2 (a second variable)"
]
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"localhost"
]
}
}

View file

@ -0,0 +1,22 @@
{
"_meta": {
"hostvars": {
"localhost": {
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.variable (a variable)"
]
}
}
},
"all": {
"children": [
"ungrouped"
]
},
"ungrouped": {
"hosts": [
"localhost"
]
}
}

View file

@ -0,0 +1,68 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,68 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,70 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11",
"val11"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"val11",
"val11"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,64 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": "value1"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": "value1"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,64 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": "value2"
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": "value2"
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -0,0 +1,70 @@
{
"_meta": {
"hostvars": {
"GROUP1_01": {
"ansible_host": "group1.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"value1",
"value2"
]
}
},
"GROUP2_01": {
"ansible_host": "group2.net",
"rougail": {
"leader": [
{
"leader": "value1",
"follower1": "val11",
"follower2": "val21"
},
{
"leader": "value2",
"follower1": "val11",
"follower2": "val21"
}
],
"calculate": [
"value1",
"value2"
]
}
}
}
},
"all": {
"children": [
"ungrouped",
"groups"
]
},
"group1": {
"hosts": [
"GROUP1_01"
]
},
"group2": {
"hosts": [
"GROUP2_01"
]
},
"groups": {
"children": [
"group1",
"group2"
]
}
}

View file

@ -59,7 +59,7 @@ def _test_dictionaries(test_dir, namespace, ext, *, read_write=True, mandatory=F
if do_calc and (mandatory or not read_write): if do_calc and (mandatory or not read_write):
get_values_for_config(config) get_values_for_config(config)
################################## ##################################
generated_output = RougailOutput(config, rougailconfig=rougailconfig).run() generated_output = RougailOutput(config, rougailconfig=rougailconfig).run()[1]
output_file = Path(__file__).parent / 'results' / dir_name / (test_dir.name + "." + ext) output_file = Path(__file__).parent / 'results' / dir_name / (test_dir.name + "." + ext)
if not output_file.is_file(): if not output_file.is_file():
if not output_file.parent.is_dir(): if not output_file.parent.is_dir():