add pyfs service
This commit is contained in:
@@ -19,6 +19,7 @@ import threading
|
||||
from xmodule.util.django import get_current_request_hostname
|
||||
import xmodule.modulestore # pylint: disable=unused-import
|
||||
from xmodule.contentstore.django import contentstore
|
||||
import xblock.reference.plugins
|
||||
|
||||
# We may not always have the request_cache module available
|
||||
try:
|
||||
@@ -41,7 +42,7 @@ def load_function(path):
|
||||
return getattr(import_module(module_path), name)
|
||||
|
||||
|
||||
def create_modulestore_instance(engine, content_store, doc_store_config, options, i18n_service=None):
|
||||
def create_modulestore_instance(engine, content_store, doc_store_config, options, i18n_service=None, pyfs_service=None):
|
||||
"""
|
||||
This will return a new instance of a modulestore given an engine and options
|
||||
"""
|
||||
@@ -73,6 +74,7 @@ def create_modulestore_instance(engine, content_store, doc_store_config, options
|
||||
xblock_select=getattr(settings, 'XBLOCK_SELECT_FUNCTION', None),
|
||||
doc_store_config=doc_store_config,
|
||||
i18n_service=i18n_service or ModuleI18nService(),
|
||||
pyfs_service=pyfs_service or xblock.reference.plugins.FSService(),
|
||||
branch_setting_func=_get_modulestore_branch_setting,
|
||||
create_modulestore_instance=create_modulestore_instance,
|
||||
**_options
|
||||
|
||||
@@ -91,7 +91,7 @@ class MixedModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase):
|
||||
"""
|
||||
ModuleStore knows how to route requests to the right persistence ms
|
||||
"""
|
||||
def __init__(self, contentstore, mappings, stores, i18n_service=None, create_modulestore_instance=None, **kwargs):
|
||||
def __init__(self, contentstore, mappings, stores, i18n_service=None, pyfs_service=None, create_modulestore_instance=None, **kwargs):
|
||||
"""
|
||||
Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a
|
||||
collection of other modulestore configuration information
|
||||
@@ -130,6 +130,7 @@ class MixedModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase):
|
||||
store_settings.get('DOC_STORE_CONFIG', {}),
|
||||
store_settings.get('OPTIONS', {}),
|
||||
i18n_service=i18n_service,
|
||||
pyfs_service=pyfs_service,
|
||||
)
|
||||
# replace all named pointers to the store into actual pointers
|
||||
for course_key, store_name in self.mappings.iteritems():
|
||||
|
||||
@@ -361,6 +361,7 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase):
|
||||
default_class=None,
|
||||
error_tracker=null_error_tracker,
|
||||
i18n_service=None,
|
||||
pyfs_service=None,
|
||||
**kwargs):
|
||||
"""
|
||||
:param doc_store_config: must have a host, db, and collection entries. Other common entries: port, tz_aware.
|
||||
@@ -404,6 +405,7 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase):
|
||||
self.error_tracker = error_tracker
|
||||
self.render_template = render_template
|
||||
self.i18n_service = i18n_service
|
||||
self.pyfs_service = pyfs_service
|
||||
|
||||
# performance optimization to prevent updating the meta-data inheritance tree during
|
||||
# bulk write operations
|
||||
@@ -691,6 +693,9 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase):
|
||||
if self.i18n_service:
|
||||
services["i18n"] = self.i18n_service
|
||||
|
||||
if self.pyfs_service:
|
||||
services["fs"] = self.pyfs_service
|
||||
|
||||
system = CachingDescriptorSystem(
|
||||
modulestore=self,
|
||||
course_key=course_key,
|
||||
@@ -984,6 +989,9 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase):
|
||||
if self.i18n_service:
|
||||
services["i18n"] = self.i18n_service
|
||||
|
||||
if self.pyfs_service:
|
||||
services["fs"] = self.pyfs_service
|
||||
|
||||
runtime = CachingDescriptorSystem(
|
||||
modulestore=self,
|
||||
module_data={},
|
||||
|
||||
@@ -120,8 +120,8 @@ class SplitMongoModuleStore(ModuleStoreWriteBase):
|
||||
def __init__(self, contentstore, doc_store_config, fs_root, render_template,
|
||||
default_class=None,
|
||||
error_tracker=null_error_tracker,
|
||||
i18n_service=None, services=None,
|
||||
**kwargs):
|
||||
i18n_service=None, pyfs_service=None,
|
||||
services=None, **kwargs):
|
||||
"""
|
||||
:param doc_store_config: must have a host, db, and collection entries. Other common entries: port, tz_aware.
|
||||
"""
|
||||
@@ -148,6 +148,9 @@ class SplitMongoModuleStore(ModuleStoreWriteBase):
|
||||
if i18n_service is not None:
|
||||
self.services["i18n"] = i18n_service
|
||||
|
||||
if pyfs_service is not None:
|
||||
self.services["fs"] = pyfs_service
|
||||
|
||||
def close_connections(self):
|
||||
"""
|
||||
Closes any open connections to the underlying databases
|
||||
|
||||
@@ -370,7 +370,7 @@ class XMLModuleStore(ModuleStoreReadBase):
|
||||
"""
|
||||
def __init__(
|
||||
self, data_dir, default_class=None, course_dirs=None, course_ids=None,
|
||||
load_error_modules=True, i18n_service=None, **kwargs
|
||||
load_error_modules=True, i18n_service=None, pyfs_service=None, **kwargs
|
||||
):
|
||||
"""
|
||||
Initialize an XMLModuleStore from data_dir
|
||||
@@ -409,6 +409,7 @@ class XMLModuleStore(ModuleStoreReadBase):
|
||||
self.field_data = inheriting_field_data(kvs=DictKeyValueStore())
|
||||
|
||||
self.i18n_service = i18n_service
|
||||
self.pyfs_service = pyfs_service
|
||||
|
||||
# If we are specifically asked for missing courses, that should
|
||||
# be an error. If we are asked for "all" courses, find the ones
|
||||
@@ -554,6 +555,9 @@ class XMLModuleStore(ModuleStoreReadBase):
|
||||
if self.i18n_service:
|
||||
services['i18n'] = self.i18n_service
|
||||
|
||||
if self.pyfs_service:
|
||||
services['fs'] = self.pyfs_service
|
||||
|
||||
system = ImportSystem(
|
||||
xmlstore=self,
|
||||
course_id=course_id,
|
||||
|
||||
Reference in New Issue
Block a user