add certificates support

This commit is contained in:
egarette@silique.fr 2023-02-27 13:54:11 +01:00
parent 6af98ec1e4
commit cf4fe51555
75 changed files with 592 additions and 633 deletions

View file

@ -77,6 +77,10 @@ class Annotator(Walk):
variable.force_default_on_freeze = True variable.force_default_on_freeze = True
if not hasattr(variable, 'properties'): if not hasattr(variable, 'properties'):
variable.properties = [] variable.properties = []
if 'mandatory' in vars(variable) and not variable.mandatory and variable.multi:
# a multi could not have "None" has value
# to permit it, just add mandatory="False"
variable.properties.append('notempty')
for prop in PROPERTIES: for prop in PROPERTIES:
if hasattr(variable, prop): if hasattr(variable, prop):
if getattr(variable, prop) is True: if getattr(variable, prop) is True:

View file

@ -42,7 +42,7 @@ except ModuleNotFoundError:
# that shall not be present in the exported (flatened) XML # that shall not be present in the exported (flatened) XML
ERASED_ATTRIBUTES = ('redefine', 'namespace', 'xmlfiles', 'disabled', 'name', 'manage') ERASED_ATTRIBUTES = ('redefine', 'namespace', 'xmlfiles', 'disabled', 'name', 'manage')
ERASED_ATTRIBUTES2 = ('redefine', 'namespace', 'xmlfiles', 'disabled') ERASED_ATTRIBUTES2 = ('redefine', 'namespace', 'xmlfiles', 'disabled')
ALLOW_ATTRIBUT_NOT_MANAGE = ['file', 'engine', 'target'] ALLOW_ATTRIBUT_NOT_MANAGE = ['file', 'engine', 'target', 'certificate']
FORCE_INFORMATIONS = ['mode'] FORCE_INFORMATIONS = ['mode']
@ -319,7 +319,7 @@ class Annotator:
) )
variable.multi = None variable.multi = None
needed_type = self.objectspace.types[dtd_key_type] needed_type = self.objectspace.types[dtd_key_type]
if needed_type not in ('variable', variable.opt.type): if elttype != 'certificate' and needed_type not in ('variable', variable.opt.type):
msg = _(f'"{value}" in "{elttype}" must be a variable with type ' msg = _(f'"{value}" in "{elttype}" must be a variable with type '
f'"{needed_type}" not "{variable.opt.type}"') f'"{needed_type}" not "{variable.opt.type}"')
raise DictConsistencyError(msg, 58, elt.xmlfiles) raise DictConsistencyError(msg, 58, elt.xmlfiles)
@ -399,72 +399,22 @@ class Annotator:
certificate_name, certificate_name,
path_prefix, path_prefix,
) -> None: ) -> None:
if hasattr(certificate, 'certificate_type') and certificate.certificate_type == 'variable': if certificate.certificate_type == "variable":
variable = self.objectspace.paths.get_variable(certificate.name, variable = self.objectspace.paths.get_variable(certificate.name,
certificate.namespace, certificate.namespace,
xmlfiles=certificate.xmlfiles, xmlfiles=certificate.xmlfiles,
force_path_prefix=path_prefix, force_path_prefix=path_prefix,
add_path_prefix=True, add_path_prefix=True,
) )
if variable.type != 'filename': certificate.catype = certificate.type
msg = _(f'certificate cannot be linked to "{variable.type}" variable "{certificate.name}"') if not hasattr(certificate, 'domain'):
raise DictConsistencyError(msg, 90, certificate.xmlfiles) certificate.domain = self.objectspace.rougailconfig['default_cerficate_domain']
else: variable = self.objectspace.paths.get_variable(certificate.domain,
option = CONVERT_OPTION['filename']
value = certificate.name
try:
value = option.get('func', str)(value)
getattr(tiramisu, option['opttype'])('test',
'Object to valid value',
value,
**option.get('initkwargs', {}),
)
except ValueError as err:
msg = _(f'certificate "{value}" is not a valid "filename"')
raise DictConsistencyError(msg, 94, certificate.xmlfiles) from err
if hasattr(certificate, 'private_type') and certificate.private_type == 'variable':
variable = self.objectspace.paths.get_variable(certificate.private,
certificate.namespace, certificate.namespace,
xmlfiles=certificate.xmlfiles, xmlfiles=certificate.xmlfiles,
force_path_prefix=path_prefix, force_path_prefix=path_prefix,
add_path_prefix=True, add_path_prefix=True,
) )
if variable.type != 'filename': if variable.type != 'domainname':
msg = _(f'private cannot be linked to "{variable.type}" variable "{certificate.private}" for certificate "{certificate.name}"') msg = _(f'the certificate "{certificate.name}" has an attribute "domain" linked with a "{variable.type}" variable ("{certificate.domain}"), but must be a "domainename" variable')
raise DictConsistencyError(msg, 91, certificate.xmlfiles) raise DictConsistencyError(msg, 94, certificate.xmlfiles)
else:
option = CONVERT_OPTION['filename']
value = certificate.private
try:
value = option.get('func', str)(value)
getattr(tiramisu, option['opttype'])('test',
'Object to valid value',
value,
**option.get('initkwargs', {}),
)
except ValueError as err:
msg = _(f'authority "{value}" is not a valid "filename"')
raise DictConsistencyError(msg, 95, certificate.xmlfiles) from err
if hasattr(certificate, 'authority_type') and certificate.authority_type == 'variable':
variable = self.objectspace.paths.get_variable(certificate.authority,
certificate.namespace,
xmlfiles=certificate.xmlfiles,
force_path_prefix=path_prefix,
add_path_prefix=True,
)
if variable.type != 'filename':
msg = _(f'authority cannot be linked to "{variable.type}" variable "{certificate.authority}" for certificate "{certificate.name}"')
raise DictConsistencyError(msg, 92, certificate.xmlfiles)
else:
option = CONVERT_OPTION['filename']
value = certificate.authority
try:
value = option.get('func', str)(value)
getattr(tiramisu, option['opttype'])('test',
'Object to valid value',
value,
**option.get('initkwargs', {}),
)
except ValueError as err:
msg = _(f'private "{value}" is not a valid "filename"')
raise DictConsistencyError(msg, 96, certificate.xmlfiles) from err

View file

@ -67,7 +67,7 @@ class Annotator(Walk): # pylint: disable=R0903
if hasattr(variable, 'value') and variable.value: if hasattr(variable, 'value') and variable.value:
has_value = True has_value = True
for value in variable.value: for value in variable.value:
if value.type == 'calculation': if value.type == 'calculation' or value.type == 'nil':
has_value = False has_value = False
break break
if has_value and 'mandatory' not in vars(variable): if has_value and 'mandatory' not in vars(variable):
@ -98,6 +98,8 @@ class Annotator(Walk): # pylint: disable=R0903
del variable.value del variable.value
def add_choice_nil(self) -> None: def add_choice_nil(self) -> None:
"""A variable with type "Choice" that is not mandatory must has "nil" value
"""
for variable in self.get_variables(): for variable in self.get_variables():
if variable.type != 'choice': if variable.type != 'choice':
continue continue

View file

@ -162,21 +162,20 @@ class Annotator(Walk): # pylint: disable=R0903
if variable.type != 'symlink' and not hasattr(variable, 'description'): if variable.type != 'symlink' and not hasattr(variable, 'description'):
variable.description = variable.name variable.description = variable.name
if hasattr(variable, 'value'): if hasattr(variable, 'value'):
value_to_del = []
for idx, value in enumerate(variable.value): for idx, value in enumerate(variable.value):
if not hasattr(value, 'name'): if not hasattr(value, 'name') and not hasattr(value, 'type'):
value_to_del.append(idx) msg = 'value without value, if you want the value None, set value type to nil'
else: raise DictConsistencyError(msg, 95, value.xmlfiles)
if not hasattr(value, 'type'): if not hasattr(value, 'type'):
value.type = variable.type value.type = variable.type
if hasattr(value, 'name'):
try: try:
value.name = CONVERT_OPTION.get(value.type, {}).get('func', str)(value.name) value.name = CONVERT_OPTION.get(value.type, {}).get('func', str)(value.name)
except Exception as err: except Exception as err:
msg = _(f'the variable "{variable.name}" has an incorrect value "{value.name}" with "{variable.type}" type') msg = _(f'the variable "{variable.name}" has an incorrect value "{value.name}" with "{variable.type}" type')
raise DictConsistencyError(msg, 88, variable.xmlfiles) raise DictConsistencyError(msg, 88, variable.xmlfiles)
value_to_del.sort(reverse=True) else:
for idx in value_to_del: value.name = None
del variable.value[idx]
if not variable.value: if not variable.value:
del variable.value del variable.value
if hasattr(variable, 'choice'): if hasattr(variable, 'choice'):

View file

