aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornico <nico@magicbroccoli.de>2020-03-06 11:58:01 +0100
committernico <nico@magicbroccoli.de>2020-03-06 12:46:48 +0100
commitd82744488951d55d5e5a95b41136a5719d8c5534 (patch)
treef75e0c3bb45d4e172e1a4128fc34f3954e7ec46f
parentc8d88a537d3afdc10618e92ea63dc353a3250058 (diff)
yaml config
+ implement yaml config file parsing * update default config file * update global config file from .conf to .yml ( debatable ) Signed-off-by: nico <nico@magicbroccoli.de>
-rw-r--r--.gitignore1
-rw-r--r--config.py15
-rw-r--r--ejabberd-metrics.conf.default18
-rw-r--r--ejabberd-metrics.yml.default26
4 files changed, 36 insertions, 24 deletions
diff --git a/.gitignore b/.gitignore
index b4c2e09..3c0dff5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -114,3 +114,4 @@ venv
# config
config.json
+config.yml
diff --git a/config.py b/config.py
index da20e66..20793e8 100644
--- a/config.py
+++ b/config.py
@@ -1,20 +1,23 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
-import json
import sys
from os import environ
from pathlib import Path
+from ruamel.yaml import YAML
+from ruamel.yaml.parser import ParserError
+from ruamel.yaml.scanner import ScannerError
+
class Config:
def __init__(self):
# class variables
self.content = None
- self.conf_file = Path('/etc/ejabberd-metrics.conf')
+ self.conf_file = Path('/etc/ejabberd-metrics.yml')
# dev config overwrite
if environ.get('ejabberd_metrics_dev'):
- self.conf_file = Path('config.json')
+ self.conf_file = Path('config.yml')
# read config file
self._read()
@@ -23,13 +26,13 @@ class Config:
"""init the config object with this method"""
self._check()
- # open and load json content from config
+ # open file as an iostream
with open(self.conf_file, 'r', encoding='utf-8') as f:
try:
- self.content = json.load(f)
+ self.content = YAML(typ='safe').load(f)
# catch json decoding errors
- except json.JSONDecodeError as err:
+ except (ParserError, ScannerError) as err:
print(err, file=sys.stderr)
exit(1)
diff --git a/ejabberd-metrics.conf.default b/ejabberd-metrics.conf.default
deleted file mode 100644
index ad984aa..0000000
--- a/ejabberd-metrics.conf.default
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "url": "http://[::1]:5280/api",
- "login": {
- "user": "metric-user",
- "server": "chat.sum7.eu",
- "password": "password"
- },
- "api": "rest",
-
- "--comment": "influxdb",
- "influxdb_host": "localhost",
- "influxdb_port": 8086,
- "influxdb_db": "ejabberd",
-
- "--comment": "prometheus",
- "prometheus_port": 8080,
- "prometheus_refresh": 10
-}
diff --git a/ejabberd-metrics.yml.default b/ejabberd-metrics.yml.default
new file mode 100644
index 0000000..41487e0
--- /dev/null
+++ b/ejabberd-metrics.yml.default
@@ -0,0 +1,26 @@
+---
+# endpoint url
+url: "http://[::1]:5280/api"
+
+# user credentials to the endpoint url
+login:
+ user: "metric-user"
+ server: "chat.sum7.eu"
+ password: "password"
+
+# muc subdomain
+# default : "conference"
+muc_host: "chat"
+
+# api configuration
+# default : rpc
+api: "rest"
+
+# influx db configuration
+influxdb_host: "localhost"
+influxdb_port: 8086
+influxdb_db: "example"
+
+# prometheus configuration
+prometheus_port: 8080
+prometheus_refresh: 10