Browse Source

Moved plugins folder in lodel/

- updated scripts etc
- make tests pass
Yann Weber 7 years ago
parent
commit
0406e91846
82 changed files with 28 additions and 8 deletions
  1. 1
    1
      Makefile.am
  2. 1
    1
      configure.ac
  3. 1
    1
      lodel/Makefile.am
  4. 16
    1
      lodel/context.py
  5. 1
    1
      lodel/plugin/plugins.py
  6. 0
    0
      lodel/plugins/Makefile.am
  7. 0
    0
      lodel/plugins/__init__.py
  8. 0
    0
      lodel/plugins/dummy/__init__.py
  9. 0
    0
      lodel/plugins/dummy/confspec.py
  10. 0
    0
      lodel/plugins/dummy/main.py
  11. 0
    0
      lodel/plugins/dummy_datasource/__init__.py
  12. 0
    0
      lodel/plugins/dummy_datasource/datasource.py
  13. 0
    0
      lodel/plugins/dummy_datasource/main.py
  14. 0
    0
      lodel/plugins/dummy_datasource/migration_handler.py
  15. 0
    0
      lodel/plugins/filesystem_session/__init__.py
  16. 0
    0
      lodel/plugins/filesystem_session/confspec.py
  17. 0
    0
      lodel/plugins/filesystem_session/filesystem_session.py
  18. 0
    0
      lodel/plugins/filesystem_session/main.py
  19. 0
    0
      lodel/plugins/mongodb_datasource/__init__.py
  20. 0
    0
      lodel/plugins/mongodb_datasource/confspec.py
  21. 0
    0
      lodel/plugins/mongodb_datasource/datasource.py
  22. 0
    0
      lodel/plugins/mongodb_datasource/exceptions.py
  23. 0
    0
      lodel/plugins/mongodb_datasource/main.py
  24. 0
    0
      lodel/plugins/mongodb_datasource/migration_handler.py
  25. 0
    0
      lodel/plugins/mongodb_datasource/utils.py
  26. 0
    0
      lodel/plugins/multisite/__init__.py
  27. 0
    0
      lodel/plugins/multisite/main.py
  28. 0
    0
      lodel/plugins/ram_sessions/__init__.py
  29. 0
    0
      lodel/plugins/ram_sessions/main.py
  30. 0
    0
      lodel/plugins/webui/__init__.py
  31. 0
    0
      lodel/plugins/webui/client.py
  32. 0
    0
      lodel/plugins/webui/confspec.py
  33. 0
    0
      lodel/plugins/webui/exceptions.py
  34. 0
    0
      lodel/plugins/webui/interface/__init__.py
  35. 0
    0
      lodel/plugins/webui/interface/controllers/__init__.py
  36. 0
    0
      lodel/plugins/webui/interface/controllers/admin.py
  37. 0
    0
      lodel/plugins/webui/interface/controllers/base.py
  38. 0
    0
      lodel/plugins/webui/interface/controllers/document.py
  39. 0
    0
      lodel/plugins/webui/interface/controllers/listing.py
  40. 0
    0
      lodel/plugins/webui/interface/controllers/users.py
  41. 0
    0
      lodel/plugins/webui/interface/lodelrequest.py
  42. 0
    0
      lodel/plugins/webui/interface/router.py
  43. 0
    0
      lodel/plugins/webui/interface/template/__init__.py
  44. 0
    0
      lodel/plugins/webui/interface/template/api/__init__.py
  45. 0
    0
      lodel/plugins/webui/interface/template/api/api_lodel_templates.py
  46. 0
    0
      lodel/plugins/webui/interface/template/exceptions/__init__.py
  47. 0
    0
      lodel/plugins/webui/interface/template/exceptions/not_allowed_custom_api_key_error.py
  48. 0
    0
      lodel/plugins/webui/interface/template/loader.py
  49. 0
    0
      lodel/plugins/webui/interface/urls.py
  50. 0
    0
      lodel/plugins/webui/main.py
  51. 0
    0
      lodel/plugins/webui/run.py
  52. 0
    0
      lodel/plugins/webui/templates/admin/admin.html
  53. 0
    0
      lodel/plugins/webui/templates/admin/admin_create.html
  54. 0
    0
      lodel/plugins/webui/templates/admin/admin_delete.html
  55. 0
    0
      lodel/plugins/webui/templates/admin/admin_edit.html
  56. 0
    0
      lodel/plugins/webui/templates/admin/admin_search.html
  57. 0
    0
      lodel/plugins/webui/templates/admin/editable_component.html
  58. 0
    0
      lodel/plugins/webui/templates/admin/list_classes_admin.html
  59. 0
    0
      lodel/plugins/webui/templates/admin/list_classes_create.html
  60. 0
    0
      lodel/plugins/webui/templates/admin/list_classes_delete.html
  61. 0
    0
      lodel/plugins/webui/templates/admin/show_class_admin.html
  62. 0
    0
      lodel/plugins/webui/templates/admin/show_class_delete.html
  63. 0
    0
      lodel/plugins/webui/templates/base.html
  64. 0
    0
      lodel/plugins/webui/templates/base_backend.html
  65. 0
    0
      lodel/plugins/webui/templates/components/components.html
  66. 0
    0
      lodel/plugins/webui/templates/css/bootstrap-3.3.7/docs/examples/signin/signin.css
  67. 0
    0
      lodel/plugins/webui/templates/css/template.css
  68. 0
    0
      lodel/plugins/webui/templates/documents/show.html
  69. 0
    0
      lodel/plugins/webui/templates/error.html
  70. 0
    0
      lodel/plugins/webui/templates/errors/404.html
  71. 0
    0
      lodel/plugins/webui/templates/index/index.html
  72. 0
    0
      lodel/plugins/webui/templates/listing/display_obj.html
  73. 0
    0
      lodel/plugins/webui/templates/listing/list_classes.html
  74. 0
    0
      lodel/plugins/webui/templates/listing/show_class.html
  75. 0
    0
      lodel/plugins/webui/templates/listing/show_object.html
  76. 0
    0
      lodel/plugins/webui/templates/listing/show_object_detailled.html
  77. 0
    0
      lodel/plugins/webui/templates/test.html
  78. 0
    0
      lodel/plugins/webui/templates/users/signin.html
  79. 0
    0
      lodel/plugins/webui/templates/users/welcome.html
  80. 0
    0
      lodel/plugins/webui/uwsgi/uwsgi.ini
  81. 7
    2
      progs/create_instance.sh
  82. 1
    1
      progs/slim/install_model/loader.py

