Kaynağa Gözat

Fixes #20660: Optimize loading of custom script modules from remote storage (#20783)

Jeremy Stretch 3 ay önce
ebeveyn
işleme
e787a71c1d

+ 1 - 2
netbox/extras/models/mixins.py

@@ -30,8 +30,7 @@ class CustomStoragesLoader(importlib.abc.Loader):
         return None  # Use default module creation
         return None  # Use default module creation
 
 
     def exec_module(self, module):
     def exec_module(self, module):
-        storage = storages.create_storage(storages.backends["scripts"])
-        with storage.open(self.filename, 'rb') as f:
+        with storages["scripts"].open(self.filename, 'rb') as f:
             code = f.read()
             code = f.read()
         exec(code, module.__dict__)
         exec(code, module.__dict__)
 
 

+ 1 - 1
netbox/extras/models/scripts.py

@@ -126,7 +126,7 @@ class ScriptModule(PythonModuleMixin, JobsMixin, ManagedFile):
         ordered.extend(script_objects.values())
         ordered.extend(script_objects.values())
         return ordered
         return ordered
 
 
-    @property
+    @cached_property
     def module_scripts(self):
     def module_scripts(self):
 
 
         def _get_name(cls):
         def _get_name(cls):