Source code for pacifica.notifications.config

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""Configuration reading and validation module."""
from os import getenv
try:
    from ConfigParser import SafeConfigParser
except ImportError:  # pragma: no cover python 2 vs 3 issue
    from configparser import ConfigParser as SafeConfigParser
from pacifica.notifications.globals import CONFIG_FILE


[docs]def get_config(): """Return the ConfigParser object with defaults set.""" configparser = SafeConfigParser({ 'default_user': getenv( 'DEFAULT_USER', 'default_user' ) }) configparser.add_section('celery') configparser.set('celery', 'broker_url', getenv( 'BROKER_URL', 'redis://localhost:6379/0')) configparser.set('celery', 'backend_url', getenv( 'BACKEND_URL', 'rpc://')) configparser.add_section('notifications') configparser.set('notifications', 'user_header', getenv( 'USER_HEADER', 'Http-Remote-User')) configparser.set('notifications', 'policy_url', getenv( 'POLICY_URL', 'http://localhost:8181')) configparser.add_section('database') configparser.set('database', 'peewee_url', getenv( 'PEEWEE_URL', 'postgres://notifications:notifications@localhost/pacifica_notifications')) configparser.set('database', 'connect_attempts', getenv( 'DATABASE_CONNECT_ATTEMPTS', '10')) configparser.set('database', 'connect_wait', getenv( 'DATABASE_CONNECT_WAIT', '20')) configparser.read(CONFIG_FILE) return configparser