def handleRequest()

in pluginhandler.py [0:0]


    def handleRequest(self, httpMethod, path, requestHandler):
        paths = path.split('/')
        fileName = paths.pop()
        fileNames = fileName.split('.')
        fileSuffix = fileNames.pop()
        
        # Support plugin lookup for [fgdc|gmcd|iso].xml
        if fileSuffix == 'xml':
            fileSuffix = fileNames.pop()

        if self.format is not None and len(self.format) > 0:
            try:
                fileSuffix = requestHandler.get_argument('format')
            except:
                fileSuffix = self.format[0]
                #raise Exception("Format parameter required.")
            if fileSuffix not in self.format:
                raise Exception("Format %s not supported." % fileSuffix)
        
        pluginName = self._getPluginName(self.pluginPath+'/'+self.name+'/'+fileSuffix)
        if not pluginName:
            raise Exception("Did not find plugin.")
        
        modulePath = self.pluginPath+'.'+self.name+'.'+fileSuffix+'.'+pluginName
        if modulePath in sys.modules:
            currentModuleName = ''
            for moduleName in modulePath.split('.'):
                currentModuleName += moduleName
                #print('reloading: '+currentModuleName)
                importlib.reload(sys.modules[currentModuleName])
                currentModuleName += '.'

        #print('modulePath: '+modulePath)
        module = __import__(modulePath, globals(), locals(), [pluginName])
        plugin = getattr(module, pluginName)
        pluginObject = plugin(self.pluginPath+'/'+self.name+'/'+fileSuffix+'/plugin.conf')
        method = getattr(pluginObject, httpMethod)
        method(requestHandler)