def __init__(self, config_file):
        '''
        Constructor
        '''
        self.http_headers = {'content-type': 'application/json', 'accept': 'application/json'}
        # Setup servers dict
        self.servers = configurator.read(config_file,
                                         configspec='configspecs/ws_shinken.cfg',
                                         server_mode=True)
        for server in self.servers:
            if self.servers[server]['cache'] == True:
                try:
                    cache_file = os.path.join(self.servers[server]['cache_working_directory'],
                                              '%s.csv' % (server, ))
                    self.servers[server]['file'] = open(cache_file, 'r+')
                except IOError:
                    raise CacheFileException(cache_file)

                cache_file = csv.DictReader(self.servers[server]['file'],
                                            dialect=CacheDialect,
                                            fieldnames=CACHE_DIALECT_FIELDS)

                self.servers[server]['csv'] = csv.DictWriter(self.servers[server]['file'],
                                                             dialect=CacheDialect,
                                                             fieldnames=CACHE_DIALECT_FIELDS)

                for cache_item in cache_file:
                    self.send_result(cache_item['return_code'],
                                     cache_item['output'],
                                     cache_item['service_description'],
                                     cache_item['time_stamp'],
                                     [server])
 def __init__(self, config_file):
     '''
     Read the config file and start NSCA connexions
     '''
     # Setup servers dict from config file
     self.servers = configurator.read(config_file,
                                      configspec='configspecs/nsca.cfg',
                                      server_mode=True)
     # start NSCA connexions
     for server in self.servers:
         self.servers[server]['notifier'] = pynsca.NSCANotifier(self.servers[server]['host'],
                                                                monitoring_port=int(self.servers[server]['port']),
                                                                encryption_mode=int(self.servers[server]['encryption_mode']),
                                                                password=self.servers[server]['password'])
 def __init__(self, config_file):
     """
     Constructor
     """
     # Setup servers dict from config file
     self.plugins = configurator.read(config_file, configspec="configspecs/nagios_plugins.cfg", list_values=False)