1
0
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:
Jeremy Stretch
2020-04-01 12:10:19 -04:00
parent b2f4ef06c7
commit 0432b1a6f9
3 changed files with 22 additions and 17 deletions

View File

@@ -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.

View File

@@ -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()
})