@ -69,6 +69,7 @@ RougailConfig = {'dictionaries_dir': [join(ROUGAILROOT, 'dictionaries')],
'default_files_included': 'no', 'default_files_included': 'no',
'default_overrides_engine': 'cheetah', 'default_overrides_engine': 'cheetah',
'default_service_names_engine': 'none', 'default_service_names_engine': 'none',
'default_cerficate_domain': 'server_name',
'base_option_name': 'baseoption', 'base_option_name': 'baseoption',
'export_with_import': True, 'export_with_import': True,
'force_convert_dyn_option_description': False, 'force_convert_dyn_option_description': False,

View file

@ -88,15 +88,19 @@
<!ATTLIST override engine (none|cheetah|jinja) #IMPLIED> <!ATTLIST override engine (none|cheetah|jinja) #IMPLIED>
<!ELEMENT certificate (#PCDATA)> <!ELEMENT certificate (#PCDATA)>
<!ATTLIST certificate certificate_type (filename|variable) "filename"> <!ATTLIST certificate certificate_type (string|variable) "string">
<!ATTLIST certificate private_type (filename|variable) "filename">
<!ATTLIST certificate private CDATA #REQUIRED>
<!ATTLIST certificate authority_type (filename|variable) "filename">
<!ATTLIST certificate authority CDATA #REQUIRED> <!ATTLIST certificate authority CDATA #REQUIRED>
<!ATTLIST certificate owner CDATA #IMPLIED> <!ATTLIST certificate owner CDATA #IMPLIED>
<!ATTLIST certificate owner_type (unix_user|variable) "unix_user"> <!ATTLIST certificate owner_type (unix_user|variable) "unix_user">
<!ATTLIST certificate group CDATA #IMPLIED> <!ATTLIST certificate server CDATA #IMPLIED>
<!ATTLIST certificate group_type (unix_user|variable) "unix_user"> <!ATTLIST certificate server_type (variable) "variable">
<!ATTLIST certificate domain CDATA #IMPLIED>
<!ATTLIST certificate domain_type (variable) "variable">
<!ATTLIST certificate provider CDATA #IMPLIED>
<!ATTLIST certificate provider_type (variable) "variable">
<!ATTLIST certificate format (cert_key|pem) "cert_key">
<!ATTLIST certificate type (client|server) "client">
<!ATTLIST certificate redefine (True|False) "False">
<!ELEMENT variables ((variable*|family*)*)> <!ELEMENT variables ((variable*|family*)*)>

View file

@ -121,8 +121,26 @@ mapping:
certificate_type: certificate_type:
type: str type: str
enum: enum:
- "filename"
- "variable" - "variable"
redefine:
type: bool
type:
type: str
enum:
- "client"
- "server"
domain_type:
type: str
enum:
- "variable"
domain:
type: str
server_type:
type: str
enum:
- "variable"
server:
type: str
group_type: group_type:
type: str type: str
enum: enum:
@ -137,20 +155,18 @@ mapping:
- "variable" - "variable"
owner: owner:
type: str type: str
authority:
type: str
authority_type: authority_type:
type: str type: str
enum: enum:
- "filename"
- "variable" - "variable"
private: authority:
type: str type: str
private_type: private_type:
type: str type: str
enum: enum:
- "filename"
- "variable" - "variable"
private:
type: str
name: name:
type: str type: str
undisable: undisable:

View file

@ -63,6 +63,7 @@ log.addHandler(logging.NullHandler())
INFORMATIONS = {'files': ['mode', 'engine', 'included'], INFORMATIONS = {'files': ['mode', 'engine', 'included'],
'overrides': ['name', 'source', 'engine'], 'overrides': ['name', 'source', 'engine'],
'service_names': ['doc', 'engine', 'type', 'target', 'undisable'], 'service_names': ['doc', 'engine', 'type', 'target', 'undisable'],
'certificates': ['authority', 'format'],
} }
DEFAULT = {'files': ['owner', 'group'], DEFAULT = {'files': ['owner', 'group'],
'overrides': [], 'overrides': [],
@ -218,6 +219,9 @@ class RougailExtra:
def __str__(self): def __str__(self):
return f'RougailExtra("{self._name}") => {self._suboption}' return f'RougailExtra("{self._name}") => {self._suboption}'
def __contains__(self, value):
return self._suboption.__contains__(value)
class RougailBaseTemplate: class RougailBaseTemplate:
"""Engine to process Creole cheetah template """Engine to process Creole cheetah template
@ -296,6 +300,7 @@ class RougailBaseTemplate:
filevar: Dict, filevar: Dict,
type_: str, type_: str,
service_name: str, service_name: str,
extra_variables: str,
) -> str: ) -> str:
"""Run templatisation on one file """Run templatisation on one file
""" """
@ -343,6 +348,7 @@ class RougailBaseTemplate:
index=idx, index=idx,
rougail_variables_dict=self.rougail_variables_dict, rougail_variables_dict=self.rougail_variables_dict,
eosfunc=self.eosfunc, eosfunc=self.eosfunc,
extra_variables=extra_variables,
) )
self.process(true_destfilename, self.process(true_destfilename,
destfilename, destfilename,
@ -366,7 +372,10 @@ class RougailBaseTemplate:
is_service_namespace, is_service_namespace,
) )
async def instance_file(self, template_name) -> None: async def instance_file(self,
template_name,
extra_variables=None,
) -> None:
if not self.rougail_variables_dict: if not self.rougail_variables_dict:
await self.load_variables() await self.load_variables()
self.prepare_templates() self.prepare_templates()
@ -396,6 +405,7 @@ class RougailBaseTemplate:
self._instance_file(fill, self._instance_file(fill,
type_, type_,
service_name, service_name,
extra_variables,
) )
except Exception as err: except Exception as err:
if ori_dir is not None: if ori_dir is not None:
@ -407,7 +417,9 @@ class RougailBaseTemplate:
raise TemplateError(f'Cannot find template {template_name}') raise TemplateError(f'Cannot find template {template_name}')
async def instance_files(self) -> None: async def instance_files(self,
extra_variables=None,
) -> None:
"""Run templatisation on all files """Run templatisation on all files
""" """
try: try:
@ -433,6 +445,7 @@ class RougailBaseTemplate:
self._instance_file({'engine': engine}, self._instance_file({'engine': engine},
'service', 'service',
service_name, service_name,
extra_variables,
) )
target_name = await service_obj.information.get('target', None) target_name = await service_obj.information.get('target', None)
if target_name: if target_name:
@ -456,6 +469,7 @@ class RougailBaseTemplate:
destfilenames = self._instance_file(fill, destfilenames = self._instance_file(fill,
type_, type_,
service_name, service_name,
extra_variables,
) )
if included and fill.get('included', 'no') == 'content': if included and fill.get('included', 'no') == 'content':
files_to_delete.extend(destfilenames) files_to_delete.extend(destfilenames)

View file