+ 1
- 1
Makefile.am View File

@@ -1,4 +1,4 @@
1
-SUBDIRS = lodel progs plugins lodelsites
1
+SUBDIRS = lodel progs lodelsites
2 2
 EXTRA_DIST = plugins runtest examples tests runtest.sh debian
3 3
 CLEANFILES = runtest
4 4
 

+ 1
- 1
configure.ac View File

@@ -15,7 +15,7 @@ AC_CONFIG_FILES([Makefile \
15 15
 	lodel/utils/Makefile \
16 16
 	progs/Makefile \
17 17
 	progs/slim/Makefile \
18
-	plugins/Makefile \
18
+	lodel/plugins/Makefile \
19 19
 	lodelsites/Makefile \
20 20
 ])
21 21
 

+ 1
- 1
lodel/Makefile.am View File

@@ -1,4 +1,4 @@
1
-SUBDIRS=auth editorial_model leapi plugin settings utils
1
+SUBDIRS=auth editorial_model leapi plugin settings utils plugins
2 2
 
3 3
 lodel_PYTHON = *.py
4 4
 CLEANFILES = buildconf.py

+ 16
- 1
lodel/context.py View File

@@ -38,6 +38,10 @@ class ContextError(Exception):
38 38
 class ContextModuleError(ContextError):
39 39
     pass
40 40
 
41
+def dir_for_context(site_identifier):
42
+    return os.path.join(lodelsites.__path__[0], site_identifier)
43
+    
44
+
41 45
 ##@brief Designed to permit dynamic packages creation from the lodel package
42 46
 #
43 47
 #The class is added in first position in the sys.metapath variable. Doing this
