Merge branch 'yaml' into 'master'

yaml config

See merge request sum7/ejabberd-metrics!4
This commit is contained in:
Martin/Geno 2020-03-07 11:06:17 +01:00
commit 1a3782ce97
4 changed files with 36 additions and 24 deletions

1
.gitignore vendored
View File

@ -114,3 +114,4 @@ venv
# config
config.json
config.yml

View File

@ -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)

View File

@ -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
}

View File

@ -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