From 4664a57dedff3a947a5f286c18e11b597b8a707c Mon Sep 17 00:00:00 2001 From: Zacharias Zacharodimos Date: Fri, 14 Jun 2024 10:32:17 +0200 Subject: [PATCH 1/3] global: add support for index templates --- invenio_stats/config.py | 6 ++++++ invenio_stats/templates.py | 20 ++++++++++++++++++-- setup.cfg | 2 ++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/invenio_stats/config.py b/invenio_stats/config.py index 437dd0c..ab5b705 100644 --- a/invenio_stats/config.py +++ b/invenio_stats/config.py @@ -70,3 +70,9 @@ delivery_mode="transient", # in-memory queue ) """Default exchange used for the message queues.""" + +STATS_REGISTER_INDEX_TEMPLATES = False +"""Register templates as index templates. + +Default behaviour will register the templates as search templates. +""" diff --git a/invenio_stats/templates.py b/invenio_stats/templates.py index bb94208..cbc4e40 100644 --- a/invenio_stats/templates.py +++ b/invenio_stats/templates.py @@ -8,11 +8,13 @@ """Celery background tasks.""" +from flask import current_app + from .proxies import current_stats -def register_templates(): - """Register search templates for events.""" +def _collect_templates(): + """Return event and aggregation templates from config.""" event_templates = [ event["templates"] for event in current_stats.events_config.values() ] @@ -21,3 +23,17 @@ def register_templates(): ] return event_templates + aggregation_templates + + +def register_templates(): + """Register search templates for events.""" + if current_app.config["STATS_REGISTER_INDEX_TEMPLATES"]: + return [] + return _collect_templates() + + +def register_index_templates(): + """Register search index templates for events.""" + if not current_app.config["STATS_REGISTER_INDEX_TEMPLATES"]: + return [] + return _collect_templates() diff --git a/setup.cfg b/setup.cfg index 25b08b6..cc84b02 100644 --- a/setup.cfg +++ b/setup.cfg @@ -70,6 +70,8 @@ invenio_base.api_blueprints = invenio_stats = invenio_stats.views:blueprint invenio_search.templates = invenio_stats = invenio_stats.templates:register_templates +invenio_search.index_templates = + invenio_stats = invenio_stats.templates:register_index_templates invenio_queues.queues = invenio_stats = invenio_stats.queues:declare_queues From 80b597a7abde31cb5f590fa41d6427c69e2f0861 Mon Sep 17 00:00:00 2001 From: Zacharias Zacharodimos Date: Wed, 14 Aug 2024 15:48:49 +0200 Subject: [PATCH 2/3] ci: use reusable workflows --- .github/actions/pre-install/action.yml | 4 ++ .github/workflows/tests.yml | 53 +++----------------------- 2 files changed, 9 insertions(+), 48 deletions(-) create mode 100644 .github/actions/pre-install/action.yml diff --git a/.github/actions/pre-install/action.yml b/.github/actions/pre-install/action.yml new file mode 100644 index 0000000..df93ae1 --- /dev/null +++ b/.github/actions/pre-install/action.yml @@ -0,0 +1,4 @@ +runs: + using: composite + steps: + - uses: ts-graphviz/setup-graphviz@v1 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8a69c00..142e6a0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -7,57 +7,14 @@ on: branches: master schedule: # * is a special character in YAML so you have to quote this string - - cron: '0 3 * * 6' + - cron: "0 3 * * 6" workflow_dispatch: inputs: reason: - description: 'Reason' + description: "Reason" required: false - default: 'Manual trigger' + default: "Manual trigger" jobs: - Tests: - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: - # You can add/remove combinations e.g. `dev` requirements or `postgresql13` by adding - # a new item to the following lists. - # You can see the complete list of services and versions that are available at: - # https://docker-services-cli.readthedocs.io/en/latest/configuration.html - python-version: [3.9, 3.12] - search-service: [opensearch2, opensearch1] - include: - - search-service: opensearch2 - SEARCH_EXTRAS: "opensearch2" - - - search-service: opensearch1 - SEARCH_EXTRAS: "opensearch1" - - env: - SEARCH: ${{ matrix.search-service }} - EXTRAS: tests,${{ matrix.SEARCH_EXTRAS }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Graphviz - uses: ts-graphviz/setup-graphviz@v1 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - cache: pip - cache-dependency-path: setup.cfg - - - name: Install dependencies - run: | - pip install ".[$EXTRAS]" - pip freeze - docker --version - docker-compose --version - - - name: Run tests - run: ./run-tests.sh + Python: + uses: inveniosoftware/workflows/.github/workflows/tests-python.yml@master From 0d7db4e0a293a90783f3d08a3ca5f7a8c71182d4 Mon Sep 17 00:00:00 2001 From: Zacharias Zacharodimos Date: Wed, 14 Aug 2024 15:48:58 +0200 Subject: [PATCH 3/3] release: v4.1.0 --- CHANGES.rst | 7 +++++++ invenio_stats/__init__.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index f0fbd82..b0856a5 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -9,6 +9,13 @@ Changes ======= +Version 4.1.0 (release 2024-08-14) +---------------------------------- + +- introduce a new config `STATS_REGISTER_INDEX_TEMPLATES` to be able to register + events and aggregations as index templates (ensure backwards compatibility) + + Version 4.0.2 (release 2024-03-04) ---------------------------------- diff --git a/invenio_stats/__init__.py b/invenio_stats/__init__.py index 42df74b..9a8cb7c 100644 --- a/invenio_stats/__init__.py +++ b/invenio_stats/__init__.py @@ -440,7 +440,7 @@ def register_queries(): from .ext import InvenioStats from .proxies import current_stats -__version__ = "4.0.2" +__version__ = "4.1.0" __all__ = ( "__version__",