mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
| #!/usr/bin/python3
 | |
| 
 | |
| """
 | |
| The ``Domain``
 | |
| ===================
 | |
| 
 | |
| 
 | |
| """
 | |
| 
 | |
| import os
 | |
| import sys
 | |
| import time
 | |
| import redis
 | |
| import configparser
 | |
| 
 | |
| # Get Config file
 | |
| config_dir = os.path.join(os.environ['AIL_HOME'], 'configs')
 | |
| default_config_file = os.path.join(config_dir, 'core.cfg')
 | |
| if not os.path.exists(default_config_file):
 | |
|     raise Exception('Unable to find the configuration file. \
 | |
|                     Did you set environment variables? \
 | |
|                     Or activate the virtualenv.')
 | |
| 
 | |
|  # # TODO: create sphinx doc
 | |
| 
 | |
|  # # TODO: add config_field to reload
 | |
| 
 | |
| class ConfigLoader(object):
 | |
|     """docstring for Config_Loader."""
 | |
| 
 | |
|     def __init__(self, config_file=None):
 | |
|         self.cfg = configparser.ConfigParser()
 | |
|         if config_file:
 | |
|             self.cfg.read(os.path.join(config_dir, config_file))
 | |
|         else:
 | |
|             self.cfg.read(default_config_file)
 | |
| 
 | |
|     def get_redis_conn(self, redis_name, decode_responses=True): ## TODO: verify redis name
 | |
|         return redis.StrictRedis( host=self.cfg.get(redis_name, "host"),
 | |
|                                   port=self.cfg.getint(redis_name, "port"),
 | |
|                                   db=self.cfg.getint(redis_name, "db"),
 | |
|                                   decode_responses=decode_responses )
 | |
| 
 | |
|     def get_files_directory(self, key_name):
 | |
|         directory_path = self.cfg.get('Directories', key_name)
 | |
|         # full path
 | |
|         if directory_path[0] == '/':
 | |
|             return directory_path
 | |
|         else:
 | |
|             directory_path = os.path.join(os.environ['AIL_HOME'], directory_path)
 | |
|             return directory_path
 | |
| 
 | |
|     def get_config_str(self, section, key_name):
 | |
|         return self.cfg.get(section, key_name)
 | |
| 
 | |
|     def get_config_int(self, section, key_name):
 | |
|         return self.cfg.getint(section, key_name)
 | |
| 
 | |
|     def get_config_boolean(self, section, key_name):
 | |
|         return self.cfg.getboolean(section, key_name)
 | |
| 
 | |
|     def has_option(self, section, key_name):
 | |
|         return self.cfg.has_option(section, key_name)
 | |
| 
 | |
|     def has_section(self, section):
 | |
|         return self.cfg.has_section(section)
 | |
| 
 | |
|     def get_all_keys_values_from_section(self, section):
 | |
|         if section in self.cfg:
 | |
|             all_keys_values = []
 | |
|             for key_name in self.cfg[section]:
 | |
|                 all_keys_values.append((key_name, self.cfg.get(section, key_name)))
 | |
|             return all_keys_values
 | |
|         else:
 | |
|             return []
 |