Skip to content

Commit

Permalink
🔧(search) add elastic search client custom settings
Browse files Browse the repository at this point in the history
Add settings that permit to configure elastic search client with custom
configuration like custom timeouts. Closes openfun#1613
  • Loading branch information
igobranco committed Feb 24, 2022
1 parent 765a86c commit 4a5d09f
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 2 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ Versioning](https://semver.org/spec/v2.0.0.html).

- Update frontend overriding system to allow to override any frontend module.

## Added

- Add settings that permit to configure elastic search client with custom
configuration like custom timeouts.

## [2.13.0] - 2022-02-18

### Added
Expand Down
7 changes: 7 additions & 0 deletions sandbox/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,13 @@ class Base(StyleguideMixin, DRFMixin, RichieCoursesConfigurationMixin, Configura
default="richie", environ_name="RICHIE_ES_INDICES_PREFIX", environ_prefix=None
)
RICHIE_ES_STATE_WEIGHTS = values.ListValue(None)
# Example to change the timeout: RICHIE_ES_KWARGS={'timeout': 30}
RICHIE_ES_KWARGS = values.DictValue(
{}, environ_name="RICHIE_ES_KWARGS", environ_prefix=None
)
RICHIE_ES_CREATE_INDEX_KWARGS = values.DictValue(
{}, environ_name="RICHIE_ES_CREATE_INDEX_KWARGS", environ_prefix=None
)

# LTI Content
RICHIE_LTI_PROVIDERS = {
Expand Down
3 changes: 2 additions & 1 deletion src/richie/apps/search/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
default_app_config = "richie.apps.search.apps.SearchConfig"

ES_CLIENT = ElasticsearchClientCompat7to6(
[getattr(settings, "RICHIE_ES_HOST", "elasticsearch")]
[getattr(settings, "RICHIE_ES_HOST", "elasticsearch")],
**getattr(settings, "RICHIE_ES_KWARGS", {}),
)

ES_INDICES_CLIENT = ElasticsearchIndicesClientCompat7to6(ES_CLIENT)
5 changes: 4 additions & 1 deletion src/richie/apps/search/index_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ def perform_create_index(indexable, logger=None):
# Create the new index
if logger:
logger.info(f'Creating a new Elasticsearch index "{new_index:s}"...')
ES_INDICES_CLIENT.create(index=new_index)
ES_INDICES_CLIENT.create(
index=new_index,
**getattr(settings, "RICHIE_ES_CREATE_INDEX_KWARGS", {}),
)

# The index needs to be closed before we set an analyzer
ES_INDICES_CLIENT.close(index=new_index)
Expand Down

0 comments on commit 4a5d09f

Please sign in to comment.