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>
This commit is contained in:
parent
c8d88a537d
commit
d827444889
|
@ -114,3 +114,4 @@ venv
|
||||||
|
|
||||||
# config
|
# config
|
||||||
config.json
|
config.json
|
||||||
|
config.yml
|
||||||
|
|
15
config.py
15
config.py
|
@ -1,20 +1,23 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import json
|
|
||||||
import sys
|
import sys
|
||||||
from os import environ
|
from os import environ
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
from ruamel.yaml import YAML
|
||||||
|
from ruamel.yaml.parser import ParserError
|
||||||
|
from ruamel.yaml.scanner import ScannerError
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# class variables
|
# class variables
|
||||||
self.content = None
|
self.content = None
|
||||||
self.conf_file = Path('/etc/ejabberd-metrics.conf')
|
self.conf_file = Path('/etc/ejabberd-metrics.yml')
|
||||||
|
|
||||||
# dev config overwrite
|
# dev config overwrite
|
||||||
if environ.get('ejabberd_metrics_dev'):
|
if environ.get('ejabberd_metrics_dev'):
|
||||||
self.conf_file = Path('config.json')
|
self.conf_file = Path('config.yml')
|
||||||
|
|
||||||
# read config file
|
# read config file
|
||||||
self._read()
|
self._read()
|
||||||
|
@ -23,13 +26,13 @@ class Config:
|
||||||
"""init the config object with this method"""
|
"""init the config object with this method"""
|
||||||
self._check()
|
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:
|
with open(self.conf_file, 'r', encoding='utf-8') as f:
|
||||||
try:
|
try:
|
||||||
self.content = json.load(f)
|
self.content = YAML(typ='safe').load(f)
|
||||||
|
|
||||||
# catch json decoding errors
|
# catch json decoding errors
|
||||||
except json.JSONDecodeError as err:
|
except (ParserError, ScannerError) as err:
|
||||||
print(err, file=sys.stderr)
|
print(err, file=sys.stderr)
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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
|
Loading…
Reference in New Issue