93 lines
4.0 KiB
Python
93 lines
4.0 KiB
Python
import yaml
|
|
import sys
|
|
from .logger import getDebugLogger
|
|
DEBUG = getDebugLogger()
|
|
|
|
default = {
|
|
'AccessTokenLifeTime': 1800,
|
|
'Mail': {
|
|
'URL': '',
|
|
'port': 0,
|
|
'user': '',
|
|
'passwd': '',
|
|
'email': '',
|
|
'crypt': 'STARTTLS'
|
|
}
|
|
}
|
|
|
|
class ConifgParser():
|
|
def __init__(self, file='config.yml'):
|
|
self.file = file
|
|
with open(file, 'r') as f:
|
|
self.config = yaml.safe_load(f)
|
|
|
|
if 'Database' not in self.config:
|
|
self.__error__('Wrong Configuration for Database. You should configure databaseconfig with "URL", "user", "passwd", "database"')
|
|
if 'URL' not in self.config['Database'] or 'user' not in self.config['Database'] or 'passwd' not in self.config['Database'] or 'database' not in self.config['Database']:
|
|
self.__error__('Wrong Configuration for Database. You should configure databaseconfig with "URL", "user", "passwd", "database"')
|
|
|
|
self.db = self.config['Database']
|
|
DEBUG.debug("Set Databaseconfig: {}".format(self.db))
|
|
|
|
if 'LDAP' not in self.config:
|
|
self.__error__('Wrong Configuration for LDAP. You should configure ldapconfig with "URL" and "dn"')
|
|
if 'URL' not in self.config['LDAP'] or 'dn' not in self.config['LDAP']:
|
|
self.__error__('Wrong Configuration for LDAP. You should configure ldapconfig with "URL" and "dn"')
|
|
if 'port' not in self.config['LDAP']:
|
|
DEBUG.info('No Config for port in LDAP found. Set it to default: {}'.format(389))
|
|
self.config['LDAP']['port'] = 389
|
|
self.ldap = self.config['LDAP']
|
|
DEBUG.info("Set LDAPconfig: {}".format(self.ldap))
|
|
if 'AccessTokenLifeTime' in self.config:
|
|
self.accessTokenLifeTime = int(self.config['AccessTokenLifeTime'])
|
|
DEBUG.info("Set AccessTokenLifeTime: {}".format(self.accessTokenLifeTime))
|
|
else:
|
|
self.accessTokenLifeTime = default['AccessTokenLifeTime']
|
|
DEBUG.info("No Config for AccessTokenLifetime found. Set it to default: {}".format(self.accessTokenLifeTime))
|
|
|
|
if 'Mail' not in self.config:
|
|
self.config['Mail'] = default['Mail']
|
|
DEBUG.info('No Conifg for Mail found. Set it to defaul: {}'.format(self.config['Mail']))
|
|
if 'URL' not in self.config['Mail']:
|
|
self.config['Mail']['URL'] = default['Mail']['URL']
|
|
DEBUG.info("No Config for URL in Mail found. Set it to default")
|
|
if 'port' not in self.config['Mail']:
|
|
self.config['Mail']['port'] = default['Mail']['port']
|
|
DEBUG.info("No Config for port in Mail found. Set it to default")
|
|
else:
|
|
self.config['Mail']['port'] = int(self.config['Mail']['port'])
|
|
DEBUG.info("No Conifg for port in Mail found. Set it to default")
|
|
if 'user' not in self.config['Mail']:
|
|
self.config['Mail']['user'] = default['Mail']['user']
|
|
DEBUG.info("No Config for user in Mail found. Set it to default")
|
|
if 'passwd' not in self.config['Mail']:
|
|
self.config['Mail']['passwd'] = default['Mail']['passwd']
|
|
DEBUG.info("No Config for passwd in Mail found. Set it to default")
|
|
if 'email' not in self.config['Mail']:
|
|
self.config['Mail']['email'] = default['Mail']['email']
|
|
DEBUG.info("No Config for email in Mail found. Set it to default")
|
|
if 'crypt' not in self.config['Mail']:
|
|
self.config['Mail']['crypt'] = default['Mail']['crypt']
|
|
DEBUG.info("No Config for crypt in Mail found. Set it to default")
|
|
self.mail = self.config['Mail']
|
|
DEBUG.info('Set Mailconfig: {}'.format(self.mail))
|
|
|
|
|
|
def getLDAP(self):
|
|
return self.ldap
|
|
|
|
def getDatabase(self):
|
|
return self.db
|
|
|
|
def getAccessToken(self):
|
|
return self.accessTokenLifeTime
|
|
|
|
def getMail(self):
|
|
return self.mail
|
|
|
|
def __error__(self, msg):
|
|
DEBUG.error(msg, exc_info=True)
|
|
sys.exit(-1)
|
|
|
|
if __name__ == '__main__':
|
|
ConifgParser() |