def __init__(self, mappings, stores, i18n_service=None, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = mappings if 'default' not in stores: raise Exception( 'Missing a default modulestore in the MixedModuleStore __init__ method.' ) for key, store in stores.iteritems(): is_xml = 'XMLModuleStore' in store['ENGINE'] if is_xml: # restrict xml to only load courses in mapping store['OPTIONS']['course_ids'] = [ course_id for course_id, store_key in self.mappings.iteritems() if store_key == key ] self.modulestores[key] = create_modulestore_instance( store['ENGINE'], # XMLModuleStore's don't have doc store configs store.get('DOC_STORE_CONFIG', {}), store['OPTIONS'], i18n_service=i18n_service, ) # If and when locations can identify their course, we won't need # these loc maps. They're needed for figuring out which store owns these locations. if is_xml: self.ensure_loc_maps_exist(key)
def __init__(self, mappings, stores, reference_type=None, i18n_service=None, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations :param reference_type: either Location or Locator to indicate what type of reference this app uses. """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = mappings # temporary code for transition period if reference_type is None: log.warn("reference_type not specified in MixedModuleStore settings. %s", "Will default temporarily to the to-be-deprecated Location.") self.use_locations = (reference_type != 'Locator') if 'default' not in stores: raise Exception('Missing a default modulestore in the MixedModuleStore __init__ method.') for key, store in stores.items(): is_xml = 'XMLModuleStore' in store['ENGINE'] if is_xml: store['OPTIONS']['course_ids'] = [ course_id for course_id, store_key in self.mappings.iteritems() if store_key == key ] self.modulestores[key] = create_modulestore_instance( store['ENGINE'], # XMLModuleStore's don't have doc store configs store.get('DOC_STORE_CONFIG', {}), store['OPTIONS'], i18n_service=i18n_service, )
def __init__(self, mappings, stores, i18n_service=None, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = mappings if 'default' not in stores: raise Exception('Missing a default modulestore in the MixedModuleStore __init__ method.') for key, store in stores.iteritems(): is_xml = 'XMLModuleStore' in store['ENGINE'] if is_xml: # restrict xml to only load courses in mapping store['OPTIONS']['course_ids'] = [ course_id for course_id, store_key in self.mappings.iteritems() if store_key == key ] self.modulestores[key] = create_modulestore_instance( store['ENGINE'], # XMLModuleStore's don't have doc store configs store.get('DOC_STORE_CONFIG', {}), store['OPTIONS'], i18n_service=i18n_service, ) # If and when locations can identify their course, we won't need # these loc maps. They're needed for figuring out which store owns these locations. if is_xml: self.ensure_loc_maps_exist(key)
def __init__(self, mappings, stores, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = mappings if "default" not in stores: raise Exception("Missing a default modulestore in the MixedModuleStore __init__ method.") for key, store in stores.items(): self.modulestores[key] = create_modulestore_instance(store["ENGINE"], store["OPTIONS"])
def __init__(self, mappings, stores, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = mappings if 'default' not in stores: raise Exception('Missing a default modulestore in the MixedModuleStore __init__ method.') for key, store in stores.items(): self.modulestores[key] = create_modulestore_instance(store['ENGINE'], store['OPTIONS'])
def __init__(self, mappings, stores): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations """ super(MixedModuleStore, self).__init__() self.modulestores = {} self.mappings = mappings if 'default' not in stores: raise Exception('Missing a default modulestore in the MixedModuleStore __init__ method.') for key in stores: self.modulestores[key] = create_modulestore_instance(stores[key]['ENGINE'], stores[key]['OPTIONS'])
def __init__(self, mappings, stores, i18n_service=None, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = {} for course_id, store_name in mappings.iteritems(): try: self.mappings[CourseKey.from_string(course_id)] = store_name except InvalidKeyError: try: self.mappings[ SlashSeparatedCourseKey.from_deprecated_string( course_id)] = store_name except InvalidKeyError: log.exception( "Invalid MixedModuleStore configuration. Unable to parse course_id %r", course_id) continue if 'default' not in stores: raise Exception( 'Missing a default modulestore in the MixedModuleStore __init__ method.' ) for key, store in stores.iteritems(): is_xml = 'XMLModuleStore' in store['ENGINE'] if is_xml: # restrict xml to only load courses in mapping store['OPTIONS']['course_ids'] = [ course_key.to_deprecated_string() for course_key, store_key in self.mappings.iteritems() if store_key == key ] self.modulestores[key] = create_modulestore_instance( store['ENGINE'], # XMLModuleStore's don't have doc store configs store.get('DOC_STORE_CONFIG', {}), store['OPTIONS'], i18n_service=i18n_service, )
def __init__(self, contentstore, mappings, stores, i18n_service=None, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration information """ super(MixedModuleStore, self).__init__(contentstore, **kwargs) self.modulestores = [] self.mappings = {} for course_id, store_name in mappings.iteritems(): try: self.mappings[CourseKey.from_string(course_id)] = store_name except InvalidKeyError: try: self.mappings[SlashSeparatedCourseKey.from_deprecated_string(course_id)] = store_name except InvalidKeyError: log.exception("Invalid MixedModuleStore configuration. Unable to parse course_id %r", course_id) continue for store_settings in stores: key = store_settings['NAME'] is_xml = 'XMLModuleStore' in store_settings['ENGINE'] if is_xml: # restrict xml to only load courses in mapping store_settings['OPTIONS']['course_ids'] = [ course_key.to_deprecated_string() for course_key, store_key in self.mappings.iteritems() if store_key == key ] store = create_modulestore_instance( store_settings['ENGINE'], self.contentstore, store_settings.get('DOC_STORE_CONFIG', {}), store_settings.get('OPTIONS', {}), i18n_service=i18n_service, ) if key == 'split': store.loc_mapper = loc_mapper() # replace all named pointers to the store into actual pointers for course_key, store_name in self.mappings.iteritems(): if store_name == key: self.mappings[course_key] = store self.modulestores.append(store)
def __init__(self, mappings, stores, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = mappings if 'default' not in stores: raise Exception('Missing a default modulestore in the MixedModuleStore __init__ method.') for key, store in stores.items(): self.modulestores[key] = create_modulestore_instance( store['ENGINE'], # XMLModuleStore's don't have doc store configs store.get('DOC_STORE_CONFIG', {}), store['OPTIONS'] )
def __init__(self, mappings, stores, reference_type=None, i18n_service=None, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations :param reference_type: either Location or Locator to indicate what type of reference this app uses. """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = mappings # temporary code for transition period if reference_type is None: log.warn( "reference_type not specified in MixedModuleStore settings. %s", "Will default temporarily to the to-be-deprecated Location.") self.use_locations = (reference_type != 'Locator') if 'default' not in stores: raise Exception( 'Missing a default modulestore in the MixedModuleStore __init__ method.' ) for key, store in stores.items(): is_xml = 'XMLModuleStore' in store['ENGINE'] if is_xml: store['OPTIONS']['course_ids'] = [ course_id for course_id, store_key in self.mappings.iteritems() if store_key == key ] self.modulestores[key] = create_modulestore_instance( store['ENGINE'], # XMLModuleStore's don't have doc store configs store.get('DOC_STORE_CONFIG', {}), store['OPTIONS'], i18n_service=i18n_service, )
def __init__(self, mappings, stores, i18n_service=None, **kwargs): """ Initialize a MixedModuleStore. Here we look into our passed in kwargs which should be a collection of other modulestore configuration informations """ super(MixedModuleStore, self).__init__(**kwargs) self.modulestores = {} self.mappings = {} for course_id, store_name in mappings.iteritems(): try: self.mappings[CourseKey.from_string(course_id)] = store_name except InvalidKeyError: try: self.mappings[SlashSeparatedCourseKey.from_deprecated_string(course_id)] = store_name except InvalidKeyError: log.exception("Invalid MixedModuleStore configuration. Unable to parse course_id %r", course_id) continue if 'default' not in stores: raise Exception('Missing a default modulestore in the MixedModuleStore __init__ method.') for key, store in stores.iteritems(): is_xml = 'XMLModuleStore' in store['ENGINE'] if is_xml: # restrict xml to only load courses in mapping store['OPTIONS']['course_ids'] = [ course_key.to_deprecated_string() for course_key, store_key in self.mappings.iteritems() if store_key == key ] self.modulestores[key] = create_modulestore_instance( store['ENGINE'], # XMLModuleStore's don't have doc store configs store.get('DOC_STORE_CONFIG', {}), store['OPTIONS'], i18n_service=i18n_service, )