Ticket #298: oevents.py.patch

File oevents.py.patch, 1.7 KB (added by digger, 3 years ago)
  • .py

    old new  
    129129                logger.info( "Removing rule %s", name ) 
    130130                self.rules.remove(rule) 
    131131 
     132 
    132133#============================================================================# 
    133134def factory(prefix, controller): 
    134135#============================================================================# 
    135136    """This is the magic function that will be called by the framework module manager""" 
    136     events_manager = EventsManager(controller.bus) 
    137137 
    138     # Get the initial rules files 
     138    events_manager = EventsManager(controller.bus) 
    139139    parser = Parser() 
     140  
     141    def parse_rules_file(file): 
     142        try: 
     143            rules = parser.parse_rules(open(file).read()) 
     144        except IOError, e: 
     145            logger.error("can't open rules file %s: %s" % (file, e)) 
     146        if rules: 
     147            for rule in rules: 
     148                events_manager.add_rule(rule) 
     149 
     150    # Get and parse the initial rules file 
    140151    rules_file = os.path.join( rootdir, 'rules.yaml' ) 
    141     rules = parser.parse_rules(open(rules_file).read()) 
    142     for rule in rules: 
    143         events_manager.add_rule(rule) 
    144              
     152    parse_rules_file(rules_file) 
     153    # Get and parse rules files in rules.d 
     154    rules_dir = os.path.join(rootdir, 'rules.d')     
     155    try: 
     156        files = os.listdir(rules_dir) 
     157    except OSError, e: 
     158        logger.error("%s", e) 
     159    for file in files: 
     160        rules_file = os.path.join(rules_dir, file) 
     161        logger.debug("Parsing rules in %s." % rules_file) 
     162        parse_rules_file(rules_file) 
     163 
    145164    # This is to ensure that all the other subsystems are up before we update the events_manager 
    146165    gobject.idle_add( events_manager.update ) 
    147166