@ -100,6 +100,7 @@ def process(filename: str,
index: int, index: int,
rougail_variables_dict: Dict, rougail_variables_dict: Dict,
eosfunc: Dict, eosfunc: Dict,
extra_variables: Any=None,
): ):
"""Process a cheetah template """Process a cheetah template
""" """
@ -113,6 +114,8 @@ def process(filename: str,
extra_context['rougail_variable'] = variable extra_context['rougail_variable'] = variable
if index is not None: if index is not None:
extra_context['rougail_index'] = index extra_context['rougail_index'] = index
if extra_variables:
extra_context['extra_variables'] = extra_variables
cheetah_template = CheetahTemplate(filename, cheetah_template = CheetahTemplate(filename,
source, source,
rougail_variables_dict, rougail_variables_dict,

View file

@ -124,6 +124,7 @@ def process(filename: str,
index: int, index: int,
rougail_variables_dict: Dict, rougail_variables_dict: Dict,
eosfunc: Dict, eosfunc: Dict,
extra_variables: Any=None,
): ):
"""Process a cheetah template """Process a cheetah template
""" """
@ -139,6 +140,8 @@ def process(filename: str,
extra_context['rougail_variable'] = variable extra_context['rougail_variable'] = variable
if index is not None: if index is not None:
extra_context['rougail_index'] = index extra_context['rougail_index'] = index
if extra_variables:
extra_context['extra_variables'] = extra_variables
cheetah_template = CheetahTemplate(filename, cheetah_template = CheetahTemplate(filename,
source, source,
rougail_variables_dict, rougail_variables_dict,

View file

@ -45,6 +45,7 @@ def process(filename: str,
index: int, index: int,
rougail_variables_dict: Dict, rougail_variables_dict: Dict,
eosfunc: Dict, eosfunc: Dict,
extra_variables: Any=None,
): ):
"""Process a cheetah template """Process a cheetah template
""" """
@ -57,6 +58,8 @@ def process(filename: str,
var['rougail_variable'] = variable var['rougail_variable'] = variable
if index is not None: if index is not None:
var['rougail_index'] = index var['rougail_index'] = index
if extra_variables:
var['extra_variables'] = extra_variables
try: try:
# extra_context = {'normalize_family': normalize_family, # extra_context = {'normalize_family': normalize_family,
# eosfunc # eosfunc

View file

@ -343,6 +343,8 @@ class Common:
param_type = 'ParamDynOption' param_type = 'ParamDynOption'
family = param.family.reflector_object.get(self.calls, self.elt.path, 'suffix') family = param.family.reflector_object.get(self.calls, self.elt.path, 'suffix')
params.extend([f"'{param.suffix}'", f'{family}']) params.extend([f"'{param.suffix}'", f'{family}'])
if param.optional:
params.append('optional=True')
else: else:
param_type = 'ParamOption' param_type = 'ParamOption'
if not param.propertyerror: if not param.propertyerror:

View file

@ -1,26 +0,0 @@
{
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": {
"owner": "default",
"value": "/etc/pki/tls/certs/example.crt"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": {
"owner": "default",
"value": "/etc/pki/tls/private/example.key"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": {
"owner": "default",
"value": true
},
"services.test_service.activate": {
"owner": "default",
"value": true
},
"services.test_service.manage": {
"owner": "default",
"value": true
}
}

View file

@ -1,8 +0,0 @@
{
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": "/etc/pki/tls/certs/example.crt",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": "/etc/pki/tls/private/example.key",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": true,
"services.test_service.activate": true,
"services.test_service.manage": true
}

View file

@ -1,26 +0,0 @@
{
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": {
"owner": "default",
"value": "/etc/pki/tls/certs/example.crt"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": {
"owner": "default",
"value": "/etc/pki/tls/private/example.key"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": {
"owner": "default",
"value": true
},
"services.test_service.activate": {
"owner": "default",
"value": true
},
"services.test_service.manage": {
"owner": "default",
"value": true
}
}

View file

@ -1,32 +0,0 @@
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
class func:
pass
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
loader = _SourceFileLoader('func', path)
spec = _spec_from_loader(loader.name, loader)
func_ = _module_from_spec(spec)
loader.exec_module(func_)
for function in dir(func_):
if function.startswith('_'):
continue
setattr(func, function, getattr(func_, function))
_load_functions('tests/dictionaries/../eosfunc/test.py')
try:
from tiramisu3 import *
except:
from tiramisu import *
option_5 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt")
option_6 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt")
option_7 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key")
option_4 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_3 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_5, option_6, option_7, option_4])
optiondescription_2 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_3])
option_1 = BoolOption(name="activate", doc="activate", default=True)
option_8 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_10 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_2, option_1, option_8])
optiondescription_10.impl_set_information('type', "service")
optiondescription_9 = OptionDescription(name="services", doc="services", children=[optiondescription_10], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9])

View file

@ -1,45 +0,0 @@
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
class func:
pass
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
loader = _SourceFileLoader('func', path)
spec = _spec_from_loader(loader.name, loader)
func_ = _module_from_spec(spec)
loader.exec_module(func_)
for function in dir(func_):
if function.startswith('_'):
continue
setattr(func, function, getattr(func_, function))
_load_functions('tests/dictionaries/../eosfunc/test.py')
try:
from tiramisu3 import *
except:
from tiramisu import *
option_5 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt")
option_6 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt")
option_7 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key")
option_4 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_3 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_5, option_6, option_7, option_4])
optiondescription_2 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_3])
option_1 = BoolOption(name="activate", doc="activate", default=True)
option_8 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_19 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_2, option_1, option_8])
optiondescription_19.impl_set_information('type', "service")
optiondescription_18 = OptionDescription(name="services", doc="services", children=[optiondescription_19], properties=frozenset({"hidden"}))
optiondescription_17 = OptionDescription(name="1", doc="1", children=[optiondescription_18])
option_13 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt")
option_14 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt")
option_15 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key")
option_12 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_11 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_13, option_14, option_15, option_12])
optiondescription_10 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_11])
option_9 = BoolOption(name="activate", doc="activate", default=True)
option_16 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_22 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_16])
optiondescription_22.impl_set_information('type', "service")
optiondescription_21 = OptionDescription(name="services", doc="services", children=[optiondescription_22], properties=frozenset({"hidden"}))
optiondescription_20 = OptionDescription(name="2", doc="2", children=[optiondescription_21])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_17, optiondescription_20])

View file

@ -1,8 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10">
<services>
<service name="test">
<certificate private="/etc/pki/tls/private/example.key" authority="/etc/pki/ca-trust/source/anchors/ca_example.crt">/etc/pki/tls/certs/example.crt</certificate>
</service>
</services>
</rougail>

View file

@ -1,8 +0,0 @@
version: '0.10'
services:
- service:
- name: test
certificate:
- private: /etc/pki/tls/private/example.key
authority: /etc/pki/ca-trust/source/anchors/ca_example.crt
text: /etc/pki/tls/certs/example.crt

View file

@ -2,15 +2,27 @@
<rougail version="0.10"> <rougail version="0.10">
<services> <services>
<service name="test"> <service name="test">
<certificate private="/etc/pki/tls/private/example.key" authority="/etc/pki/ca-trust/source/anchors/ca_example.crt" owner="owner" owner_type="variable" group="group" group_type="variable">/etc/pki/tls/certs/example.crt</certificate> <certificate private="private" authority="authority" owner="owner" owner_type="variable" group="group" group_type="variable">certificate</certificate>
</service> </service>
</services> </services>
<variables> <variables>
<variable name="certificate" type="filename">
<value>/etc/pki/tls/certs/example.crt</value>
</variable>
<variable name="private" type="filename">
<value>/etc/pki/tls/private/example.key</value>
</variable>
<variable name="authority" type="filename">
<value>/etc/pki/ca-trust/source/anchors/ca_example.crt</value>
</variable>
<variable name="owner" type="unix_user"> <variable name="owner" type="unix_user">
<value>example</value> <value>example</value>
</variable> </variable>
<variable name="group"> <variable name="group">
<value>example</value> <value>example</value>
</variable> </variable>
<variable name="server_name" type="domainname">
<value>example.net</value>
</variable>
</variables> </variables>
</rougail> </rougail>

View file

@ -3,15 +3,27 @@ services:
- service: - service:
- name: test - name: test
certificate: certificate:
- private: /etc/pki/tls/private/example.key - private: private
authority: /etc/pki/ca-trust/source/anchors/ca_example.crt authority: authority
owner: owner owner: owner
owner_type: variable owner_type: variable
group: group group: group
group_type: variable group_type: variable
text: /etc/pki/tls/certs/example.crt text: certificate
variables: variables:
- variable: - variable:
- name: certificate
type: filename
value:
- text: /etc/pki/tls/certs/example.crt
- name: private
type: filename
value:
- text: /etc/pki/tls/private/example.key
- name: authority
type: filename
value:
- text: /etc/pki/ca-trust/source/anchors/ca_example.crt
- name: owner - name: owner
type: unix_user type: unix_user
value: value:
@ -19,3 +31,7 @@ variables:
- name: group - name: group
value: value:
- text: example - text: example
- name: server_name
type: domainname
value:
- text: example.net

View file