@@ -53,6 +57,9 @@ class ContextModuleError(ContextError):
53 57
 #@note Current implementation is far from perfection. In fact no deletion
54 58
 #mechanisms is written and the virtual package cannot be a subpackage of
55 59
 #the lodel package for the moment...
60
+#@note Current implementation asserts that all plugins are in CWD
61
+#a symlink will be done to create a copy of the plugins folder in 
62
+#lodelsites/SITENAME/ folder
56 63
 class LodelMetaPathFinder(importlib.abc.MetaPathFinder):
57 64
     
58 65
     def find_spec(fullname, path, target = None):
@@ -62,7 +69,7 @@ class LodelMetaPathFinder(importlib.abc.MetaPathFinder):
62 69
             spl = fullname.split('.')
63 70
             site_identifier = spl[1]
64 71
             #creating a symlink to represent the lodel site package
65
-            mod_path = os.path.join(lodelsites.__path__[0], site_identifier)
72
+            mod_path = dir_for_context(site_identifier)
66 73
             if not os.path.exists(mod_path):
67 74
                 os.symlink(lodel.__path__[0], mod_path, True)
68 75
             #Cache invalidation after we "created" the new package
@@ -248,6 +255,14 @@ initialize it anymore")
248 255
             #Add a single context with no site_id
249 256
             cls._contexts = cls._current = cls(None)
250 257
     
258
+    ##@brief Return the directory of the package of the current loaded context
259
+    @classmethod
260
+    def context_dir(cls):
261
+        if cls._type == cls.MONOSITE:
262
+            return './'
263
+        return dir_for_context(cls._current.__id)
264
+        
265
+
251 266
     ##@brief Validate a context identifier
252 267
     #@param identifier str : the identifier to validate
253 268
     #@return true if the name is valide else false

+ 1
- 1
lodel/plugin/plugins.py View File

@@ -55,7 +55,7 @@ ACTIVATE_METHOD_NAME = '_activate'
55 55
 ##@brief Discover stage cache filename
56 56
 DISCOVER_CACHE_FILENAME = '.plugin_discover_cache.json'
57 57
 ##@brief Default & failover value for plugins path list
58
-DEFAULT_PLUGINS_PATH_LIST = ['./plugins']
58
+DEFAULT_PLUGINS_PATH_LIST = [os.path.join(LodelContext.context_dir(),'plugins')]
59 59
 
60 60
 ##@brief List storing the mandatory variables expected in a plugin __init__.py
61 61
 #file

plugins/Makefile.am → lodel/plugins/Makefile.am View File


plugins/__init__.py → lodel/plugins/__init__.py View File


plugins/dummy/__init__.py → lodel/plugins/dummy/__init__.py View File


plugins/dummy/confspec.py → lodel/plugins/dummy/confspec.py View File


plugins/dummy/main.py → lodel/plugins/dummy/main.py View File


plugins/dummy_datasource/__init__.py → lodel/plugins/dummy_datasource/__init__.py View File


plugins/dummy_datasource/datasource.py → lodel/plugins/dummy_datasource/datasource.py View File


plugins/dummy_datasource/main.py → lodel/plugins/dummy_datasource/main.py View File


plugins/dummy_datasource/migration_handler.py → lodel/plugins/dummy_datasource/migration_handler.py View File


plugins/filesystem_session/__init__.py → lodel/plugins/filesystem_session/__init__.py View File


plugins/filesystem_session/confspec.py → lodel/plugins/filesystem_session/confspec.py View File


plugins/filesystem_session/filesystem_session.py → lodel/plugins/filesystem_session/filesystem_session.py View File


plugins/filesystem_session/main.py → lodel/plugins/filesystem_session/main.py View File


plugins/mongodb_datasource/__init__.py → lodel/plugins/mongodb_datasource/__init__.py View File


plugins/mongodb_datasource/confspec.py → lodel/plugins/mongodb_datasource/confspec.py View File


plugins/mongodb_datasource/datasource.py → lodel/plugins/mongodb_datasource/datasource.py View File


plugins/mongodb_datasource/exceptions.py → lodel/plugins/mongodb_datasource/exceptions.py View File


