def render(self, request):
		ucr.load()
		response = {}
		for key in request.options:
			if key.endswith('*'):
				response.update(self.get_values_for(key[:-1]))
			else:
				response[key] = ucr.get(key)
		return dict(result=response)
	def reload(self, reset_log_level=False):
		"""Reloads resources like module and category definitions"""
		RESOURCES.info('Reloading resources: modules, categories')
		self.moduleManager.load()
		self.categoryManager.load()
		RESOURCES.info('Reloading UCR variables')
		ucr.load()
		if reset_log_level:
			RESOURCES.info('Reset log level.')
			self.reset_log_level()
	def __parse_file_upload(self, params):
		# TODO: implement patch from Bug #31923
		if not self.path.startswith('/upload'):  # HTTP FIXME
			self.setResponseCode(415)
			raise ValueError('File uploads are currently only supported on /upload.')

		ucr.load()

		fields = FieldStorage(
			self.content,
			headers={'content-type': self.getHeader('Content-Type')},
			environ={'REQUEST_METHOD': 'POST'}
		).list

		body = dict((field.name, field.value) for field in fields if not field.filename)
		body['options'] = []

		for field in (field for field in fields if field.filename):
			name, filename, value = field.name, field.filename, field.value
			tmpfile = NamedTemporaryFile(dir=TEMPUPLOADDIR, delete=False)
			tmpfile.write(value)

			self.__check_max_file_size(tmpfile.name)
			self.__check_min_free_space_on_partition(tmpfile.name)

			# some security
			for c in ('<>/'):
				filename = filename.replace(c, '_')

			body['options'].append(dict(
				filename=filename,
				name=name,
				tmpfile=tmpfile.name
			))

		return body