diff --git a/bundles/simple-icinga-dashboard/files/config.toml b/bundles/simple-icinga-dashboard/files/config.toml index fa7a45f..b72063a 100644 --- a/bundles/simple-icinga-dashboard/files/config.toml +++ b/bundles/simple-icinga-dashboard/files/config.toml @@ -1,4 +1,4 @@ <% from tomlkit import dumps as toml_dumps from bundlewrap.utils.text import toml_clean -%>${toml_clean(toml_dumps(repo.libs.toml.dict_to_toml(node.metadata['simple-icinga-dashboard'])))} +%>${toml_clean(toml_dumps(repo.libs.faults.resolve_faults(node.metadata['simple-icinga-dashboard']), sort_keys=True))} diff --git a/bundles/telegraf/files/telegraf.conf b/bundles/telegraf/files/telegraf.conf index 1006843..12dcdb7 100644 --- a/bundles/telegraf/files/telegraf.conf +++ b/bundles/telegraf/files/telegraf.conf @@ -1,4 +1,4 @@ <% from tomlkit import dumps as toml_dumps from bundlewrap.utils.text import toml_clean -%>${toml_clean(toml_dumps(repo.libs.toml.dict_to_toml(config)))} +%>${toml_clean(toml_dumps(repo.libs.faults.resolve_faults(config), sort_keys=True))} diff --git a/libs/faults.py b/libs/faults.py new file mode 100644 index 0000000..2995249 --- /dev/null +++ b/libs/faults.py @@ -0,0 +1,6 @@ +from json import loads, dumps + +from bundlewrap.metadata import metadata_to_json + +def resolve_faults(dictionary: dict) -> dict: + return loads(metadata_to_json(dictionary)) diff --git a/libs/toml.py b/libs/toml.py deleted file mode 100644 index 11c7307..0000000 --- a/libs/toml.py +++ /dev/null @@ -1,19 +0,0 @@ -from tomlkit import document as toml_document - -from bundlewrap.utils import Fault - -# Copied from bw core, because bw core doesn't support faults -def dict_to_toml(dict_obj): - toml_doc = toml_document() - for key, value in sorted(dict_obj.items()): - if isinstance(value, tuple): - toml_doc[key] = list(value) - elif isinstance(value, set): - toml_doc[key] = sorted(value) - elif isinstance(value, dict): - toml_doc[key] = dict_to_toml(value) - elif isinstance(value, Fault): - toml_doc[key] = str(value) - else: - toml_doc[key] = value - return toml_doc