def returnsubsections(flag,section,initiative=True,subsections=None): if flag and initiative: subsections += list(ConfigurationManager.readCuckooResultsConfig(variable='subsections',section=section).split(',')) for subsection in subsections: subsections+=returnsubsections(flag=literal_eval(ConfigurationManager.readCuckooResultsConfig(variable='encapsulation',section='subsection_'+subsection)), section='subsection_'+subsection,subsections=[],initiative=False) return subsections elif flag: subsections += list(ConfigurationManager.readCuckooResultsConfig(variable='subsections',section=section).split(',')) for subsection in subsections: returnsubsections(flag=literal_eval(ConfigurationManager.readCuckooResultsConfig(variable='encapsulation',section='subsection_'+subsection)), section='subsection_'+subsection,subsections=[],initiative=False) return subsections else: return subsections
def __init__(self,section,filename=None,data_results=None): self.logger = Logger() self.key=ConfigurationManager.readCuckooResultsConfig(variable='key',section=section) self.encapsulation = literal_eval(ConfigurationManager.readCuckooResultsConfig(variable='encapsulation',section=section)) self.keys = list(ConfigurationManager.readCuckooResultsConfig(variable='keys',section=section).split(',')) #Check if there are not any keys if self.keys==['']: self.keys=None self.subsectionskeys={} if self.encapsulation: self.subsections = returnsubsections(self.encapsulation,section=section,subsections=[]) for subsection in self.subsections: self.subsectionskeys[ConfigurationManager.readCuckooResultsConfig(variable='key',section='subsection_'+subsection)] = list(ConfigurationManager.readCuckooResultsConfig(variable='keys',section='subsection_'+subsection).split(',')) results=None try: if data_results is not None: results=data_results[self.key] elif filename is not None: results = load_results(filename)[self.key] except Exception, e: self.logger.errorLogging(str(e))