plugins/mongodb_datasource/main.py → lodel/plugins/mongodb_datasource/main.py View File


plugins/mongodb_datasource/migration_handler.py → lodel/plugins/mongodb_datasource/migration_handler.py View File


plugins/mongodb_datasource/utils.py → lodel/plugins/mongodb_datasource/utils.py View File


plugins/multisite/__init__.py → lodel/plugins/multisite/__init__.py View File


plugins/multisite/main.py → lodel/plugins/multisite/main.py View File


plugins/ram_sessions/__init__.py → lodel/plugins/ram_sessions/__init__.py View File


plugins/ram_sessions/main.py → lodel/plugins/ram_sessions/main.py View File


plugins/webui/__init__.py → lodel/plugins/webui/__init__.py View File


plugins/webui/client.py → lodel/plugins/webui/client.py View File


plugins/webui/confspec.py → lodel/plugins/webui/confspec.py View File


plugins/webui/exceptions.py → lodel/plugins/webui/exceptions.py View File


plugins/webui/interface/__init__.py → lodel/plugins/webui/interface/__init__.py View File


plugins/webui/interface/controllers/__init__.py → lodel/plugins/webui/interface/controllers/__init__.py View File


plugins/webui/interface/controllers/admin.py → lodel/plugins/webui/interface/controllers/admin.py View File


plugins/webui/interface/controllers/base.py → lodel/plugins/webui/interface/controllers/base.py View File


plugins/webui/interface/controllers/document.py → lodel/plugins/webui/interface/controllers/document.py View File


plugins/webui/interface/controllers/listing.py → lodel/plugins/webui/interface/controllers/listing.py View File


plugins/webui/interface/controllers/users.py → lodel/plugins/webui/interface/controllers/users.py View File


plugins/webui/interface/lodelrequest.py → lodel/plugins/webui/interface/lodelrequest.py View File


plugins/webui/interface/router.py → lodel/plugins/webui/interface/router.py View File


plugins/webui/interface/template/__init__.py → lodel/plugins/webui/interface/template/__init__.py View File


plugins/webui/interface/template/api/__init__.py → lodel/plugins/webui/interface/template/api/__init__.py View File


plugins/webui/interface/template/api/api_lodel_templates.py → lodel/plugins/webui/interface/template/api/api_lodel_templates.py View File


plugins/webui/interface/template/exceptions/__init__.py → lodel/plugins/webui/interface/template/exceptions/__init__.py View File


plugins/webui/interface/template/exceptions/not_allowed_custom_api_key_error.py → lodel/plugins/webui/interface/template/exceptions/not_allowed_custom_api_key_error.py View File


plugins/webui/interface/template/loader.py → lodel/plugins/webui/interface/template/loader.py View File


plugins/webui/interface/urls.py → lodel/plugins/webui/interface/urls.py View File


plugins/webui/main.py → lodel/plugins/webui/main.py View File


plugins/webui/run.py → lodel/plugins/webui/run.py View File


plugins/webui/templates/admin/admin.html → lodel/plugins/webui/templates/admin/admin.html View File


plugins/webui/templates/admin/admin_create.html → lodel/plugins/webui/templates/admin/admin_create.html View File


plugins/webui/templates/admin/admin_delete.html → lodel/plugins/webui/templates/admin/admin_delete.html View File


plugins/webui/templates/admin/admin_edit.html → lodel/plugins/webui/templates/admin/admin_edit.html View File


plugins/webui/templates/admin/admin_search.html → lodel/plugins/webui/templates/admin/admin_search.html View File


plugins/webui/templates/admin/editable_component.html → lodel/plugins/webui/templates/admin/editable_component.html View File


plugins/webui/templates/admin/list_classes_admin.html → lodel/plugins/webui/templates/admin/list_classes_admin.html View File


plugins/webui/templates/admin/list_classes_create.html → lodel/plugins/webui/templates/admin/list_classes_create.html View File


plugins/webui/templates/admin/list_classes_delete.html → lodel/plugins/webui/templates/admin/list_classes_delete.html View File


plugins/webui/templates/admin/show_class_admin.html → lodel/plugins/webui/templates/admin/show_class_admin.html View File


