Compare commits

..

No commits in common. "d3273ca6a736d5ce87cdeb64935b3e098c667097" and "73682273fe80457e3a4a716b90d72a20a6fd5c89" have entirely different histories.

1603 changed files with 15417 additions and 291 deletions

View file

@ -1,9 +1,3 @@
## 0.2.0a19 (2026-05-04)
### Feat
- remove mandatory verification
## 0.2.0a18 (2026-01-21)
### Fix

View file

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

View file

@ -84,10 +84,14 @@ class RougailOutputJson:
return ret
def exporter(self) -> None:
self.is_mandatory = self.rougailconfig["json.mandatory"]
self.dico = {}
if self.is_mandatory and self.config.isoptiondescription():
ori_properties = self.true_config.property.exportation()
self.true_config.property.read_write()
self.mandatory()
self.true_config.property.importation(ori_properties)
self.manage_warnings()
if not self.manage_errors():
return False
if not self.config.isoptiondescription():
self.dico = self.config.value.get()
return True
@ -98,6 +102,38 @@ class RougailOutputJson:
)
return self.manage_errors()
def mandatory(self):
title = False
options_with_error = []
try:
mandatories = self.config.value.mandatory()
except (ConfigError, PropertiesOptionError) as err:
self.errors.append(_("Error in config: {0}").format(err))
return
except ValueError as err:
self.errors.append(str(err))
return
for option in mandatories:
try:
option.value.get()
if not title:
self.errors.append(
_("The following variables are mandatory but have no value:")
)
title = True
self.errors.append(f" - {option.description()}")
except PropertiesOptionError:
options_with_error.append(option)
if not title:
for idx, option in enumerate(options_with_error):
if not idx:
self.errors.append(
_(
"The following variables are inaccessible but are empty and mandatory :"
)
)
self.errors.append(f" - {option.description()}")
def manage_warnings(self) -> None:
if not self.warnings:
return
@ -120,8 +156,8 @@ class RougailOutputJson:
errors.append(_('{0}: {1}').format(opt.path, msg))
else:
errors.append(e)
self.dico["_errors"] = errors
#self.manage_warnings()
self.dico = {"_errors": errors}
self.manage_warnings()
return False
def parse_family(

View file

@ -1 +1 @@
__version__ = "0.2.0a19"
__version__ = "0.2.0a18"

View file

@ -24,9 +24,31 @@ def get_rougail_config(
*,
backward_compatibility=True,
) -> dict:
options = f"""
json:
description: {_('Export configuration to JSON format')}
help: |-
{_('Exporting the configuration in JSON format makes it easier to process the configuration in an external tool, for example.')}
disabled:
jinja: |-
{{{{ step.output is propertyerror or step.output != 'json' }}}}
return_type: boolean
description: {_('if json is not set in "step.output"')}
mandatory:
description: {_('test mandatories variables before display in JSON')}
help: |-
{_("The configuration must be valid before exporting the data to JSON format. It's better to validate the values at the beginning of the process.")}
type: boolean
default:
jinja: |-
{{{{ cli.read_write is not defined or not cli.read_write }}}}
description: {_('true if "cli.read_write" is false')}
"""
return {
"name": "json",
"process": "output",
"options": options,
"level": 50,
}

View file

@ -1,3 +0,0 @@
{
"var1": true
}

View file

@ -1,26 +0,0 @@
{
"var1": [
"val1",
"val2"
],
"var2": "val1",
"dynval1": {
"var": [
"string1",
"string2",
"string3"
]
},
"dynval2": {
"var": [
"string1",
"string2",
"string3"
]
},
"var3": [
"string1",
"string2",
"string3"
]
}

View file

@ -1,42 +0,0 @@
{
"var": [
"val1",
"val2"
],
"dynval1": {
"dynval1": {
"var1": "string1",
"var2": [
"string1",
"string2",
"string3"
]
},
"dynval2": {
"var1": "string1",
"var2": [
"string1",
"string2",
"string3"
]
}
},
"dynval2": {
"dynval1": {
"var1": "string1",
"var2": [
"string1",
"string2",
"string3"
]
},
"dynval2": {
"var1": "string1",
"var2": [
"string1",
"string2",
"string3"
]
}
}
}

View file

@ -0,0 +1 @@
{}

View file

@ -0,0 +1,3 @@
{
"version": "string1"
}

View file

@ -0,0 +1,3 @@
{
"empty": "string1"
}

View file

@ -0,0 +1,8 @@
{
"var1": "string1",
"var2": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,12 @@
{
"var1": [
"string1",
"string2",
"string3"
],
"var2": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,9 @@
{
"leadership": [
{
"var1": "a_value",
"var2": "a_value"
}
],
"var2": "string1"
}

View file

@ -0,0 +1,10 @@
{
"var1": [
"domain1.lan",
"domain2.lan"
],
"var2": [
"domain1.lan",
"domain2.lan"
]
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,5 @@
{
"var1": "string1",
"var2": "string1",
"var3": "string1"
}

View file

@ -0,0 +1,10 @@
{
"var1": [
"domain1.lan",
"domain2.lan"
],
"var2": [
"domain1.lan",
"domain2.lan"
]
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,3 @@
{
"without_type": "string1"
}

View file

@ -0,0 +1,8 @@
{
"var1": true,
"var2": true,
"var3": true,
"var4": true,
"var5": true,
"var6": true
}

View file

@ -0,0 +1,3 @@
{
"variable": true
}

View file

@ -0,0 +1,8 @@
{
"var1": "a",
"var2": "a",
"var3": "a",
"var4": null,
"var5": "a",
"var6": 1
}

View file

@ -0,0 +1,3 @@
{
"var": 0
}

View file

@ -0,0 +1,4 @@
{
"var1": "a",
"var2": "a"
}

View file

@ -0,0 +1,8 @@
{
"var1": [
"string1",
"string2",
"string3"
],
"var2": "string1"
}

View file

@ -0,0 +1,9 @@
{
"var1": [
"string1",
"string2",
"string3"
],
"var2": "string1",
"var3": "string1"
}

View file

@ -0,0 +1,11 @@
{
"var1": [
"string1",
"string2",
"string3"
],
"var2": "string1",
"family": {
"var3": "string1"
}
}

View file

@ -0,0 +1,4 @@
{
"custom1": "string1",
"custom2": "string1"
}

View file

@ -0,0 +1,3 @@
{
"variable": "domain1.lan"
}

View file

@ -0,0 +1,3 @@
{
"variable": "domain1.lan"
}

View file

@ -0,0 +1,8 @@
{
"var1": 1.1,
"var2": 1.1,
"var3": 1.1,
"var4": 1.1,
"var5": 1.1,
"var6": 1.1
}

View file

@ -0,0 +1,8 @@
{
"var1": 1,
"var2": 1,
"var3": 1,
"var4": 1,
"var5": 1,
"var6": 1
}

View file

@ -0,0 +1,5 @@
{
"var1": "192.168.1.6",
"var2": "192.168.1.6/24",
"var3": "192.168.1.6/24"
}

View file

@ -0,0 +1,5 @@
{
"var1": "192.168.1.0",
"var2": "192.168.1.6/32",
"var3": "192.168.1.6/32"
}

View file

@ -0,0 +1,8 @@
{
"var1": 1,
"var2": 1,
"var3": 1,
"var4": 1,
"var5": 1,
"var6": 1
}

View file

@ -0,0 +1,5 @@
{
"variable1": "80",
"variable2": "80",
"variable3": "80"
}

View file

@ -0,0 +1,3 @@
{
"var": "#b1b1b1"
}

View file

@ -0,0 +1,4 @@
{
"var1": "#b1b1b1",
"var2": "#b2b1b1"
}

View file

@ -0,0 +1,4 @@
{
"secret1": "onE7vaLues_len1",
"secret2": "onE7vaLues_len1"
}

View file

@ -0,0 +1,5 @@
{
"secret1": "onE7vaLues_len1",
"secret2": "onE7vaLues",
"secret3": "onE7vaLues"
}

View file

@ -0,0 +1,10 @@
{
"var1": "string1",
"var2": "string1",
"var3": "string1",
"var4": "string1",
"var5": "string1",
"var6": "string1",
"var7": "string1",
"var8": "string1"
}

View file

@ -0,0 +1,3 @@
{
"var": "quote'"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,3 @@
{
"variable": "string1"
}

View file

@ -0,0 +1,3 @@
{
"variable": "string1"
}

View file

@ -0,0 +1,3 @@
{
"variable": "string1"
}

View file

@ -0,0 +1,3 @@
{
"variable": "string1"
}

View file

@ -0,0 +1,3 @@
{
"variable": "string1"
}

View file

@ -0,0 +1,11 @@
{
"var1": "test",
"var2": "test",
"var3": "test1",
"var4": null,
"var5": false,
"var6": [
"test1",
"test2"
]
}

View file

@ -0,0 +1,10 @@
{
"variable1": [
"val1",
"val2"
],
"variable2": [
"val1",
"val2"
]
}

View file

@ -0,0 +1,5 @@
{
"source_variable_1": "string1",
"source_variable_2": "string1",
"my_variable": "string1"
}

View file

@ -0,0 +1,3 @@
{
"variable": "string1"
}

View file

@ -0,0 +1,3 @@
{
"var": "string1"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,8 @@
{
"my_variable": "string1",
"my_calculated_variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,8 @@
{
"my_variable": "string1",
"my_calculated_variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,8 @@
{
"my_variable": "string1",
"my_calculated_variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,7 @@
{
"my_calculated_variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,12 @@
{
"my_variable": [
"string1",
"string2",
"string3"
],
"my_calculated_variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,3 @@
{
"var": 0
}

View file

@ -0,0 +1,3 @@
{
"var": 0
}

View file

@ -0,0 +1,26 @@
{
"var1": [
true
],
"var2": [
true
],
"var3": [
true
],
"var4": [
true
],
"var5": [
true
],
"var6": [
true
],
"var7": [
true
],
"var8": [
true
]
}

View file

@ -0,0 +1,12 @@
{
"custom1": [
"string1",
"string2",
"string3"
],
"custom2": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,42 @@
{
"var1": [
1.1,
2.2,
3.3
],
"var2": [
1.1,
2.2,
3.3
],
"var3": [
1.1,
2.2,
3.3
],
"var4": [
1.1,
2.2,
3.3
],
"var5": [
1.1,
2.2,
3.3
],
"var6": [
1.1,
2.2,
3.3
],
"var7": [
1.1,
2.2,
3.3
],
"var8": [
1.1,
2.2,
3.3
]
}

View file

@ -0,0 +1,42 @@
{
"var1": [
1,
2,
3
],
"var2": [
1,
2,
3
],
"var3": [
1,
2,
3
],
"var4": [
1,
2,
3
],
"var5": [
1,
2,
3
],
"var6": [
1,
2,
3
],
"var7": [
1,
2,
3
],
"var8": [
1,
2,
3
]
}

View file

@ -0,0 +1,7 @@
{
"var": [
1,
2,
3
]
}

View file

@ -0,0 +1,7 @@
{
"var1": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,42 @@
{
"var1": [
"string1",
"string2",
"string3"
],
"var2": [
"string1",
"string2",
"string3"
],
"var3": [
"string1",
"string2",
"string3"
],
"var4": [
"string1",
"string2",
"string3"
],
"var5": [
"string1",
"string2",
"string3"
],
"var6": [
"string1",
"string2",
"string3"
],
"var7": [
"string1",
"string2",
"string3"
],
"var8": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,12 @@
{
"var1": [
"string1",
"string2",
"string3"
],
"var2": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,7 @@
{
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,7 @@
{
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,7 @@
{
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,7 @@
{
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -0,0 +1,8 @@
{
"variable1": [
"string1",
"string2",
"string3"
],
"variable2": "string1"
}

View file

@ -0,0 +1,3 @@
{
"variable": "a"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,3 @@
{
"int": 1
}

View file

@ -0,0 +1,3 @@
{
"int": 1
}

View file

@ -0,0 +1,3 @@
{
"variable": "no"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "no"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "yes"
}

View file

@ -0,0 +1,3 @@
{
"var": "yes"
}

View file

@ -0,0 +1,5 @@
{
"var1": "string1",
"var2": "string1",
"var3": "string1"
}

View file

@ -0,0 +1,5 @@
{
"var1": "string1",
"var2": "string1",
"var3": "string1"
}

View file

@ -0,0 +1,4 @@
{
"var1": "value",
"var3": "string1"
}

View file

@ -0,0 +1,5 @@
{
"var1": "value",
"var2": "string1",
"var3": "string1"
}

View file

@ -0,0 +1,5 @@
{
"var1": "string1",
"var2": "string1",
"var3": "string1"
}

View file

@ -0,0 +1,4 @@
{
"var1": "string1",
"var2": "string1"
}

View file

@ -0,0 +1,4 @@
{
"condition": "string1",
"variable1": "string1"
}

View file

@ -0,0 +1,5 @@
{
"condition": "string1",
"var1": null,
"var2": "string1"
}

View file

@ -0,0 +1,7 @@
{
"condition": true,
"var1": "string1",
"var2": null,
"var3": null,
"var4": null
}

Some files were not shown because too many files have changed in this diff Show more