sbsv2/raptor/python/filter_list.py
changeset 674 37ee82a83d43
parent 625 a1925fb7753a
equal deleted inserted replaced
673:7ae5f757318b 674:37ee82a83d43
   114 		self.filters = []
   114 		self.filters = []
   115 		for (f, params) in filterCalls:
   115 		for (f, params) in filterCalls:
   116 			# if the filter exists and is a valid filter use it
   116 			# if the filter exists and is a valid filter use it
   117 			if f.lower() in filterdict:
   117 			if f.lower() in filterdict:
   118 				if params:
   118 				if params:
   119 					self.filters.append(filterdict[f.lower()](params))
   119 					try:
       
   120 						self.filters.append(filterdict[f.lower()](params))
       
   121 					except TypeError:
       
   122 						raise ValueError("requested filter does not take any parameters")
   120 				else:
   123 				else:
   121 					self.filters.append(filterdict[f.lower()]())
   124 					try:
       
   125 						self.filters.append(filterdict[f.lower()]())
       
   126 					except TypeError:
       
   127 						# Claims to need parameters - pass in an empty list
       
   128 						self.filters.append(filterdict[f.lower()]([]))
   122 			else:
   129 			else:
   123 				# record missing filters
   130 				# record missing filters
   124 				unfound.append(f)
   131 				unfound.append(f)
   125 
   132 
   126 		if unfound != []:
   133 		if unfound != []:
   130 		if self.filters == []:
   137 		if self.filters == []:
   131 			self.out = [BootstrapFilter()]
   138 			self.out = [BootstrapFilter()]
   132 		else:
   139 		else:
   133 			self.out=[]
   140 			self.out=[]
   134 			for filter in self.filters:
   141 			for filter in self.filters:
   135 				if filter.open(raptor_instance):
   142 				try:
       
   143 					ok = filter.open(raptor_instance)
       
   144 				except Exception, e:
       
   145 					sys.stderr.write(filter.formatError(str(e)))
       
   146 					ok = False
       
   147 
       
   148 				if ok:
   136 					self.out.append(filter)
   149 					self.out.append(filter)
   137 				else:
   150 				else:
   138 					sys.stderr.write(str(raptor.name) + \
   151 					sys.stderr.write(str(raptor.name) + \
   139 							": error: Cannot open filter: %s\n" % str(filter))
   152 							": error: Cannot open filter: %s\n" % str(filter))
   140 					ok = False
       
   141 					
   153 					
   142 			if self.out == []:
   154 			if self.out == []:
   143 				sys.stderr.write(str(raptor.name) + \
   155 				sys.stderr.write(str(raptor.name) + \
   144 						": warning: All filters failed to open. " + \
   156 						": warning: All filters failed to open. " + \
   145 						"Defaulting to 'stdout'\n")
   157 						"Defaulting to 'stdout'\n")