@ -1,25 +1,45 @@
{ {
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": { "rougail.certificate": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.group": {
"owner": "default",
"value": "example"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/certs/example.crt" "value": "/etc/pki/tls/certs/example.crt"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.owner": { "rougail.private": {
"owner": "default",
"value": "example"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/private/example.key" "value": "/etc/pki/tls/private/example.key"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": { "rougail.authority": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"rougail.server_name": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.authority": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"services.test_service.certificates.certificate.domain": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.group": {
"owner": "default",
"value": "example"
},
"services.test_service.certificates.certificate.name": {
"owner": "default",
"value": "/etc/pki/tls/certs/example.crt"
},
"services.test_service.certificates.certificate.owner": {
"owner": "default",
"value": "example"
},
"services.test_service.certificates.certificate.private": {
"owner": "default",
"value": "/etc/pki/tls/private/example.key"
},
"services.test_service.certificates.certificate.activate": {
"owner": "default", "owner": "default",
"value": true "value": true
}, },

View file

@ -1,10 +1,15 @@
{ {
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt", "rougail.certificate": "/etc/pki/tls/certs/example.crt",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.group": "example", "rougail.private": "/etc/pki/tls/private/example.key",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": "/etc/pki/tls/certs/example.crt", "rougail.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.owner": "example", "rougail.server_name": "example.net",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": "/etc/pki/tls/private/example.key", "services.test_service.certificates.certificate.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": true, "services.test_service.certificates.certificate.domain": "example.net",
"services.test_service.certificates.certificate.group": "example",
"services.test_service.certificates.certificate.name": "/etc/pki/tls/certs/example.crt",
"services.test_service.certificates.certificate.owner": "example",
"services.test_service.certificates.certificate.private": "/etc/pki/tls/private/example.key",
"services.test_service.certificates.certificate.activate": true,
"services.test_service.activate": true, "services.test_service.activate": true,
"services.test_service.manage": true "services.test_service.manage": true
} }

View file

@ -1,25 +1,45 @@
{ {
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": { "rougail.certificate": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.group": {
"owner": "default",
"value": "example"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/certs/example.crt" "value": "/etc/pki/tls/certs/example.crt"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.owner": { "rougail.private": {
"owner": "default",
"value": "example"
},
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/private/example.key" "value": "/etc/pki/tls/private/example.key"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": { "rougail.authority": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"rougail.server_name": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.authority": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"services.test_service.certificates.certificate.domain": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.group": {
"owner": "default",
"value": "example"
},
"services.test_service.certificates.certificate.name": {
"owner": "default",
"value": "/etc/pki/tls/certs/example.crt"
},
"services.test_service.certificates.certificate.owner": {
"owner": "default",
"value": "example"
},
"services.test_service.certificates.certificate.private": {
"owner": "default",
"value": "/etc/pki/tls/private/example.key"
},
"services.test_service.certificates.certificate.activate": {
"owner": "default", "owner": "default",
"value": true "value": true
}, },

View file

@ -18,17 +18,24 @@ try:
from tiramisu3 import * from tiramisu3 import *
except: except:
from tiramisu import * from tiramisu import *
option_5 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt") option_1 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_6 = UsernameOption(name="group", doc="group", default="example") option_2 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
option_7 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt") option_3 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
option_8 = UsernameOption(name="owner", doc="owner", default="example") option_4 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
option_9 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key") optiondescription_16 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3, option_4])
option_4 = BoolOption(name="activate", doc="activate", default=True) option_9 = SymLinkOption(name="authority", opt=option_3)
optiondescription_3 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_5, option_6, option_7, option_8, option_9, option_4]) option_10 = SymLinkOption(name="domain", opt=option_4)
optiondescription_2 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_3]) option_11 = UsernameOption(name="group", doc="group", default="example")
option_1 = BoolOption(name="activate", doc="activate", default=True) option_12 = SymLinkOption(name="name", opt=option_1)
option_10 = BoolOption(name="manage", doc="manage", default=True) option_13 = UsernameOption(name="owner", doc="owner", default="example")
optiondescription_12 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_2, option_1, option_10]) option_14 = SymLinkOption(name="private", opt=option_2)
optiondescription_12.impl_set_information('type', "service") option_8 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_11 = OptionDescription(name="services", doc="services", children=[optiondescription_12], properties=frozenset({"hidden"})) optiondescription_7 = OptionDescription(name="certificate", doc="certificate", children=[option_9, option_10, option_11, option_12, option_13, option_14, option_8])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_11]) optiondescription_7.impl_set_information('type', "client")
optiondescription_6 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_7])
option_5 = BoolOption(name="activate", doc="activate", default=True)
option_15 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_18 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_15])
optiondescription_18.impl_set_information('type', "service")
optiondescription_17 = OptionDescription(name="services", doc="services", children=[optiondescription_18], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_16, optiondescription_17])

View file

@ -18,32 +18,46 @@ try:
from tiramisu3 import * from tiramisu3 import *
except: except:
from tiramisu import * from tiramisu import *
option_5 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt") option_1 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_6 = UsernameOption(name="group", doc="group", default="example") option_2 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
option_7 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt") option_3 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
option_8 = UsernameOption(name="owner", doc="owner", default="example") option_4 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
option_9 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key") optiondescription_32 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3, option_4])
option_4 = BoolOption(name="activate", doc="activate", default=True) option_13 = SymLinkOption(name="authority", opt=option_3)
optiondescription_3 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_5, option_6, option_7, option_8, option_9, option_4]) option_14 = SymLinkOption(name="domain", opt=option_4)
optiondescription_2 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_3]) option_15 = UsernameOption(name="group", doc="group", default="example")
option_1 = BoolOption(name="activate", doc="activate", default=True) option_16 = SymLinkOption(name="name", opt=option_1)
option_10 = BoolOption(name="manage", doc="manage", default=True) option_17 = UsernameOption(name="owner", doc="owner", default="example")
optiondescription_23 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_2, option_1, option_10]) option_18 = SymLinkOption(name="private", opt=option_2)
optiondescription_23.impl_set_information('type', "service") option_12 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_22 = OptionDescription(name="services", doc="services", children=[optiondescription_23], properties=frozenset({"hidden"})) optiondescription_11 = OptionDescription(name="certificate", doc="certificate", children=[option_13, option_14, option_15, option_16, option_17, option_18, option_12])
optiondescription_21 = OptionDescription(name="1", doc="1", children=[optiondescription_22]) optiondescription_11.impl_set_information('type', "client")
option_15 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt") optiondescription_10 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_11])
option_16 = UsernameOption(name="group", doc="group", default="example") option_9 = BoolOption(name="activate", doc="activate", default=True)
option_17 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt") option_19 = BoolOption(name="manage", doc="manage", default=True)
option_18 = UsernameOption(name="owner", doc="owner", default="example") optiondescription_34 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_19])
option_19 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key") optiondescription_34.impl_set_information('type', "service")
option_14 = BoolOption(name="activate", doc="activate", default=True) optiondescription_33 = OptionDescription(name="services", doc="services", children=[optiondescription_34], properties=frozenset({"hidden"}))
optiondescription_13 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_15, option_16, option_17, option_18, option_19, option_14]) optiondescription_31 = OptionDescription(name="1", doc="1", children=[optiondescription_32, optiondescription_33])
optiondescription_12 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_13]) option_5 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_11 = BoolOption(name="activate", doc="activate", default=True) option_6 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
option_20 = BoolOption(name="manage", doc="manage", default=True) option_7 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_12, option_11, option_20]) option_8 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
optiondescription_26.impl_set_information('type', "service") optiondescription_36 = OptionDescription(name="rougail", doc="Rougail", children=[option_5, option_6, option_7, option_8])
optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"})) option_24 = SymLinkOption(name="authority", opt=option_7)
optiondescription_24 = OptionDescription(name="2", doc="2", children=[optiondescription_25]) option_25 = SymLinkOption(name="domain", opt=option_8)
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_21, optiondescription_24]) option_26 = UsernameOption(name="group", doc="group", default="example")
option_27 = SymLinkOption(name="name", opt=option_5)
option_28 = UsernameOption(name="owner", doc="owner", default="example")
option_29 = SymLinkOption(name="private", opt=option_6)
option_23 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_22 = OptionDescription(name="certificate", doc="certificate", children=[option_24, option_25, option_26, option_27, option_28, option_29, option_23])
optiondescription_22.impl_set_information('type', "client")
optiondescription_21 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_22])
option_20 = BoolOption(name="activate", doc="activate", default=True)
option_30 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_38 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_21, option_20, option_30])
optiondescription_38.impl_set_information('type', "service")
optiondescription_37 = OptionDescription(name="services", doc="services", children=[optiondescription_38], properties=frozenset({"hidden"}))
optiondescription_35 = OptionDescription(name="2", doc="2", children=[optiondescription_36, optiondescription_37])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_31, optiondescription_35])

View file

@ -2,7 +2,21 @@
<rougail version="0.10"> <rougail version="0.10">
<services> <services>
<service name="test"> <service name="test">
<certificate private="/etc/pki/tls/private/example.key" authority="/etc/pki/ca-trust/source/anchors/ca_example.crt" owner="example" group="example">/etc/pki/tls/certs/example.crt</certificate> <certificate private="private" authority="authority" owner="example" group="example">certificate</certificate>
</service> </service>
</services> </services>
<variables>
<variable name="certificate" type="filename">
<value>/etc/pki/tls/certs/example.crt</value>
</variable>
<variable name="private" type="filename">
<value>/etc/pki/tls/private/example.key</value>
</variable>
<variable name="authority" type="filename">
<value>/etc/pki/ca-trust/source/anchors/ca_example.crt</value>
</variable>
<variable name="server_name" type="domainname">
<value>example.net</value>
</variable>
</variables>
</rougail> </rougail>

View file

@ -3,8 +3,26 @@ services:
- service: - service:
- name: test - name: test
certificate: certificate:
- private: /etc/pki/tls/private/example.key - private: private
authority: /etc/pki/ca-trust/source/anchors/ca_example.crt authority: authority
owner: example owner: example
group: example group: example
text: /etc/pki/tls/certs/example.crt text: certificate
variables:
- variable:
- name: certificate
type: filename
value:
- text: /etc/pki/tls/certs/example.crt
- name: private
type: filename
value:
- text: /etc/pki/tls/private/example.key
- name: authority
type: filename
value:
- text: /etc/pki/ca-trust/source/anchors/ca_example.crt
- name: server_name
type: domainname
value:
- text: example.net

View file

