From 8663db0152ea7cc1bf73778fa559a6aedd1e0951 Mon Sep 17 00:00:00 2001 From: Jakub Onderka Date: Tue, 9 Jan 2024 12:43:42 +0100 Subject: [PATCH] chg: [server] Cache module list JSON --- misp_modules/__init__.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/misp_modules/__init__.py b/misp_modules/__init__.py index bd76f3a..0349c0c 100644 --- a/misp_modules/__init__.py +++ b/misp_modules/__init__.py @@ -174,17 +174,22 @@ class ListModules(tornado.web.RequestHandler): global loaded_modules global mhandlers + _cached_json = None + def get(self): - ret = [] - for module_name in loaded_modules: - ret.append({ - 'name': module_name, - 'type': mhandlers['type:' + module_name], - 'mispattributes': mhandlers[module_name].introspection(), - 'meta': mhandlers[module_name].version() - }) + if not self._cached_json: + ret = [] + for module_name in loaded_modules: + ret.append({ + 'name': module_name, + 'type': mhandlers['type:' + module_name], + 'mispattributes': mhandlers[module_name].introspection(), + 'meta': mhandlers[module_name].version() + }) + self._cached_json = json.dumps(ret) + log.debug('MISP ListModules request') - self.write(json.dumps(ret)) + self.write(self._cached_json) class QueryModule(tornado.web.RequestHandler):