plugins/webui/templates/admin/show_class_delete.html → lodel/plugins/webui/templates/admin/show_class_delete.html View File


plugins/webui/templates/base.html → lodel/plugins/webui/templates/base.html View File


plugins/webui/templates/base_backend.html → lodel/plugins/webui/templates/base_backend.html View File


plugins/webui/templates/components/components.html → lodel/plugins/webui/templates/components/components.html View File


plugins/webui/templates/css/bootstrap-3.3.7/docs/examples/signin/signin.css → lodel/plugins/webui/templates/css/bootstrap-3.3.7/docs/examples/signin/signin.css View File


plugins/webui/templates/css/template.css → lodel/plugins/webui/templates/css/template.css View File


plugins/webui/templates/documents/show.html → lodel/plugins/webui/templates/documents/show.html View File


plugins/webui/templates/error.html → lodel/plugins/webui/templates/error.html View File


plugins/webui/templates/errors/404.html → lodel/plugins/webui/templates/errors/404.html View File


plugins/webui/templates/index/index.html → lodel/plugins/webui/templates/index/index.html View File


plugins/webui/templates/listing/display_obj.html → lodel/plugins/webui/templates/listing/display_obj.html View File


plugins/webui/templates/listing/list_classes.html → lodel/plugins/webui/templates/listing/list_classes.html View File


plugins/webui/templates/listing/show_class.html → lodel/plugins/webui/templates/listing/show_class.html View File


plugins/webui/templates/listing/show_object.html → lodel/plugins/webui/templates/listing/show_object.html View File


plugins/webui/templates/listing/show_object_detailled.html → lodel/plugins/webui/templates/listing/show_object_detailled.html View File


plugins/webui/templates/test.html → lodel/plugins/webui/templates/test.html View File


plugins/webui/templates/users/signin.html → lodel/plugins/webui/templates/users/signin.html View File


plugins/webui/templates/users/welcome.html → lodel/plugins/webui/templates/users/welcome.html View File


plugins/webui/uwsgi/uwsgi.ini → lodel/plugins/webui/uwsgi/uwsgi.ini View File


+ 7
- 2
progs/create_instance.sh View File

@@ -7,7 +7,8 @@ usage() {
7 7
 }
8 8
 
9 9
 cp_loader() {
10
-	cp -Rv $install_tpl/loader.py $instdir/
10
+	loader="${install_tpl}/loader.py"
11
+	cp -Rv $loader $instdir/
11 12
 	# Adding lib path to loader
12 13
 	sed -i -E "s#^(LODEL2_LIB_ABS_PATH = )None#\1'$libdir'#" "$loader"
13 14
 }
@@ -83,8 +84,12 @@ cp -Rv $install_tpl/conf.d $instdir/
83 84
 cp -Rv $em_file $instdir/editorial_model.pickle
84 85
 ln -sv $install_tpl/Makefile $instdir/Makefile
85 86
 ln -sv $install_tpl/lodel_admin.py $instdir/lodel_admin.py
86
-ln -sv $libdir/plugins $instdir/plugins
87
+ln -sv $libdir/lodel/plugins $instdir/plugins
87 88
 cp_loader
89
+
90
+echo "BEGIN LS"
91
+ls -la $instdir
92
+echo "END LS"
88 93
 # Adding instance name to conf
89 94
 sed -i -E "s#^sitename = noname#sitename = $name#" "$conf"
90 95
 

+ 1
- 1
progs/slim/install_model/loader.py View File

@@ -10,7 +10,7 @@ import sys, os, os.path
10 10
 #
11 11
 # Bootstraping
12 12
 #
13
-LODEL2_LIB_ABS_PATH = None
13
+LODEL2_LIB_ABS_PATH = '/home/yannweb/dev/lodel2/lodel2-git'
14 14
 if LODEL2_LIB_ABS_PATH is not None:
15 15
     if not os.path.isdir(LODEL2_LIB_ABS_PATH):
16 16
         print("FATAL ERROR : the LODEL2_LIB_ABS_PATH variable in loader.py is \

Loading…
Cancel
Save