@ -1,4 +1,16 @@
{ {
"rougail.certificate": {
"owner": "default",
"value": "/etc/pki/tls/certs/example.crt"
},
"rougail.private": {
"owner": "default",
"value": "/etc/pki/tls/private/example.key"
},
"rougail.authority": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"rougail.owner": { "rougail.owner": {
"owner": "default", "owner": "default",
"value": "example" "value": "example"
@ -7,27 +19,35 @@
"owner": "default", "owner": "default",
"value": "example" "value": "example"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": { "rougail.server_name": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.authority": {
"owner": "default", "owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt" "value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.group": { "services.test_service.certificates.certificate.domain": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.group": {
"owner": "default", "owner": "default",
"value": "example" "value": "example"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": { "services.test_service.certificates.certificate.name": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/certs/example.crt" "value": "/etc/pki/tls/certs/example.crt"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.owner": { "services.test_service.certificates.certificate.owner": {
"owner": "default", "owner": "default",
"value": "example" "value": "example"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": { "services.test_service.certificates.certificate.private": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/private/example.key" "value": "/etc/pki/tls/private/example.key"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": { "services.test_service.certificates.certificate.activate": {
"owner": "default", "owner": "default",
"value": true "value": true
}, },

View file

@ -1,12 +1,17 @@
{ {
"rougail.certificate": "/etc/pki/tls/certs/example.crt",
"rougail.private": "/etc/pki/tls/private/example.key",
"rougail.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt",
"rougail.owner": "example", "rougail.owner": "example",
"rougail.group": "example", "rougail.group": "example",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt", "rougail.server_name": "example.net",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.group": "example", "services.test_service.certificates.certificate.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": "/etc/pki/tls/certs/example.crt", "services.test_service.certificates.certificate.domain": "example.net",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.owner": "example", "services.test_service.certificates.certificate.group": "example",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": "/etc/pki/tls/private/example.key", "services.test_service.certificates.certificate.name": "/etc/pki/tls/certs/example.crt",
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": true, "services.test_service.certificates.certificate.owner": "example",
"services.test_service.certificates.certificate.private": "/etc/pki/tls/private/example.key",
"services.test_service.certificates.certificate.activate": true,
"services.test_service.activate": true, "services.test_service.activate": true,
"services.test_service.manage": true "services.test_service.manage": true
} }

View file

@ -1,4 +1,16 @@
{ {
"rougail.certificate": {
"owner": "default",
"value": "/etc/pki/tls/certs/example.crt"
},
"rougail.private": {
"owner": "default",
"value": "/etc/pki/tls/private/example.key"
},
"rougail.authority": {
"owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
},
"rougail.owner": { "rougail.owner": {
"owner": "default", "owner": "default",
"value": "example" "value": "example"
@ -7,27 +19,35 @@
"owner": "default", "owner": "default",
"value": "example" "value": "example"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.authority": { "rougail.server_name": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.authority": {
"owner": "default", "owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt" "value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.group": { "services.test_service.certificates.certificate.domain": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.group": {
"owner": "default", "owner": "default",
"value": "example" "value": "example"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.name": { "services.test_service.certificates.certificate.name": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/certs/example.crt" "value": "/etc/pki/tls/certs/example.crt"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.owner": { "services.test_service.certificates.certificate.owner": {
"owner": "default", "owner": "default",
"value": "example" "value": "example"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.private": { "services.test_service.certificates.certificate.private": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/private/example.key" "value": "/etc/pki/tls/private/example.key"
}, },
"services.test_service.certificates./etc/pki/tls/certs/example_crt.activate": { "services.test_service.certificates.certificate.activate": {
"owner": "default", "owner": "default",
"value": true "value": true
}, },

View file

@ -18,20 +18,26 @@ try:
from tiramisu3 import * from tiramisu3 import *
except: except:
from tiramisu import * from tiramisu import *
option_1 = UsernameOption(name="owner", doc="owner", default="example", properties=frozenset({"mandatory", "normal"})) option_1 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_2 = UsernameOption(name="group", doc="group", default="example", properties=frozenset({"mandatory", "normal"})) option_2 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
optiondescription_13 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2]) option_3 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
option_7 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt") option_4 = UsernameOption(name="owner", doc="owner", default="example", properties=frozenset({"mandatory", "normal"}))
option_8 = SymLinkOption(name="group", opt=option_2) option_5 = UsernameOption(name="group", doc="group", default="example", properties=frozenset({"mandatory", "normal"}))
option_9 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt") option_6 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
option_10 = SymLinkOption(name="owner", opt=option_1) optiondescription_18 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3, option_4, option_5, option_6])
option_11 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key") option_11 = SymLinkOption(name="authority", opt=option_3)
option_6 = BoolOption(name="activate", doc="activate", default=True) option_12 = SymLinkOption(name="domain", opt=option_6)
optiondescription_5 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_7, option_8, option_9, option_10, option_11, option_6]) option_13 = SymLinkOption(name="group", opt=option_5)
optiondescription_4 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_5]) option_14 = SymLinkOption(name="name", opt=option_1)
option_3 = BoolOption(name="activate", doc="activate", default=True) option_15 = SymLinkOption(name="owner", opt=option_4)
option_12 = BoolOption(name="manage", doc="manage", default=True) option_16 = SymLinkOption(name="private", opt=option_2)
optiondescription_15 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_4, option_3, option_12]) option_10 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_15.impl_set_information('type', "service") optiondescription_9 = OptionDescription(name="certificate", doc="certificate", children=[option_11, option_12, option_13, option_14, option_15, option_16, option_10])
optiondescription_14 = OptionDescription(name="services", doc="services", children=[optiondescription_15], properties=frozenset({"hidden"})) optiondescription_9.impl_set_information('type', "client")
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_13, optiondescription_14]) optiondescription_8 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_9])
option_7 = BoolOption(name="activate", doc="activate", default=True)
option_17 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_20 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_8, option_7, option_17])
optiondescription_20.impl_set_information('type', "service")
optiondescription_19 = OptionDescription(name="services", doc="services", children=[optiondescription_20], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_18, optiondescription_19])

View file

@ -18,38 +18,50 @@ try:
from tiramisu3 import * from tiramisu3 import *
except: except:
from tiramisu import * from tiramisu import *
option_1 = UsernameOption(name="owner", doc="owner", default="example", properties=frozenset({"mandatory", "normal"})) option_1 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_2 = UsernameOption(name="group", doc="group", default="example", properties=frozenset({"mandatory", "normal"})) option_2 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
optiondescription_26 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2]) option_3 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
option_9 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt") option_4 = UsernameOption(name="owner", doc="owner", default="example", properties=frozenset({"mandatory", "normal"}))
option_10 = SymLinkOption(name="group", opt=option_2) option_5 = UsernameOption(name="group", doc="group", default="example", properties=frozenset({"mandatory", "normal"}))
option_11 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt") option_6 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
option_12 = SymLinkOption(name="owner", opt=option_1) optiondescription_36 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3, option_4, option_5, option_6])
option_13 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key") option_17 = SymLinkOption(name="authority", opt=option_3)
option_8 = BoolOption(name="activate", doc="activate", default=True) option_18 = SymLinkOption(name="domain", opt=option_6)
optiondescription_7 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_9, option_10, option_11, option_12, option_13, option_8]) option_19 = SymLinkOption(name="group", opt=option_5)
optiondescription_6 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_7]) option_20 = SymLinkOption(name="name", opt=option_1)
option_5 = BoolOption(name="activate", doc="activate", default=True) option_21 = SymLinkOption(name="owner", opt=option_4)
option_14 = BoolOption(name="manage", doc="manage", default=True) option_22 = SymLinkOption(name="private", opt=option_2)
optiondescription_28 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_14]) option_16 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_28.impl_set_information('type', "service") optiondescription_15 = OptionDescription(name="certificate", doc="certificate", children=[option_17, option_18, option_19, option_20, option_21, option_22, option_16])
optiondescription_27 = OptionDescription(name="services", doc="services", children=[optiondescription_28], properties=frozenset({"hidden"})) optiondescription_15.impl_set_information('type', "client")
optiondescription_25 = OptionDescription(name="1", doc="1", children=[optiondescription_26, optiondescription_27]) optiondescription_14 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_15])
option_3 = UsernameOption(name="owner", doc="owner", default="example", properties=frozenset({"mandatory", "normal"})) option_13 = BoolOption(name="activate", doc="activate", default=True)
option_4 = UsernameOption(name="group", doc="group", default="example", properties=frozenset({"mandatory", "normal"})) option_23 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_30 = OptionDescription(name="rougail", doc="Rougail", children=[option_3, option_4]) optiondescription_38 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_14, option_13, option_23])
option_19 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt") optiondescription_38.impl_set_information('type', "service")
option_20 = SymLinkOption(name="group", opt=option_4) optiondescription_37 = OptionDescription(name="services", doc="services", children=[optiondescription_38], properties=frozenset({"hidden"}))
option_21 = FilenameOption(name="name", doc="name", default="/etc/pki/tls/certs/example.crt") optiondescription_35 = OptionDescription(name="1", doc="1", children=[optiondescription_36, optiondescription_37])
option_22 = SymLinkOption(name="owner", opt=option_3) option_7 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_23 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key") option_8 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
option_18 = BoolOption(name="activate", doc="activate", default=True) option_9 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
optiondescription_17 = OptionDescription(name="/etc/pki/tls/certs/example_crt", doc="/etc/pki/tls/certs/example.crt", children=[option_19, option_20, option_21, option_22, option_23, option_18]) option_10 = UsernameOption(name="owner", doc="owner", default="example", properties=frozenset({"mandatory", "normal"}))
optiondescription_16 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_17]) option_11 = UsernameOption(name="group", doc="group", default="example", properties=frozenset({"mandatory", "normal"}))
option_15 = BoolOption(name="activate", doc="activate", default=True) option_12 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
option_24 = BoolOption(name="manage", doc="manage", default=True) optiondescription_40 = OptionDescription(name="rougail", doc="Rougail", children=[option_7, option_8, option_9, option_10, option_11, option_12])
optiondescription_32 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_24]) option_28 = SymLinkOption(name="authority", opt=option_9)
optiondescription_32.impl_set_information('type', "service") option_29 = SymLinkOption(name="domain", opt=option_12)
optiondescription_31 = OptionDescription(name="services", doc="services", children=[optiondescription_32], properties=frozenset({"hidden"})) option_30 = SymLinkOption(name="group", opt=option_11)
optiondescription_29 = OptionDescription(name="2", doc="2", children=[optiondescription_30, optiondescription_31]) option_31 = SymLinkOption(name="name", opt=option_7)
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_25, optiondescription_29]) option_32 = SymLinkOption(name="owner", opt=option_10)
option_33 = SymLinkOption(name="private", opt=option_8)
option_27 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_26 = OptionDescription(name="certificate", doc="certificate", children=[option_28, option_29, option_30, option_31, option_32, option_33, option_27])
optiondescription_26.impl_set_information('type', "client")
optiondescription_25 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_26])
option_24 = BoolOption(name="activate", doc="activate", default=True)
option_34 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_42 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_25, option_24, option_34])
optiondescription_42.impl_set_information('type', "service")
optiondescription_41 = OptionDescription(name="services", doc="services", children=[optiondescription_42], properties=frozenset({"hidden"}))
optiondescription_39 = OptionDescription(name="2", doc="2", children=[optiondescription_40, optiondescription_41])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_35, optiondescription_39])

