From 773e8d118f1e45a80b23256b1289f12b34d2adf2 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sat, 23 Mar 2024 10:34:41 +0100 Subject: [PATCH] add repo.libs.faults.dict_as_toml --- bundles/infobeamer-cms/files/settings.toml | 4 ---- bundles/infobeamer-cms/items.py | 5 +---- bundles/infobeamer-monitor/files/config.toml | 4 ---- bundles/infobeamer-monitor/items.py | 5 +---- bundles/jugendhackt_tools/files/config.toml | 4 ---- bundles/jugendhackt_tools/items.py | 2 +- bundles/simple-icinga-dashboard/files/config.toml | 4 ---- bundles/simple-icinga-dashboard/items.py | 2 +- bundles/telegraf/files/telegraf.conf | 4 ---- bundles/telegraf/items.py | 5 +---- libs/faults.py | 11 +++++++++++ 11 files changed, 16 insertions(+), 34 deletions(-) delete mode 100644 bundles/infobeamer-cms/files/settings.toml delete mode 100644 bundles/infobeamer-monitor/files/config.toml delete mode 100644 bundles/jugendhackt_tools/files/config.toml delete mode 100644 bundles/simple-icinga-dashboard/files/config.toml delete mode 100644 bundles/telegraf/files/telegraf.conf diff --git a/bundles/infobeamer-cms/files/settings.toml b/bundles/infobeamer-cms/files/settings.toml deleted file mode 100644 index 12dcdb7..0000000 --- a/bundles/infobeamer-cms/files/settings.toml +++ /dev/null @@ -1,4 +0,0 @@ -<% - from tomlkit import dumps as toml_dumps - from bundlewrap.utils.text import toml_clean -%>${toml_clean(toml_dumps(repo.libs.faults.resolve_faults(config), sort_keys=True))} diff --git a/bundles/infobeamer-cms/items.py b/bundles/infobeamer-cms/items.py index 39820cc..2d2f8c0 100644 --- a/bundles/infobeamer-cms/items.py +++ b/bundles/infobeamer-cms/items.py @@ -68,10 +68,7 @@ for room, device_id in sorted(node.metadata.get('infobeamer-cms/rooms', {}).item files = { '/opt/infobeamer-cms/settings.toml': { - 'content_type': 'mako', - 'context': { - 'config': config, - }, + 'content': repo.libs.faults.dict_as_toml(config), 'triggers': { 'svc_systemd:infobeamer-cms:restart', }, diff --git a/bundles/infobeamer-monitor/files/config.toml b/bundles/infobeamer-monitor/files/config.toml deleted file mode 100644 index 12dcdb7..0000000 --- a/bundles/infobeamer-monitor/files/config.toml +++ /dev/null @@ -1,4 +0,0 @@ -<% - from tomlkit import dumps as toml_dumps - from bundlewrap.utils.text import toml_clean -%>${toml_clean(toml_dumps(repo.libs.faults.resolve_faults(config), sort_keys=True))} diff --git a/bundles/infobeamer-monitor/items.py b/bundles/infobeamer-monitor/items.py index ff7c0fd..683d240 100644 --- a/bundles/infobeamer-monitor/items.py +++ b/bundles/infobeamer-monitor/items.py @@ -1,10 +1,7 @@ assert node.has_bundle('infobeamer-cms') # uses same venv files['/opt/infobeamer-monitor/config.toml'] = { - 'content_type': 'mako', - 'context': { - 'config': node.metadata.get('infobeamer-monitor'), - }, + 'content': repo.libs.faults.dict_as_toml(node.metadata.get('infobeamer-monitor')), 'triggers': { 'svc_systemd:infobeamer-monitor:restart', }, diff --git a/bundles/jugendhackt_tools/files/config.toml b/bundles/jugendhackt_tools/files/config.toml deleted file mode 100644 index 7c4131d..0000000 --- a/bundles/jugendhackt_tools/files/config.toml +++ /dev/null @@ -1,4 +0,0 @@ -<% - from tomlkit import dumps as toml_dumps - from bundlewrap.utils.text import toml_clean -%>${toml_clean(toml_dumps(repo.libs.faults.resolve_faults(node.metadata.get('jugendhackt_tools')), sort_keys=True))} diff --git a/bundles/jugendhackt_tools/items.py b/bundles/jugendhackt_tools/items.py index 38afbb5..c2d0c6e 100644 --- a/bundles/jugendhackt_tools/items.py +++ b/bundles/jugendhackt_tools/items.py @@ -47,7 +47,7 @@ actions['jugendhackt_tools_migrate'] = { } files['/opt/jugendhackt_tools/config.toml'] = { - 'content_type': 'mako', + 'content': repo.libs.faults.dict_as_toml(node.metadata.get('jugendhackt_tools')), 'triggers': { 'svc_systemd:jugendhackt_tools:restart', }, diff --git a/bundles/simple-icinga-dashboard/files/config.toml b/bundles/simple-icinga-dashboard/files/config.toml deleted file mode 100644 index b72063a..0000000 --- a/bundles/simple-icinga-dashboard/files/config.toml +++ /dev/null @@ -1,4 +0,0 @@ -<% - from tomlkit import dumps as toml_dumps - from bundlewrap.utils.text import toml_clean -%>${toml_clean(toml_dumps(repo.libs.faults.resolve_faults(node.metadata['simple-icinga-dashboard']), sort_keys=True))} diff --git a/bundles/simple-icinga-dashboard/items.py b/bundles/simple-icinga-dashboard/items.py index 7568c86..a2b6f47 100644 --- a/bundles/simple-icinga-dashboard/items.py +++ b/bundles/simple-icinga-dashboard/items.py @@ -44,7 +44,7 @@ git_deploy = { files = { '/opt/simple-icinga-dashboard/config.toml': { - 'content_type': 'mako', + 'content': repo.libs.faults.dict_as_toml(node.metadata.get('simple-icinga-dashboard')), 'needs': { 'git_deploy:/opt/simple-icinga-dashboard/src', }, diff --git a/bundles/telegraf/files/telegraf.conf b/bundles/telegraf/files/telegraf.conf deleted file mode 100644 index 12dcdb7..0000000 --- a/bundles/telegraf/files/telegraf.conf +++ /dev/null @@ -1,4 +0,0 @@ -<% - from tomlkit import dumps as toml_dumps - from bundlewrap.utils.text import toml_clean -%>${toml_clean(toml_dumps(repo.libs.faults.resolve_faults(config), sort_keys=True))} diff --git a/bundles/telegraf/items.py b/bundles/telegraf/items.py index 8577cbb..81b6375 100644 --- a/bundles/telegraf/items.py +++ b/bundles/telegraf/items.py @@ -93,10 +93,7 @@ for name, config in sorted(node.metadata.get('telegraf/input_plugins/prometheus' files = { '/etc/telegraf/telegraf.conf': { - 'content_type': 'mako', - 'context': { - 'config': telegraf_config, - }, + 'content': repo.libs.faults.dict_as_toml(telegraf_config), 'triggers': { 'svc_systemd:telegraf:restart', }, diff --git a/libs/faults.py b/libs/faults.py index 8990b64..848ea84 100644 --- a/libs/faults.py +++ b/libs/faults.py @@ -1,7 +1,10 @@ from json import dumps, loads +from tomlkit import dumps as toml_dumps + from bundlewrap.metadata import metadata_to_json from bundlewrap.utils import Fault +from bundlewrap.utils.text import toml_clean def resolve_faults(dictionary: dict) -> dict: @@ -45,3 +48,11 @@ def dict_as_json(json): lambda o: metadata_to_json(o) + '\n', o=json ) + + +def dict_as_toml(toml): + return Fault( + 'dict_as_toml', + lambda o: toml_clean(toml_dumps(resolve_faults(o), sort_keys=True)) + '\n', + o=toml + )