From fc686e9b7fed05846517f491b5c19250440e52cf Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Mon, 8 Mar 2021 17:56:28 +0100 Subject: [PATCH] if name is a variable, it could be disabled --- src/rougail/template/base.py | 2 +- .../70services_ip_disabled/00-base.xml | 18 ++++++++++++++ .../70services_ip_disabled/__init__.py | 0 .../makedict/after.json | 14 +++++++++++ .../70services_ip_disabled/makedict/base.json | 5 ++++ .../makedict/before.json | 14 +++++++++++ .../system/nut.service.d/rougail_ip.conf | 2 ++ .../result/tmpfiles.d/rougail.conf | 0 .../70services_ip_disabled/tiramisu/base.py | 24 +++++++++++++++++++ 9 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 tests/dictionaries/70services_ip_disabled/00-base.xml create mode 100644 tests/dictionaries/70services_ip_disabled/__init__.py create mode 100644 tests/dictionaries/70services_ip_disabled/makedict/after.json create mode 100644 tests/dictionaries/70services_ip_disabled/makedict/base.json create mode 100644 tests/dictionaries/70services_ip_disabled/makedict/before.json create mode 100644 tests/dictionaries/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf create mode 100644 tests/dictionaries/70services_ip_disabled/result/tmpfiles.d/rougail.conf create mode 100644 tests/dictionaries/70services_ip_disabled/tiramisu/base.py diff --git a/src/rougail/template/base.py b/src/rougail/template/base.py index a609d581..83c5a3cf 100644 --- a/src/rougail/template/base.py +++ b/src/rougail/template/base.py @@ -241,7 +241,7 @@ class RougailBaseTemplate: variable = filevar['variable'] else: variable = None - filenames = filevar['name'] + filenames = filevar.get('name') if not isinstance(filenames, list): filenames = [filenames] if variable and not isinstance(variable, list): diff --git a/tests/dictionaries/70services_ip_disabled/00-base.xml b/tests/dictionaries/70services_ip_disabled/00-base.xml new file mode 100644 index 00000000..6167071b --- /dev/null +++ b/tests/dictionaries/70services_ip_disabled/00-base.xml @@ -0,0 +1,18 @@ + + + + + + + nut_monitor_host + + + + + + 192.168.0.1 + + + + diff --git a/tests/dictionaries/70services_ip_disabled/__init__.py b/tests/dictionaries/70services_ip_disabled/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/70services_ip_disabled/makedict/after.json b/tests/dictionaries/70services_ip_disabled/makedict/after.json new file mode 100644 index 00000000..f74a308d --- /dev/null +++ b/tests/dictionaries/70services_ip_disabled/makedict/after.json @@ -0,0 +1,14 @@ +{ + "services.nut.ip.nut_monitor_host.activate": { + "owner": "default", + "value": true + }, + "services.nut.activate": { + "owner": "default", + "value": true + }, + "services.nut.manage": { + "owner": "default", + "value": true + } +} diff --git a/tests/dictionaries/70services_ip_disabled/makedict/base.json b/tests/dictionaries/70services_ip_disabled/makedict/base.json new file mode 100644 index 00000000..552126f5 --- /dev/null +++ b/tests/dictionaries/70services_ip_disabled/makedict/base.json @@ -0,0 +1,5 @@ +{ + "services.nut.ip.nut_monitor_host.activate": true, + "services.nut.activate": true, + "services.nut.manage": true +} diff --git a/tests/dictionaries/70services_ip_disabled/makedict/before.json b/tests/dictionaries/70services_ip_disabled/makedict/before.json new file mode 100644 index 00000000..f74a308d --- /dev/null +++ b/tests/dictionaries/70services_ip_disabled/makedict/before.json @@ -0,0 +1,14 @@ +{ + "services.nut.ip.nut_monitor_host.activate": { + "owner": "default", + "value": true + }, + "services.nut.activate": { + "owner": "default", + "value": true + }, + "services.nut.manage": { + "owner": "default", + "value": true + } +} diff --git a/tests/dictionaries/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf b/tests/dictionaries/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf new file mode 100644 index 00000000..9c0580a9 --- /dev/null +++ b/tests/dictionaries/70services_ip_disabled/result/systemd/system/nut.service.d/rougail_ip.conf @@ -0,0 +1,2 @@ +[Service] +IPAddressDeny=any diff --git a/tests/dictionaries/70services_ip_disabled/result/tmpfiles.d/rougail.conf b/tests/dictionaries/70services_ip_disabled/result/tmpfiles.d/rougail.conf new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/70services_ip_disabled/tiramisu/base.py b/tests/dictionaries/70services_ip_disabled/tiramisu/base.py new file mode 100644 index 00000000..fafb6505 --- /dev/null +++ b/tests/dictionaries/70services_ip_disabled/tiramisu/base.py @@ -0,0 +1,24 @@ +from importlib.machinery import SourceFileLoader +from importlib.util import spec_from_loader, module_from_spec +loader = SourceFileLoader('func', 'tests/dictionaries/../eosfunc/test.py') +spec = spec_from_loader(loader.name, loader) +func = module_from_spec(spec) +loader.exec_module(func) +for key, value in dict(locals()).items(): + if key != ['SourceFileLoader', 'func']: + setattr(func, key, value) +try: + from tiramisu3 import * +except: + from tiramisu import * +option_2 = IPOption(name="nut_monitor_host", doc="nut_monitor_host", default="192.168.0.1", allow_reserved=True, properties=frozenset({"disabled", "mandatory", "normal"})) +option_1 = OptionDescription(name="rougail", doc="rougail", children=[option_2]) +option_7 = SymLinkOption(name="name", opt=option_2) +option_8 = BoolOption(name="activate", doc="activate", default=True) +option_6 = OptionDescription(name="nut_monitor_host", doc="nut_monitor_host", children=[option_7, option_8]) +option_5 = OptionDescription(name="ip", doc="ip", children=[option_6]) +option_9 = BoolOption(name="activate", doc="activate", default=True) +option_10 = BoolOption(name="manage", doc="manage", default=True) +option_4 = OptionDescription(name="nut", doc="nut", children=[option_5, option_9, option_10]) +option_3 = OptionDescription(name="services", doc="services", children=[option_4], properties=frozenset({"hidden"})) +option_0 = OptionDescription(name="baseoption", doc="baseoption", children=[option_1, option_3])