View file

@ -2,15 +2,27 @@
<rougail version="0.10"> <rougail version="0.10">
<services> <services>
<service name="test"> <service name="test">
<certificate private="/etc/pki/tls/private/example.key" authority="/etc/pki/ca-trust/source/anchors/ca_example.crt" owner="owner" owner_type="variable" group="group" group_type="variable">/etc/pki/tls/certs/example.crt</certificate> <certificate private="private" authority="authority" owner="owner" owner_type="variable" group="group" group_type="variable">certificate</certificate>
</service> </service>
</services> </services>
<variables> <variables>
<variable name="certificate" type="filename">
<value>/etc/pki/tls/certs/example.crt</value>
</variable>
<variable name="private" type="filename">
<value>/etc/pki/tls/private/example.key</value>
</variable>
<variable name="authority" type="filename">
<value>/etc/pki/ca-trust/source/anchors/ca_example.crt</value>
</variable>
<variable name="owner" type="unix_user"> <variable name="owner" type="unix_user">
<value>example</value> <value>example</value>
</variable> </variable>
<variable name="group" type="unix_user"> <variable name="group" type="unix_user">
<value>example</value> <value>example</value>
</variable> </variable>
<variable name="server_name" type="domainname">
<value>example.net</value>
</variable>
</variables> </variables>
</rougail> </rougail>

View file

@ -3,15 +3,27 @@ services:
- service: - service:
- name: test - name: test
certificate: certificate:
- private: /etc/pki/tls/private/example.key - private: private
authority: /etc/pki/ca-trust/source/anchors/ca_example.crt authority: authority
owner: owner owner: owner
owner_type: variable owner_type: variable
group: group group: group
group_type: variable group_type: variable
text: /etc/pki/tls/certs/example.crt text: certificate
variables: variables:
- variable: - variable:
- name: certificate
type: filename
value:
- text: /etc/pki/tls/certs/example.crt
- name: private
type: filename
value:
- text: /etc/pki/tls/private/example.key
- name: authority
type: filename
value:
- text: /etc/pki/ca-trust/source/anchors/ca_example.crt
- name: owner - name: owner
type: unix_user type: unix_user
value: value:
@ -20,3 +32,7 @@ variables:
type: unix_user type: unix_user
value: value:
- text: example - text: example
- name: server_name
type: domainname
value:
- text: example.net

View file

@ -2,15 +2,27 @@
<rougail version="0.10"> <rougail version="0.10">
<services> <services>
<service name="test"> <service name="test">
<certificate private="/etc/pki/tls/private/example.key" authority="/etc/pki/ca-trust/source/anchors/ca_example.crt" owner="owner" owner_type="variable" group="group" group_type="variable">/etc/pki/tls/certs/example.crt</certificate> <certificate private="private" authority="authority" owner="owner" owner_type="variable" group="group" group_type="variable">certificate</certificate>
</service> </service>
</services> </services>
<variables> <variables>
<variable name="certificate" type="filename">
<value>/etc/pki/tls/certs/example.crt</value>
</variable>
<variable name="private" type="filename">
<value>/etc/pki/tls/private/example.key</value>
</variable>
<variable name="authority" type="filename">
<value>/etc/pki/ca-trust/source/anchors/ca_example.crt</value>
</variable>
<variable name="owner"> <variable name="owner">
<value>example</value> <value>example</value>
</variable> </variable>
<variable name="group" type="unix_user"> <variable name="group" type="unix_user">
<value>example</value> <value>example</value>
</variable> </variable>
<variable name="server_name" type="domainname">
<value>example.net</value>
</variable>
</variables> </variables>
</rougail> </rougail>

View file

@ -3,15 +3,27 @@ services:
- service: - service:
- name: test - name: test
certificate: certificate:
- private: /etc/pki/tls/private/example.key - private: private
authority: /etc/pki/ca-trust/source/anchors/ca_example.crt authority: authority
owner: owner owner: owner
owner_type: variable owner_type: variable
group: group group: group
group_type: variable group_type: variable
text: /etc/pki/tls/certs/example.crt text: certificate
variables: variables:
- variable: - variable:
- name: certificate
type: filename
value:
- text: /etc/pki/tls/certs/example.crt
- name: private
type: filename
value:
- text: /etc/pki/tls/private/example.key
- name: authority
type: filename
value:
- text: /etc/pki/ca-trust/source/anchors/ca_example.crt
- name: owner - name: owner
value: value:
- text: example - text: example
@ -19,3 +31,7 @@ variables:
type: unix_user type: unix_user
value: value:
- text: example - text: example
- name: server_name
type: domainname
value:
- text: example.net

View file

@ -11,10 +11,18 @@
"owner": "default", "owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt" "value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
}, },
"rougail.server_name": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.authority": { "services.test_service.certificates.certificate.authority": {
"owner": "default", "owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt" "value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
}, },
"services.test_service.certificates.certificate.domain": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.name": { "services.test_service.certificates.certificate.name": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/certs/example.crt" "value": "/etc/pki/tls/certs/example.crt"

View file

@ -2,7 +2,9 @@
"rougail.certificate": "/etc/pki/tls/certs/example.crt", "rougail.certificate": "/etc/pki/tls/certs/example.crt",
"rougail.private": "/etc/pki/tls/private/example.key", "rougail.private": "/etc/pki/tls/private/example.key",
"rougail.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt", "rougail.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt",
"rougail.server_name": "example.net",
"services.test_service.certificates.certificate.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt", "services.test_service.certificates.certificate.authority": "/etc/pki/ca-trust/source/anchors/ca_example.crt",
"services.test_service.certificates.certificate.domain": "example.net",
"services.test_service.certificates.certificate.name": "/etc/pki/tls/certs/example.crt", "services.test_service.certificates.certificate.name": "/etc/pki/tls/certs/example.crt",
"services.test_service.certificates.certificate.private": "/etc/pki/tls/private/example.key", "services.test_service.certificates.certificate.private": "/etc/pki/tls/private/example.key",
"services.test_service.certificates.certificate.activate": true, "services.test_service.certificates.certificate.activate": true,

View file

