class DBChecker : def __init__(self, name, cfg) : self.name = name self.keys = [] self.values = [] self.hits = [] self.load_config(cfg) def __repr__(self) : for hit in self.hits : print('-'*100) print(hit) return '' def __str__(self) : return self.__repr__() def load_config(self, cfg) : conf = ConfigParser.RawConfigParser() conf.read(cfg) try : db = conf.get('glob', 'database') verbose = conf.getboolean('glob', 'verbose') if conf.has_option(self.name, 'database') : db = conf.get(self.name, 'database') if conf.has_option(self.name, 'verbose') : verbose = conf.getboolean(self.name, 'verbose') if conf.has_option(self.name, 'db_check_key') : self.keys = conf.get(self.name, 'db_check_key').split('|') except : traceback.print_exc() return False self.sql = SQLTools(db, self.name) self.verbose = verbose return True # find hits in the db match check_mpas def find_db(self) : self.hits = [] for key in self.keys : for value in self.values : value = self.parse_raw_value(value) ret = self.sql.find(key, [value]) if len(ret) > 0 : self.hits.append('Hit {0} : {1}'.format(value, ret)) # parse raw value for db find def parse_raw_value(self, raw) : return raw; def set_watch_values(self, values=[]) : self.values += values