From 4f393bc8844bfd3cf5b204d15faef57b677efb60 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sun, 28 Sep 2025 15:57:45 +0200 Subject: [PATCH] feat: default value for a calculated variable with an unknown optional variable --- .../00_2default_calculated_variable.json | 94 +++++++++++++ tests/results/test_namespace/00_6ip.json | 69 ++++++++++ tests/results/test_namespace/00_6network.json | 69 ++++++++++ ...lt_calculation_multi_optional_default.json | 79 +++++++++++ .../01_9choice_variable_optional.json | 59 +++++++++ ...disabled_calculation_optional_default.json | 79 +++++++++++ .../40_2leadership_calculation_index_2.json | 124 ++++++++++++++++++ .../60_0family_dynamic_variable_optional.json | 84 ++++++++++++ .../00_2default_calculated_variable.json | 94 +++++++++++++ .../test_namespace_mandatory/00_6ip.json | 69 ++++++++++ .../test_namespace_mandatory/00_6network.json | 69 ++++++++++ ...lt_calculation_multi_optional_default.json | 84 ++++++++++++ .../01_9choice_variable_optional.json | 59 +++++++++ ...disabled_calculation_optional_default.json | 79 +++++++++++ .../40_2leadership_calculation_index_2.json | 124 ++++++++++++++++++ .../60_0family_dynamic_variable_optional.json | 84 ++++++++++++ .../00_2default_calculated_variable.json | 64 +++++++++ .../test_namespace_read_write/00_6ip.json | 69 ++++++++++ .../00_6network.json | 69 ++++++++++ ...lt_calculation_multi_optional_default.json | 79 +++++++++++ .../01_9choice_variable_optional.json | 59 +++++++++ ...disabled_calculation_optional_default.json | 69 ++++++++++ .../40_2leadership_calculation_index_2.json | 124 ++++++++++++++++++ .../60_0family_dynamic_variable_optional.json | 84 ++++++++++++ .../00_2default_calculated_variable.json | 94 +++++++++++++ .../00_6ip.json | 69 ++++++++++ .../00_6network.json | 69 ++++++++++ ...lt_calculation_multi_optional_default.json | 84 ++++++++++++ .../01_9choice_variable_optional.json | 59 +++++++++ ...disabled_calculation_optional_default.json | 59 +++++++++ .../40_2leadership_calculation_index_2.json | 124 ++++++++++++++++++ .../60_0family_dynamic_variable_optional.json | 84 ++++++++++++ .../00_2default_calculated_variable.json | 18 +++ .../00_6ip.json | 69 ++++++++++ .../00_6network.json | 69 ++++++++++ ...lt_calculation_multi_optional_default.json | 79 +++++++++++ .../01_9choice_variable_optional.json | 59 +++++++++ ...disabled_calculation_optional_default.json | 69 ++++++++++ .../24_7validators_variable_optional.json | 17 +++ .../40_2leadership_calculation_index_2.json | 124 ++++++++++++++++++ .../60_0family_dynamic_variable_optional.json | 84 ++++++++++++ 41 files changed, 3166 insertions(+) create mode 100644 tests/results/test_namespace/00_2default_calculated_variable.json create mode 100644 tests/results/test_namespace/00_6ip.json create mode 100644 tests/results/test_namespace/00_6network.json create mode 100644 tests/results/test_namespace/00_9default_calculation_multi_optional_default.json create mode 100644 tests/results/test_namespace/01_9choice_variable_optional.json create mode 100644 tests/results/test_namespace/04_5disabled_calculation_optional_default.json create mode 100644 tests/results/test_namespace/40_2leadership_calculation_index_2.json create mode 100644 tests/results/test_namespace/60_0family_dynamic_variable_optional.json create mode 100644 tests/results/test_namespace_mandatory/00_2default_calculated_variable.json create mode 100644 tests/results/test_namespace_mandatory/00_6ip.json create mode 100644 tests/results/test_namespace_mandatory/00_6network.json create mode 100644 tests/results/test_namespace_mandatory/00_9default_calculation_multi_optional_default.json create mode 100644 tests/results/test_namespace_mandatory/01_9choice_variable_optional.json create mode 100644 tests/results/test_namespace_mandatory/04_5disabled_calculation_optional_default.json create mode 100644 tests/results/test_namespace_mandatory/40_2leadership_calculation_index_2.json create mode 100644 tests/results/test_namespace_mandatory/60_0family_dynamic_variable_optional.json create mode 100644 tests/results/test_namespace_read_write/00_2default_calculated_variable.json create mode 100644 tests/results/test_namespace_read_write/00_6ip.json create mode 100644 tests/results/test_namespace_read_write/00_6network.json create mode 100644 tests/results/test_namespace_read_write/00_9default_calculation_multi_optional_default.json create mode 100644 tests/results/test_namespace_read_write/01_9choice_variable_optional.json create mode 100644 tests/results/test_namespace_read_write/04_5disabled_calculation_optional_default.json create mode 100644 tests/results/test_namespace_read_write/40_2leadership_calculation_index_2.json create mode 100644 tests/results/test_namespace_read_write/60_0family_dynamic_variable_optional.json create mode 100644 tests/results/test_namespace_read_write_mandatory/00_2default_calculated_variable.json create mode 100644 tests/results/test_namespace_read_write_mandatory/00_6ip.json create mode 100644 tests/results/test_namespace_read_write_mandatory/00_6network.json create mode 100644 tests/results/test_namespace_read_write_mandatory/00_9default_calculation_multi_optional_default.json create mode 100644 tests/results/test_namespace_read_write_mandatory/01_9choice_variable_optional.json create mode 100644 tests/results/test_namespace_read_write_mandatory/04_5disabled_calculation_optional_default.json create mode 100644 tests/results/test_namespace_read_write_mandatory/40_2leadership_calculation_index_2.json create mode 100644 tests/results/test_namespace_read_write_mandatory/60_0family_dynamic_variable_optional.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/00_2default_calculated_variable.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/00_6ip.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/00_6network.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/00_9default_calculation_multi_optional_default.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/01_9choice_variable_optional.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/04_5disabled_calculation_optional_default.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/24_7validators_variable_optional.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/40_2leadership_calculation_index_2.json create mode 100644 tests/results/test_namespace_read_write_mandatory_errors/60_0family_dynamic_variable_optional.json diff --git a/tests/results/test_namespace/00_2default_calculated_variable.json b/tests/results/test_namespace/00_2default_calculated_variable.json new file mode 100644 index 0000000..0816b46 --- /dev/null +++ b/tests/results/test_namespace/00_2default_calculated_variable.json @@ -0,0 +1,94 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace/00_6ip.json b/tests/results/test_namespace/00_6ip.json new file mode 100644 index 0000000..018b0af --- /dev/null +++ b/tests/results/test_namespace/00_6ip.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace/00_6network.json b/tests/results/test_namespace/00_6network.json new file mode 100644 index 0000000..5a4910b --- /dev/null +++ b/tests/results/test_namespace/00_6network.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace/00_9default_calculation_multi_optional_default.json b/tests/results/test_namespace/00_9default_calculation_multi_optional_default.json new file mode 100644 index 0000000..0389d38 --- /dev/null +++ b/tests/results/test_namespace/00_9default_calculation_multi_optional_default.json @@ -0,0 +1,79 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace/01_9choice_variable_optional.json b/tests/results/test_namespace/01_9choice_variable_optional.json new file mode 100644 index 0000000..b1eca08 --- /dev/null +++ b/tests/results/test_namespace/01_9choice_variable_optional.json @@ -0,0 +1,59 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "variable": "c" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "variable": "c" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "variable": "c" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "variable": "c" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "variable": "c" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace/04_5disabled_calculation_optional_default.json b/tests/results/test_namespace/04_5disabled_calculation_optional_default.json new file mode 100644 index 0000000..ba3e1e7 --- /dev/null +++ b/tests/results/test_namespace/04_5disabled_calculation_optional_default.json @@ -0,0 +1,79 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "condition": false, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "condition": false, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "condition": false, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "condition": false, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "condition": false, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace/40_2leadership_calculation_index_2.json b/tests/results/test_namespace/40_2leadership_calculation_index_2.json new file mode 100644 index 0000000..0deac98 --- /dev/null +++ b/tests/results/test_namespace/40_2leadership_calculation_index_2.json @@ -0,0 +1,124 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace/60_0family_dynamic_variable_optional.json b/tests/results/test_namespace/60_0family_dynamic_variable_optional.json new file mode 100644 index 0000000..0bea1d0 --- /dev/null +++ b/tests/results/test_namespace/60_0family_dynamic_variable_optional.json @@ -0,0 +1,84 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_mandatory/00_2default_calculated_variable.json b/tests/results/test_namespace_mandatory/00_2default_calculated_variable.json new file mode 100644 index 0000000..0816b46 --- /dev/null +++ b/tests/results/test_namespace_mandatory/00_2default_calculated_variable.json @@ -0,0 +1,94 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_mandatory/00_6ip.json b/tests/results/test_namespace_mandatory/00_6ip.json new file mode 100644 index 0000000..dabbad0 --- /dev/null +++ b/tests/results/test_namespace_mandatory/00_6ip.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_mandatory/00_6network.json b/tests/results/test_namespace_mandatory/00_6network.json new file mode 100644 index 0000000..be89ebf --- /dev/null +++ b/tests/results/test_namespace_mandatory/00_6network.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_mandatory/00_9default_calculation_multi_optional_default.json b/tests/results/test_namespace_mandatory/00_9default_calculation_multi_optional_default.json new file mode 100644 index 0000000..0f8d010 --- /dev/null +++ b/tests/results/test_namespace_mandatory/00_9default_calculation_multi_optional_default.json @@ -0,0 +1,84 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_mandatory/01_9choice_variable_optional.json b/tests/results/test_namespace_mandatory/01_9choice_variable_optional.json new file mode 100644 index 0000000..59b3c87 --- /dev/null +++ b/tests/results/test_namespace_mandatory/01_9choice_variable_optional.json @@ -0,0 +1,59 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "variable": "a" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "variable": "a" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "variable": "a" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "variable": "a" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "variable": "a" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_mandatory/04_5disabled_calculation_optional_default.json b/tests/results/test_namespace_mandatory/04_5disabled_calculation_optional_default.json new file mode 100644 index 0000000..11e7f01 --- /dev/null +++ b/tests/results/test_namespace_mandatory/04_5disabled_calculation_optional_default.json @@ -0,0 +1,79 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "condition": true, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "condition": true, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "condition": true, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "condition": true, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "condition": true, + "var1": null, + "var2": null, + "var3": null, + "var4": null + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_mandatory/40_2leadership_calculation_index_2.json b/tests/results/test_namespace_mandatory/40_2leadership_calculation_index_2.json new file mode 100644 index 0000000..677d6b7 --- /dev/null +++ b/tests/results/test_namespace_mandatory/40_2leadership_calculation_index_2.json @@ -0,0 +1,124 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_mandatory/60_0family_dynamic_variable_optional.json b/tests/results/test_namespace_mandatory/60_0family_dynamic_variable_optional.json new file mode 100644 index 0000000..50f104b --- /dev/null +++ b/tests/results/test_namespace_mandatory/60_0family_dynamic_variable_optional.json @@ -0,0 +1,84 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write/00_2default_calculated_variable.json b/tests/results/test_namespace_read_write/00_2default_calculated_variable.json new file mode 100644 index 0000000..7514d1c --- /dev/null +++ b/tests/results/test_namespace_read_write/00_2default_calculated_variable.json @@ -0,0 +1,64 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": [], + "var2": [] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": [], + "var2": [] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": [], + "var2": [] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": [], + "var2": [] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": [], + "var2": [] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write/00_6ip.json b/tests/results/test_namespace_read_write/00_6ip.json new file mode 100644 index 0000000..018b0af --- /dev/null +++ b/tests/results/test_namespace_read_write/00_6ip.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write/00_6network.json b/tests/results/test_namespace_read_write/00_6network.json new file mode 100644 index 0000000..5a4910b --- /dev/null +++ b/tests/results/test_namespace_read_write/00_6network.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write/00_9default_calculation_multi_optional_default.json b/tests/results/test_namespace_read_write/00_9default_calculation_multi_optional_default.json new file mode 100644 index 0000000..0389d38 --- /dev/null +++ b/tests/results/test_namespace_read_write/00_9default_calculation_multi_optional_default.json @@ -0,0 +1,79 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write/01_9choice_variable_optional.json b/tests/results/test_namespace_read_write/01_9choice_variable_optional.json new file mode 100644 index 0000000..b1eca08 --- /dev/null +++ b/tests/results/test_namespace_read_write/01_9choice_variable_optional.json @@ -0,0 +1,59 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "variable": "c" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "variable": "c" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "variable": "c" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "variable": "c" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "variable": "c" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write/04_5disabled_calculation_optional_default.json b/tests/results/test_namespace_read_write/04_5disabled_calculation_optional_default.json new file mode 100644 index 0000000..08df0bc --- /dev/null +++ b/tests/results/test_namespace_read_write/04_5disabled_calculation_optional_default.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write/40_2leadership_calculation_index_2.json b/tests/results/test_namespace_read_write/40_2leadership_calculation_index_2.json new file mode 100644 index 0000000..0deac98 --- /dev/null +++ b/tests/results/test_namespace_read_write/40_2leadership_calculation_index_2.json @@ -0,0 +1,124 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write/60_0family_dynamic_variable_optional.json b/tests/results/test_namespace_read_write/60_0family_dynamic_variable_optional.json new file mode 100644 index 0000000..0bea1d0 --- /dev/null +++ b/tests/results/test_namespace_read_write/60_0family_dynamic_variable_optional.json @@ -0,0 +1,84 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory/00_2default_calculated_variable.json b/tests/results/test_namespace_read_write_mandatory/00_2default_calculated_variable.json new file mode 100644 index 0000000..0816b46 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory/00_2default_calculated_variable.json @@ -0,0 +1,94 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": [ + "domain1.lan", + "domain2.lan" + ], + "var2": [ + "domain1.lan", + "domain2.lan" + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory/00_6ip.json b/tests/results/test_namespace_read_write_mandatory/00_6ip.json new file mode 100644 index 0000000..dabbad0 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory/00_6ip.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "192.168.1.6", + "var2": "192.168.1.6/24", + "var3": "192.168.1.6/24" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory/00_6network.json b/tests/results/test_namespace_read_write_mandatory/00_6network.json new file mode 100644 index 0000000..be89ebf --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory/00_6network.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "192.168.1.0", + "var2": "192.168.1.6/32", + "var3": "192.168.1.6/32" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory/00_9default_calculation_multi_optional_default.json b/tests/results/test_namespace_read_write_mandatory/00_9default_calculation_multi_optional_default.json new file mode 100644 index 0000000..0f8d010 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory/00_9default_calculation_multi_optional_default.json @@ -0,0 +1,84 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "my_variable": "string1", + "my_calculated_variable": [ + "string1", + "string2", + "string3" + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory/01_9choice_variable_optional.json b/tests/results/test_namespace_read_write_mandatory/01_9choice_variable_optional.json new file mode 100644 index 0000000..59b3c87 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory/01_9choice_variable_optional.json @@ -0,0 +1,59 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "variable": "a" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "variable": "a" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "variable": "a" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "variable": "a" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "variable": "a" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory/04_5disabled_calculation_optional_default.json b/tests/results/test_namespace_read_write_mandatory/04_5disabled_calculation_optional_default.json new file mode 100644 index 0000000..1cb9038 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory/04_5disabled_calculation_optional_default.json @@ -0,0 +1,59 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "condition": true + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "condition": true + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "condition": true + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "condition": true + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "condition": true + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory/40_2leadership_calculation_index_2.json b/tests/results/test_namespace_read_write_mandatory/40_2leadership_calculation_index_2.json new file mode 100644 index 0000000..677d6b7 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory/40_2leadership_calculation_index_2.json @@ -0,0 +1,124 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "leader": [ + { + "leader": "string1", + "follower1": 1 + }, + { + "leader": "string2", + "follower1": 2 + }, + { + "leader": "string3", + "follower1": 3 + } + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory/60_0family_dynamic_variable_optional.json b/tests/results/test_namespace_read_write_mandatory/60_0family_dynamic_variable_optional.json new file mode 100644 index 0000000..50f104b --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory/60_0family_dynamic_variable_optional.json @@ -0,0 +1,84 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "dyna": { + "var": "string1" + }, + "dynb": { + "var": "string1" + } + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/00_2default_calculated_variable.json b/tests/results/test_namespace_read_write_mandatory_errors/00_2default_calculated_variable.json new file mode 100644 index 0000000..8e83ff8 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/00_2default_calculated_variable.json @@ -0,0 +1,18 @@ +{ + "_meta": { + "hostvars": { + "localhost": { + "_errors": [ + "The following variables are mandatory but have no value:", + " - rougail.var1 (a first variable)", + " - rougail.var2 (a second variable)" + ] + } + } + }, + "ungrouped": { + "hosts": [ + "localhost" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/00_6ip.json b/tests/results/test_namespace_read_write_mandatory_errors/00_6ip.json new file mode 100644 index 0000000..018b0af --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/00_6ip.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "1.1.1.1", + "var2": "1.1.1.1/24", + "var3": "1.1.1.1/24" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/00_6network.json b/tests/results/test_namespace_read_write_mandatory_errors/00_6network.json new file mode 100644 index 0000000..5a4910b --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/00_6network.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "var1": "1.1.1.0", + "var2": "1.1.1.0/24", + "var3": "1.1.1.0/24" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/00_9default_calculation_multi_optional_default.json b/tests/results/test_namespace_read_write_mandatory_errors/00_9default_calculation_multi_optional_default.json new file mode 100644 index 0000000..0389d38 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/00_9default_calculation_multi_optional_default.json @@ -0,0 +1,79 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "my_variable": "val1", + "my_calculated_variable": [ + "val1", + "value" + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/01_9choice_variable_optional.json b/tests/results/test_namespace_read_write_mandatory_errors/01_9choice_variable_optional.json new file mode 100644 index 0000000..b1eca08 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/01_9choice_variable_optional.json @@ -0,0 +1,59 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "variable": "c" + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "variable": "c" + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "variable": "c" + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "variable": "c" + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "variable": "c" + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/04_5disabled_calculation_optional_default.json b/tests/results/test_namespace_read_write_mandatory_errors/04_5disabled_calculation_optional_default.json new file mode 100644 index 0000000..08df0bc --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/04_5disabled_calculation_optional_default.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "condition": false, + "var3": null, + "var4": null + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/24_7validators_variable_optional.json b/tests/results/test_namespace_read_write_mandatory_errors/24_7validators_variable_optional.json new file mode 100644 index 0000000..f698ea7 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/24_7validators_variable_optional.json @@ -0,0 +1,17 @@ +{ + "_meta": { + "hostvars": { + "localhost": { + "_errors": [ + "The following variables are mandatory but have no value:", + " - rougail.general.int (a first integer)" + ] + } + } + }, + "ungrouped": { + "hosts": [ + "localhost" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/40_2leadership_calculation_index_2.json b/tests/results/test_namespace_read_write_mandatory_errors/40_2leadership_calculation_index_2.json new file mode 100644 index 0000000..0deac98 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/40_2leadership_calculation_index_2.json @@ -0,0 +1,124 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "leader": [ + { + "leader": "a", + "follower1": 0 + }, + { + "leader": "b", + "follower1": 1 + }, + { + "leader": "c", + "follower1": 2 + } + ] + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file diff --git a/tests/results/test_namespace_read_write_mandatory_errors/60_0family_dynamic_variable_optional.json b/tests/results/test_namespace_read_write_mandatory_errors/60_0family_dynamic_variable_optional.json new file mode 100644 index 0000000..0bea1d0 --- /dev/null +++ b/tests/results/test_namespace_read_write_mandatory_errors/60_0family_dynamic_variable_optional.json @@ -0,0 +1,84 @@ +{ + "_meta": { + "hostvars": { + "GROUP1_01": { + "ansible_host": "group1.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "GROUP2_01": { + "ansible_host": "group2.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "GROUP2_02": { + "ansible_host": "group3.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "group4.net": { + "ansible_host": "group4.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + }, + "group5.net": { + "ansible_host": "group5.net", + "rougail": { + "dyna": { + "var": "val" + }, + "dynb": { + "var": "val" + } + } + } + } + }, + "group1": { + "hosts": [ + "GROUP1_01" + ] + }, + "group2": { + "hosts": [ + "GROUP2_01", + "GROUP2_02" + ] + }, + "group3": { + "hosts": [ + "group4.net", + "group5.net" + ] + }, + "groups": { + "children": [ + "group1", + "group2" + ] + } +} \ No newline at end of file