bundles/simple-icinga-dashboard: config is a toml file now
Some checks failed
bundlewrap/pipeline/head There was a failure building this commit

This commit is contained in:
Franzi 2021-04-10 16:08:52 +02:00
parent b33ddaadb5
commit 36bd6f5755
Signed by: kunsi
GPG key ID: 12E3D2136B818350
5 changed files with 39 additions and 26 deletions

View file

@ -1,16 +0,0 @@
[icinga2_api]
baseurl = ${api_url}
username = ${api_user}
password = ${api_password}
[filters]
hosts = ${host_filter}
services = ${service_filter}
[prettify]
% for search, replace in sorted(replacements.items()):
${search.lower()} = ${replace}
% endfor
[output]
filename = /opt/simple-icinga-dashboard/out/index.html

View file

@ -1,3 +1,7 @@
from tomlkit import dumps as toml_dumps
from bundlewrap.utils.text import toml_clean
users = {
'icinga_dashboard': {
'home': '/opt/simple-icinga-dashboard',
@ -19,9 +23,8 @@ git_deploy = {
}
files = {
'/opt/simple-icinga-dashboard/src/config.conf': {
'content_type': 'mako',
'context': node.metadata['simple-icinga-dashboard'],
'/opt/simple-icinga-dashboard/src/config.toml': {
'content': toml_clean(toml_dumps(repo.libs.toml.dict_to_toml(node.metadata['simple-icinga-dashboard']))),
'needs': {
'git_deploy:/opt/simple-icinga-dashboard/src',
},

View file

@ -9,4 +9,9 @@ defaults = {
},
},
},
'simple-icinga-dashboard': {
'output': {
'filename': '/opt/simple-icinga-dashboard/out/index.html',
},
},
}

19
libs/toml.py Normal file
View file

@ -0,0 +1,19 @@
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

View file

@ -33,7 +33,6 @@ nodes['ovh.icinga2'] = {
'dashboard': {
'password': vault.password_for('ovh.icinga2 icinga2 api_user dashboard'),
'permissions': {
'objects/query/Host',
'objects/query/Service'
},
},
@ -106,12 +105,15 @@ nodes['ovh.icinga2'] = {
},
},
'simple-icinga-dashboard': {
'api_url': 'https://127.0.0.1:5665',
'api_user': 'dashboard',
'api_password': vault.password_for('ovh.icinga2 icinga2 api_user dashboard'),
'host_filter': '"checks_with_sms" in host.groups',
'service_filter': '"checks_with_sms" in service.groups',
'replacements': {
'icinga2_api': {
'baseurl': 'https://127.0.0.1:5665',
'username': 'dashboard',
'password': vault.password_for('ovh.icinga2 icinga2 api_user dashboard'),
},
'filters': {
'services': '"checks_with_sms" in service.groups',
},
'prettify': {
'CONTENT': '',
'NGINX': 'WEBSERVER',
'PROCESS': 'SERVICE',