@ -11,10 +11,18 @@
"owner": "default", "owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt" "value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
}, },
"rougail.server_name": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.authority": { "services.test_service.certificates.certificate.authority": {
"owner": "default", "owner": "default",
"value": "/etc/pki/ca-trust/source/anchors/ca_example.crt" "value": "/etc/pki/ca-trust/source/anchors/ca_example.crt"
}, },
"services.test_service.certificates.certificate.domain": {
"owner": "default",
"value": "example.net"
},
"services.test_service.certificates.certificate.name": { "services.test_service.certificates.certificate.name": {
"owner": "default", "owner": "default",
"value": "/etc/pki/tls/certs/example.crt" "value": "/etc/pki/tls/certs/example.crt"

View file

@ -21,16 +21,19 @@ except:
option_1 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"})) option_1 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_2 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"})) option_2 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
option_3 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"})) option_3 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3]) option_4 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
option_8 = SymLinkOption(name="authority", opt=option_3) optiondescription_14 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3, option_4])
option_9 = SymLinkOption(name="name", opt=option_1) option_9 = SymLinkOption(name="authority", opt=option_3)
option_10 = SymLinkOption(name="private", opt=option_2) option_10 = SymLinkOption(name="domain", opt=option_4)
option_7 = BoolOption(name="activate", doc="activate", default=True) option_11 = SymLinkOption(name="name", opt=option_1)
optiondescription_6 = OptionDescription(name="certificate", doc="certificate", children=[option_8, option_9, option_10, option_7]) option_12 = SymLinkOption(name="private", opt=option_2)
optiondescription_5 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_6]) option_8 = BoolOption(name="activate", doc="activate", default=True)
option_4 = BoolOption(name="activate", doc="activate", default=True) optiondescription_7 = OptionDescription(name="certificate", doc="certificate", children=[option_9, option_10, option_11, option_12, option_8])
option_11 = BoolOption(name="manage", doc="manage", default=True) optiondescription_7.impl_set_information('type', "client")
optiondescription_14 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_5, option_4, option_11]) optiondescription_6 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_7])
optiondescription_14.impl_set_information('type', "service") option_5 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_13 = OptionDescription(name="services", doc="services", children=[optiondescription_14], properties=frozenset({"hidden"})) option_13 = BoolOption(name="manage", doc="manage", default=True)
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_12, optiondescription_13]) optiondescription_16 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_6, option_5, option_13])
optiondescription_16.impl_set_information('type', "service")
optiondescription_15 = OptionDescription(name="services", doc="services", children=[optiondescription_16], properties=frozenset({"hidden"}))
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_14, optiondescription_15])

View file

@ -21,33 +21,39 @@ except:
option_1 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"})) option_1 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_2 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"})) option_2 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
option_3 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"})) option_3 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
optiondescription_24 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3]) option_4 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
option_11 = SymLinkOption(name="authority", opt=option_3) optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[option_1, option_2, option_3, option_4])
option_12 = SymLinkOption(name="name", opt=option_1) option_13 = SymLinkOption(name="authority", opt=option_3)
option_13 = SymLinkOption(name="private", opt=option_2) option_14 = SymLinkOption(name="domain", opt=option_4)
option_10 = BoolOption(name="activate", doc="activate", default=True) option_15 = SymLinkOption(name="name", opt=option_1)
optiondescription_9 = OptionDescription(name="certificate", doc="certificate", children=[option_11, option_12, option_13, option_10]) option_16 = SymLinkOption(name="private", opt=option_2)
optiondescription_8 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_9]) option_12 = BoolOption(name="activate", doc="activate", default=True)
option_7 = BoolOption(name="activate", doc="activate", default=True) optiondescription_11 = OptionDescription(name="certificate", doc="certificate", children=[option_13, option_14, option_15, option_16, option_12])
option_14 = BoolOption(name="manage", doc="manage", default=True) optiondescription_11.impl_set_information('type', "client")
optiondescription_26 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_8, option_7, option_14]) optiondescription_10 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_11])
optiondescription_26.impl_set_information('type', "service") option_9 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_25 = OptionDescription(name="services", doc="services", children=[optiondescription_26], properties=frozenset({"hidden"})) option_17 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_23 = OptionDescription(name="1", doc="1", children=[optiondescription_24, optiondescription_25]) optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_10, option_9, option_17])
option_4 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_5 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
option_6 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
optiondescription_28 = OptionDescription(name="rougail", doc="Rougail", children=[option_4, option_5, option_6])
option_19 = SymLinkOption(name="authority", opt=option_6)
option_20 = SymLinkOption(name="name", opt=option_4)
option_21 = SymLinkOption(name="private", opt=option_5)
option_18 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_17 = OptionDescription(name="certificate", doc="certificate", children=[option_19, option_20, option_21, option_18])
optiondescription_16 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_17])
option_15 = BoolOption(name="activate", doc="activate", default=True)
option_22 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_30 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_16, option_15, option_22])
optiondescription_30.impl_set_information('type', "service") optiondescription_30.impl_set_information('type', "service")
optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"})) optiondescription_29 = OptionDescription(name="services", doc="services", children=[optiondescription_30], properties=frozenset({"hidden"}))
optiondescription_27 = OptionDescription(name="2", doc="2", children=[optiondescription_28, optiondescription_29]) optiondescription_27 = OptionDescription(name="1", doc="1", children=[optiondescription_28, optiondescription_29])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_23, optiondescription_27]) option_5 = FilenameOption(name="certificate", doc="certificate", default="/etc/pki/tls/certs/example.crt", properties=frozenset({"mandatory", "normal"}))
option_6 = FilenameOption(name="private", doc="private", default="/etc/pki/tls/private/example.key", properties=frozenset({"mandatory", "normal"}))
option_7 = FilenameOption(name="authority", doc="authority", default="/etc/pki/ca-trust/source/anchors/ca_example.crt", properties=frozenset({"mandatory", "normal"}))
option_8 = DomainnameOption(name="server_name", doc="server_name", default="example.net", type='domainname', allow_ip=False, properties=frozenset({"mandatory", "normal"}))
optiondescription_32 = OptionDescription(name="rougail", doc="Rougail", children=[option_5, option_6, option_7, option_8])
option_22 = SymLinkOption(name="authority", opt=option_7)
option_23 = SymLinkOption(name="domain", opt=option_8)
option_24 = SymLinkOption(name="name", opt=option_5)
option_25 = SymLinkOption(name="private", opt=option_6)
option_21 = BoolOption(name="activate", doc="activate", default=True)
optiondescription_20 = OptionDescription(name="certificate", doc="certificate", children=[option_22, option_23, option_24, option_25, option_21])
optiondescription_20.impl_set_information('type', "client")
optiondescription_19 = OptionDescription(name="certificates", doc="certificates", children=[optiondescription_20])
option_18 = BoolOption(name="activate", doc="activate", default=True)
option_26 = BoolOption(name="manage", doc="manage", default=True)
optiondescription_34 = OptionDescription(name="test_service", doc="test.service", children=[optiondescription_19, option_18, option_26])
optiondescription_34.impl_set_information('type', "service")
optiondescription_33 = OptionDescription(name="services", doc="services", children=[optiondescription_34], properties=frozenset({"hidden"}))
optiondescription_31 = OptionDescription(name="2", doc="2", children=[optiondescription_32, optiondescription_33])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_27, optiondescription_31])

View file

@ -2,7 +2,7 @@
<rougail version="0.10"> <rougail version="0.10">
<services> <services>
<service name="test"> <service name="test">
<certificate private="private" private_type="variable" authority="authority" authority_type="variable" certificate_type="variable">certificate</certificate> <certificate private="private" authority="authority">certificate</certificate>
</service> </service>
</services> </services>
<variables> <variables>
@ -15,5 +15,8 @@
<variable name="authority" type="filename"> <variable name="authority" type="filename">
<value>/etc/pki/ca-trust/source/anchors/ca_example.crt</value> <value>/etc/pki/ca-trust/source/anchors/ca_example.crt</value>
</variable> </variable>
<variable name="server_name" type="domainname">
<value>example.net</value>
</variable>
</variables> </variables>
</rougail> </rougail>

View file

@ -4,10 +4,7 @@ services:
- name: test - name: test
certificate: certificate:
- private: private - private: private
private_type: variable
authority: authority authority: authority
authority_type: variable
certificate_type: variable
text: certificate text: certificate
variables: variables:
- variable: - variable:
@ -23,3 +20,7 @@ variables:
type: filename type: filename
value: value:
- text: /etc/pki/ca-trust/source/anchors/ca_example.crt - text: /etc/pki/ca-trust/source/anchors/ca_example.crt
- name: server_name
type: domainname
value:
- text: example.net

View file

@ -1,10 +0,0 @@
{
"rougail.general.mode_conteneur_actif": {
"owner": "default",
"value": null
},
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": null
}
}

View file

@ -1,4 +0,0 @@
{
"rougail.general.mode_conteneur_actif": null,
"rougail.general.mode_conteneur_actif2": null
}

View file

@ -1,10 +0,0 @@
{
"rougail.general.mode_conteneur_actif": {
"owner": "default",
"value": null
},
"rougail.general.mode_conteneur_actif2": {
"owner": "default",
"value": null
}
}

View file

