sbsv2/raptor/python/filter_list.py
changeset 674 37ee82a83d43
parent 625 a1925fb7753a
--- a/sbsv2/raptor/python/filter_list.py	Tue Nov 02 16:54:53 2010 +0800
+++ b/sbsv2/raptor/python/filter_list.py	Fri Nov 12 14:49:36 2010 +0000
@@ -116,9 +116,16 @@
 			# if the filter exists and is a valid filter use it
 			if f.lower() in filterdict:
 				if params:
-					self.filters.append(filterdict[f.lower()](params))
+					try:
+						self.filters.append(filterdict[f.lower()](params))
+					except TypeError:
+						raise ValueError("requested filter does not take any parameters")
 				else:
-					self.filters.append(filterdict[f.lower()]())
+					try:
+						self.filters.append(filterdict[f.lower()]())
+					except TypeError:
+						# Claims to need parameters - pass in an empty list
+						self.filters.append(filterdict[f.lower()]([]))
 			else:
 				# record missing filters
 				unfound.append(f)
@@ -132,12 +139,17 @@
 		else:
 			self.out=[]
 			for filter in self.filters:
-				if filter.open(raptor_instance):
+				try:
+					ok = filter.open(raptor_instance)
+				except Exception, e:
+					sys.stderr.write(filter.formatError(str(e)))
+					ok = False
+
+				if ok:
 					self.out.append(filter)
 				else:
 					sys.stderr.write(str(raptor.name) + \
 							": error: Cannot open filter: %s\n" % str(filter))
-					ok = False
 					
 			if self.out == []:
 				sys.stderr.write(str(raptor.name) + \