Commit 64781e7e895891b0c97fb41cf66e8c63121af958

Authored by Sergio Oliveira
1 parent 1a166d1d

Allow full plugins on /etc/colab/plugins.d

Signed-off-by: Sergio Oliveira <sergio@tracy.com.br>
Showing 2 changed files with 13 additions and 10 deletions   Show diff stats
colab/plugins/tasks.py
... ... @@ -2,10 +2,10 @@
2 2 from datetime import timedelta
3 3 from celery.decorators import periodic_task
4 4  
5   -from .utils import data
  5 +from .data import TASKS
6 6  
7 7  
8   -@periodic_task(run_every=timedelta(minutes=1))
  8 +@periodic_task(run_every=timedelta(seconds=5))
9 9 def import_plugin_data():
10   - for task in data.TASKS:
  10 + for task in TASKS:
11 11 task.delay()
... ...
colab/utils/conf.py
... ... @@ -3,7 +3,6 @@ import os
3 3 import sys
4 4 import logging
5 5 import importlib
6   -import warnings
7 6  
8 7 from django.core.exceptions import ImproperlyConfigured
9 8  
... ... @@ -96,17 +95,21 @@ def load_colab_apps():
96 95 return {'COLAB_APPS': COLAB_APPS}
97 96  
98 97 for file_name in os.listdir(plugins_dir):
99   - if not file_name.endswith('.py'):
100   - continue
101   -
102 98 file_module = file_name.split('.')[0]
  99 +
  100 + logger.info('Loaded plugin settings: %s%s', plugins_dir, file_name)
103 101 py_settings_d = _load_py_file(file_module, plugins_dir)
104   - logger.info('Loaded plugin settings: %s/%s', plugins_dir, file_name)
105 102  
106   - app_name = py_settings_d.get('name')
  103 + if os.path.isdir(os.path.join(plugins_dir, file_name)):
  104 + app_name = file_name
  105 +
  106 + elif file_name.endswith('.py'):
  107 + app_name = py_settings_d.get('name')
  108 +
107 109 if not app_name:
108   - warnings.warn("Plugin missing name variable")
  110 + logger.warning("Plugin missing name variable (%s)", file_name)
109 111 continue
  112 +
110 113 try:
111 114 importlib.import_module(app_name)
112 115 except ImportError:
... ...