mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Move default caching_config to PluginConfig class
This commit is contained in:
@@ -44,8 +44,10 @@ class PluginConfig(AppConfig):
|
||||
# Middleware classes provided by the plugin
|
||||
middleware = []
|
||||
|
||||
# Caching configuration
|
||||
caching_config = {}
|
||||
# Cacheops configuration. Cache all operations by default.
|
||||
caching_config = {
|
||||
'*': {'ops': 'all'},
|
||||
}
|
||||
|
||||
# Default integration paths. Plugin authors can override these to customize the paths to
|
||||
# integrated components.
|
||||
|
||||
@@ -689,16 +689,8 @@ for plugin_name in PLUGINS:
|
||||
PLUGINS_CONFIG[plugin_name][setting] = value
|
||||
|
||||
# Apply cacheops config
|
||||
plugin_cacheops = plugin_config.caching_config
|
||||
if plugin_cacheops:
|
||||
if type(plugin_cacheops) is not dict:
|
||||
raise ImproperlyConfigured(f"Plugin {plugin_name} caching_config must be a dictionary.")
|
||||
for key in plugin_cacheops.keys():
|
||||
# Validate config is only being set for the given plugin
|
||||
app = key.split('.')[0]
|
||||
if app != plugin_name:
|
||||
raise ImproperlyConfigured(f"Plugin {plugin_name} may not modify caching config for another app: {app}")
|
||||
else:
|
||||
# Apply the default config like all other core apps
|
||||
plugin_cacheops = {f"{plugin_name}.*": {'ops': 'all'}}
|
||||
CACHEOPS.update(plugin_cacheops)
|
||||
if type(plugin_config.caching_config) is not dict:
|
||||
raise ImproperlyConfigured(f"Plugin {plugin_name} caching_config must be a dictionary.")
|
||||
CACHEOPS.update({
|
||||
f"{plugin_name}.{key}": value for key, value in plugin_config.caching_config.items()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user