def parse_config(self, config_file):
        """parse config file and do basic sanity tests"""
        WesConfig.parse_config(self, config_file)

        # Sanity check config file
        # Check that all sections exist
        missing = {'daemon', 'seed_source', 'stream_source', 'drbg'} - \
                  set(self.config.sections())

        if len(missing) > 0:
            raise WesEntropyException(
                "Error parsing config file, missing required section(s) %s." %
                ", ".join(str(tmp) for tmp in missing))

        # Check that [daemon] contains required information
        missing = {'socket_path'} - \
                  set(self.config.options('daemon'))

        if len(missing) > 0:
            raise WesEntropyException(
                "Error parsing config file, missing required value(s) "
                "%s, in [conneciton]." %
                ", ".join(str(tmp) for tmp in missing))

        # Check that [stream_source] has at least one value, and that it's valid
        if len(self.config.options('stream_source')) < 1:
            raise WesEntropyException(
                "Error parsing config file, [stream_source] must have at "
                "least one option configured.")

        # Check that [seed_source] has at least one value, and that it's valid
        if len(self.config.options('seed_source')) < 1:
            raise WesEntropyException(
                "Error parsing config file, [seed_source] must have at "
                "least one option configured.")
    def __init__(self, config, server):
        if server:
            self.default_config_file = '/etc/wesentropy/server.conf'
        else:
            self.default_config_file = '/etc/wesentropy/client.conf'

        WesConfig.__init__(self, config, self.default_config_file)

        self.working_dir = self.config.get('DEFAULT', 'working_dir')

        self.socket_path = self.config.get('daemon', 'socket_path')

        self.seed_source = ast.literal_eval(
            self.config.get('seed_source',
                            self.config.options('seed_source')[0]))

        self.stream_source = ast.literal_eval(
            self.config.get('stream_source',
                            self.config.options('stream_source')[0]))

        self.drbg_spec = self.config.get('drbg', 'drbg_spec')
        self.reseed_rate = self.config.get('drbg', 'reseed_rate')
 def __init__(self, config):
     WesConfig.__init__(self, config, WesClientConfig.default_config_file)
     self.socket_path = self.config.get("daemon", "socket_path")