@ -1,25 +0,0 @@
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
class func:
pass
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
loader = _SourceFileLoader('func', path)
spec = _spec_from_loader(loader.name, loader)
func_ = _module_from_spec(spec)
loader.exec_module(func_)
for function in dir(func_):
if function.startswith('_'):
continue
setattr(func, function, getattr(func_, function))
_load_functions('tests/dictionaries/../eosfunc/test.py')
try:
from tiramisu3 import *
except:
from tiramisu import *
option_2 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"normal"}))
option_3 = StrOption(name="mode_conteneur_actif2", doc="No change", properties=frozenset({"normal"}))
optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
optiondescription_4 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_4])

View file

@ -1,31 +0,0 @@
from importlib.machinery import SourceFileLoader as _SourceFileLoader
from importlib.util import spec_from_loader as _spec_from_loader, module_from_spec as _module_from_spec
class func:
pass
def _load_functions(path):
global _SourceFileLoader, _spec_from_loader, _module_from_spec, func
loader = _SourceFileLoader('func', path)
spec = _spec_from_loader(loader.name, loader)
func_ = _module_from_spec(spec)
loader.exec_module(func_)
for function in dir(func_):
if function.startswith('_'):
continue
setattr(func, function, getattr(func_, function))
_load_functions('tests/dictionaries/../eosfunc/test.py')
try:
from tiramisu3 import *
except:
from tiramisu import *
option_2 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"normal"}))
option_3 = StrOption(name="mode_conteneur_actif2", doc="No change", properties=frozenset({"normal"}))
optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2, option_3], properties=frozenset({"normal"}))
optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1])
optiondescription_7 = OptionDescription(name="1", doc="1", children=[optiondescription_8])
option_5 = StrOption(name="mode_conteneur_actif", doc="No change", properties=frozenset({"normal"}))
option_6 = StrOption(name="mode_conteneur_actif2", doc="No change", properties=frozenset({"normal"}))
optiondescription_4 = OptionDescription(name="general", doc="general", children=[option_5, option_6], properties=frozenset({"normal"}))
optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_4])
optiondescription_9 = OptionDescription(name="2", doc="2", children=[optiondescription_10])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_7, optiondescription_9])

View file

@ -1,8 +1,4 @@
{ {
"rougail.general.mode_conteneur_actif": {
"owner": "default",
"value": "non"
},
"rougail.enumfam.enumvar": { "rougail.enumfam.enumvar": {
"owner": "default", "owner": "default",
"value": null "value": null

View file

@ -1,4 +1,3 @@
{ {
"rougail.general.mode_conteneur_actif": "non",
"rougail.enumfam.enumvar": null "rougail.enumfam.enumvar": null
} }

View file

@ -1,8 +1,4 @@
{ {
"rougail.general.mode_conteneur_actif": {
"owner": "default",
"value": "non"
},
"rougail.enumfam.enumvar": { "rougail.enumfam.enumvar": {
"owner": "default", "owner": "default",
"value": null "value": null

View file

@ -18,10 +18,8 @@ try:
from tiramisu3 import * from tiramisu3 import *
except: except:
from tiramisu import * from tiramisu import *
option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"})) option_2 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"})) option_2.impl_set_information('help', "bla bla bla")
option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"})) optiondescription_1 = OptionDescription(name="enumfam", doc="enumfam", children=[option_2], properties=frozenset({"expert"}))
option_4.impl_set_information('help', "bla bla bla") optiondescription_3 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1])
optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_3])
optiondescription_5 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5])

View file

@ -18,18 +18,14 @@ try:
from tiramisu3 import * from tiramisu3 import *
except: except:
from tiramisu import * from tiramisu import *
option_2 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"})) option_2 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
optiondescription_1 = OptionDescription(name="general", doc="general", children=[option_2], properties=frozenset({"expert"})) option_2.impl_set_information('help', "bla bla bla")
optiondescription_1 = OptionDescription(name="enumfam", doc="enumfam", children=[option_2], properties=frozenset({"expert"}))
optiondescription_6 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1])
optiondescription_5 = OptionDescription(name="1", doc="1", children=[optiondescription_6])
option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"})) option_4 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
option_4.impl_set_information('help', "bla bla bla") option_4.impl_set_information('help', "bla bla bla")
optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"})) optiondescription_3 = OptionDescription(name="enumfam", doc="enumfam", children=[option_4], properties=frozenset({"expert"}))
optiondescription_10 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_1, optiondescription_3]) optiondescription_8 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_3])
optiondescription_9 = OptionDescription(name="1", doc="1", children=[optiondescription_10]) optiondescription_7 = OptionDescription(name="2", doc="2", children=[optiondescription_8])
option_6 = StrOption(name="mode_conteneur_actif", doc="No change", default="non", properties=frozenset({"expert", "mandatory"})) option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_5, optiondescription_7])
optiondescription_5 = OptionDescription(name="general", doc="general", children=[option_6], properties=frozenset({"expert"}))
option_8 = ChoiceOption(name="enumvar", doc="multi", values=(None,), properties=frozenset({"expert"}))
option_8.impl_set_information('help', "bla bla bla")
optiondescription_7 = OptionDescription(name="enumfam", doc="enumfam", children=[option_8], properties=frozenset({"expert"}))
optiondescription_12 = OptionDescription(name="rougail", doc="Rougail", children=[optiondescription_5, optiondescription_7])
optiondescription_11 = OptionDescription(name="2", doc="2", children=[optiondescription_12])
option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[optiondescription_9, optiondescription_11])

View file

@ -1,11 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10"> <rougail version="0.10">
<variables> <variables>
<family name="general" mode="expert">
<variable name="mode_conteneur_actif" type="string" description="No change">
<value>non</value>
</variable>
</family>
<family name="enumfam" mode="expert"> <family name="enumfam" mode="expert">
<variable name="enumvar" type="choice" description="multi" help="bla bla bla"> <variable name="enumvar" type="choice" description="multi" help="bla bla bla">
<choice type="nil"/> <choice type="nil"/>

View file

@ -1,15 +1,6 @@
version: '0.10' version: '0.10'
variables: variables:
- family: - family:
- name: general
mode: expert
variables:
- variable:
- name: mode_conteneur_actif
type: string
description: No change
value:
- text: non
- name: enumfam - name: enumfam
mode: expert mode: expert
variables: variables:

View file

@ -1,8 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10">
<services>
<service name="test">
<certificate private="/example.key" authority="ca_example.crt">/example.crt</certificate>
</service>
</services>
</rougail>

View file

@ -1,8 +0,0 @@
version: '0.10'
services:
- service:
- name: test
certificate:
- private: /example.key
authority: ca_example.crt
text: /example.crt

View file

@ -2,7 +2,7 @@
<rougail version="0.10"> <rougail version="0.10">
<services> <services>
<service name="test"> <service name="test">
<certificate private="private" private_type="variable" authority="authority" authority_type="variable" certificate_type="variable">certificate</certificate> <certificate private="private" authority="authority">certificate</certificate>
</service> </service>
</services> </services>
<variables> <variables>

View file

@ -1,8 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10">
<services>
<service name="test">
<certificate private="/example.key" authority="/ca_example.crt">example.crt</certificate>
</service>
</services>
</rougail>

View file

@ -1,8 +0,0 @@
version: '0.10'
services:
- service:
- name: test
certificate:
- private: /example.key
authority: /ca_example.crt
text: example.crt

View file

@ -2,7 +2,7 @@
<rougail version="0.10"> <rougail version="0.10">
<services> <services>
<service name="test"> <service name="test">
<certificate private="private" private_type="variable" authority="authority" authority_type="variable" certificate_type="variable">certificate</certificate> <certificate private="private" authority="authority">certificate</certificate>
</service> </service>
</services> </services>
<variables> <variables>

View file

@ -1,8 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10">
<services>
<service name="test">
<certificate private="example.key" authority="/ca_example.crt">/example.crt</certificate>
</service>
</services>
</rougail>

View file

@ -1,8 +0,0 @@
version: '0.10'
services:
- service:
- name: test
certificate:
- private: example.key
authority: /ca_example.crt
text: /example.crt

View file

@ -2,7 +2,7 @@
<rougail version="0.10"> <rougail version="0.10">
<services> <services>
<service name="test"> <service name="test">
<certificate private="private" private_type="variable" authority="authority" authority_type="variable" certificate_type="variable">certificate</certificate> <certificate private="private" authority="authority">certificate</certificate>
</service> </service>
</services> </services>
<variables> <variables>

View file

@ -5,9 +5,6 @@
<variable name="mode_conteneur_actif" type="string" description="No change"> <variable name="mode_conteneur_actif" type="string" description="No change">
<value/> <value/>
</variable> </variable>
<variable name="mode_conteneur_actif2" type="string" description="No change">
<value/>
</variable>
</family> </family>
</variables> </variables>
</rougail> </rougail>

View file

@ -9,8 +9,3 @@ variables:
description: No change description: No change
value: value:
- text: null - text: null
- name: mode_conteneur_actif2
type: string
description: No change
value:
- text: null