From 3bb78220a78a8be2bae9cf5a9d18b3f8f48dcbc9 Mon Sep 17 00:00:00 2001 From: TwistMeister Date: Thu, 19 Oct 2023 17:18:44 +0200 Subject: [PATCH 1/2] Include normalizer name in task list result set --- mula/scheduler/models/normalizer.py | 6 +++--- mula/scheduler/schedulers/normalizer.py | 2 +- rocky/katalogus/views/mixins.py | 6 ++---- rocky/rocky/scheduler.py | 2 +- rocky/rocky/templates/tasks/normalizers.html | 11 ++++++++++- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/mula/scheduler/models/normalizer.py b/mula/scheduler/models/normalizer.py index 044bf23d73d..c545a5be39c 100644 --- a/mula/scheduler/models/normalizer.py +++ b/mula/scheduler/models/normalizer.py @@ -2,15 +2,15 @@ import uuid from typing import Optional -from pydantic import BaseModel +from pydantic import BaseModel, Field class Normalizer(BaseModel): """Normalizer representation.""" id: str - name: Optional[str] = None - version: Optional[str] = None + name: Optional[str] = Field(default=None) + version: Optional[str] = Field(default=None) class NormalizerMeta(BaseModel): diff --git a/mula/scheduler/schedulers/normalizer.py b/mula/scheduler/schedulers/normalizer.py index 58d13424e6c..630fcc7ad95 100644 --- a/mula/scheduler/schedulers/normalizer.py +++ b/mula/scheduler/schedulers/normalizer.py @@ -143,7 +143,7 @@ def push_task(self, normalizer: Plugin, raw_data: RawData, caller: str = "") -> caller: The name of the function that called this function, used for logging. """ task = NormalizerTask( - normalizer=Normalizer(id=normalizer.id), + normalizer=Normalizer.parse_obj(normalizer.dict()), raw_data=raw_data, ) diff --git a/rocky/katalogus/views/mixins.py b/rocky/katalogus/views/mixins.py index 9de948e83be..a4b90b2a2a5 100644 --- a/rocky/katalogus/views/mixins.py +++ b/rocky/katalogus/views/mixins.py @@ -80,11 +80,9 @@ class NormalizerMixin(OctopoesView): this mixin provides the method to construct the normalizer task for that data and run it. """ - def run_normalizer(self, normalizer: KATalogusNormalizer, raw_data: RawData) -> None: + def run_normalizer(self, katalogus_normalizer: KATalogusNormalizer, raw_data: RawData) -> None: normalizer_task = NormalizerTask( - id=uuid4(), - normalizer=Normalizer.parse_obj(normalizer.dict()), - raw_data=raw_data, + id=uuid4().hex, normalizer=Normalizer.parse_obj(katalogus_normalizer.dict()), raw_data=raw_data ) task = QueuePrioritizedItem(id=normalizer_task.id, priority=1, data=normalizer_task) diff --git a/rocky/rocky/scheduler.py b/rocky/rocky/scheduler.py index 0eab8a5b171..5489f99fad1 100644 --- a/rocky/rocky/scheduler.py +++ b/rocky/rocky/scheduler.py @@ -47,7 +47,7 @@ class Normalizer(BaseModel): """Normalizer representation.""" id: Optional[str] - name: Optional[str] + name: Optional[str] = Field(default=None) version: Optional[str] = Field(default=None) diff --git a/rocky/rocky/templates/tasks/normalizers.html b/rocky/rocky/templates/tasks/normalizers.html index 971f1868b59..293138eaa24 100644 --- a/rocky/rocky/templates/tasks/normalizers.html +++ b/rocky/rocky/templates/tasks/normalizers.html @@ -36,7 +36,16 @@

{% translate "Normalizers" %}

{% for task in object_list %} - {{ task.p_item.data.normalizer.id }} + + + {{ task.p_item.data.normalizer.name }} + {% comment %} {% if task.p_item.data.normalizer.name %} + {{ task.p_item.data.normalizer.name }} + {% else %} + {{ task.p_item.data.normalizer.id }} + {% endif %} {% endcomment %} + + {% if task.status.value == "pending" or task.status.value == "queued" %}  {{ task.status.value|capfirst }} From dfb1b7f29fe6144e30b46482c09f2d2b875110ce Mon Sep 17 00:00:00 2001 From: TwistMeister Date: Wed, 1 Nov 2023 16:07:50 +0100 Subject: [PATCH 2/2] Update client.py --- rocky/katalogus/client.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/rocky/katalogus/client.py b/rocky/katalogus/client.py index 107fd9f4826..0d5a257bad1 100644 --- a/rocky/katalogus/client.py +++ b/rocky/katalogus/client.py @@ -200,19 +200,16 @@ def parse_boefje(boefje: Dict) -> Boefje: def parse_normalizer(normalizer: Dict) -> Normalizer: - # TODO: give normalizers a proper name in backend - name = normalizer["id"].replace("_", " ").replace("kat ", "").title() - consumes = set(normalizer["consumes"]) produces = set() with contextlib.suppress(StopIteration): - consumes.add(f"normalizer/{name.lower()}") + consumes.add(f"normalizer/{normalizer.get('name') or normalizer['id']}") produces.add(type_by_name(normalizer["produces"])) return Normalizer( id=normalizer["id"], repository_id=normalizer["repository_id"], - name=name or normalizer["id"], + name=normalizer.get("name") or normalizer["id"], description=normalizer["description"], enabled=normalizer["enabled"], type=normalizer["type"],