Example #1
0
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