#!/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.ingest.globals import CONFIG_FILE


def get_config():
    """Return the ConfigParser object with defaults set."""
    configparser = SafeConfigParser()
    configparser.add_section('ingest')
    configparser.set('ingest', 'transfer_size', getenv(
        'TRANSFER_SIZE', '4 Mb'))
    configparser.set('ingest', 'volume_path', getenv(
        'VOLUME_PATH', '/tmp'))
    configparser.add_section('uniqueid')
    configparser.set('uniqueid', 'url', getenv(
        'UNIQUEID_URL', 'http://127.0.0.1:8051'))
    configparser.add_section('policy')
    configparser.set('policy', 'ingest_url', getenv(
        'POLICY_INGEST_URL', 'http://127.0.0.1:8181/ingest'))
    configparser.add_section('archiveinterface')
    configparser.set('archiveinterface', 'url', getenv(
        'ARCHIVEINTERFACE_URL', 'http://127.0.0.1:8080'))
    configparser.add_section('metadata')
    configparser.set('metadata', 'ingest_url', getenv(
        'METADATA_INGEST_URL', 'http://127.0.0.1:8121/ingest'))
    configparser.add_section('database')
    configparser.set('database', 'peewee_url', getenv(
        'PEEWEE_URL', 'sqliteext:///db.sqlite3'))
    configparser.set('database', 'connect_attempts', getenv(
        'DATABASE_CONNECT_ATTEMPTS', '10'))
    configparser.set('database', 'connect_wait', getenv(
        'DATABASE_CONNECT_WAIT', '20'))
    configparser.add_section('celery')
    configparser.set('celery', 'broker_url', getenv(
        'BROKER_URL', 'pyamqp://'))
    configparser.set('celery', 'backend_url', getenv(
        'BACKEND_URL', 'rpc://'))
    configparser.read(CONFIG_FILE)
    return configparser
