lib/cuckoo/common/config.py
# Copyright (C) 2010-2012 Cuckoo Sandbox Developers.
# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org
# See the file 'docs/LICENSE' for copying permission.
import os
import ConfigParser
from lib.cuckoo.common.constants import CUCKOO_ROOT
from lib.cuckoo.common.abstracts import Dictionary
from lib.cuckoo.common.exceptions import CuckooOperationalError
class Config:
"""Configuration file parser."""
def __init__(self, cfg=os.path.join(CUCKOO_ROOT, "conf", "cuckoo.conf")):
"""@param cfg: configuration file path."""
config = ConfigParser.ConfigParser()
config.read(cfg)
for section in config.sections():
setattr(self, section, Dictionary())
for name, raw_value in config.items(section):
try:
value = config.getboolean(section, name)
except ValueError:
try:
value = config.getint(section, name)
except ValueError:
value = config.get(section, name)
setattr(getattr(self, section), name, value)
def get(self, section):
"""Get option.
@param section: section to fetch.
@raise CuckooOperationalError: if section not found.
@return: option value.
"""
try:
return getattr(self, section)
except AttributeError as e:
raise CuckooOperationalError("Option %s is not found in configuration, error: %s" % (section, e))