From 876b9a86315db6d0cd00e453f7f3793b64f2400f Mon Sep 17 00:00:00 2001 From: Pablo Boizeau <pablo.boizeau@ird.fr> Date: Tue, 10 Dec 2024 14:15:57 +0100 Subject: [PATCH 1/6] Redirect logger to stdout --- theia_dumper/logger.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/theia_dumper/logger.py b/theia_dumper/logger.py index 0021812..c335763 100644 --- a/theia_dumper/logger.py +++ b/theia_dumper/logger.py @@ -1,4 +1,5 @@ """Logging stuff.""" import logging -logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG) +import sys +logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG, stream=sys.stdout) logger = logging.getLogger(__name__) -- GitLab From 6d2afbad6ab9b922c08fe770d79f2cae6d6000b6 Mon Sep 17 00:00:00 2001 From: Pablo Boizeau <pablo.boizeau@ird.fr> Date: Tue, 10 Dec 2024 14:16:58 +0100 Subject: [PATCH 2/6] Improve dinamis post error retrieval --- theia_dumper/stac.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/theia_dumper/stac.py b/theia_dumper/stac.py index 41a7809..9f5ea4f 100644 --- a/theia_dumper/stac.py +++ b/theia_dumper/stac.py @@ -55,7 +55,11 @@ def post_or_put(url: str, data: dict): if not resp.status_code == 404: resp.raise_for_status() else: - resp.raise_for_status() + try: + resp.raise_for_status() + except Exception as e: + logger.error(eval(resp.content)["detail"]) + raise(e) def load(obj_pth): -- GitLab From 793db1e87999896b431ce63d65cb59bc5b98d09e Mon Sep 17 00:00:00 2001 From: Pablo Boizeau <pablo.boizeau@ird.fr> Date: Tue, 10 Dec 2024 14:48:13 +0100 Subject: [PATCH 3/6] Fix logging loglevel from environment --- theia_dumper/logger.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/theia_dumper/logger.py b/theia_dumper/logger.py index c335763..9a23f90 100644 --- a/theia_dumper/logger.py +++ b/theia_dumper/logger.py @@ -1,5 +1,6 @@ """Logging stuff.""" import logging import sys -logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG, stream=sys.stdout) +import os +logging.basicConfig(format='%(levelname)s:%(message)s', level=os.environ.get("LOGLEVEL", "INFO"), stream=sys.stdout) logger = logging.getLogger(__name__) -- GitLab From 128091e2c94638f1d454768c24413d3888952ede Mon Sep 17 00:00:00 2001 From: Pablo Boizeau <pablo.boizeau@ird.fr> Date: Tue, 10 Dec 2024 14:48:35 +0100 Subject: [PATCH 4/6] Improve items publish logic and fix asset href --- theia_dumper/stac.py | 47 +++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/theia_dumper/stac.py b/theia_dumper/stac.py index 9f5ea4f..4892949 100644 --- a/theia_dumper/stac.py +++ b/theia_dumper/stac.py @@ -139,10 +139,10 @@ class TransactionsHandler: self.storage_bucket, col_id ) - local_assets_files = [asset.href for asset in item.assets.values()] # Upload assets files - for local_filename in local_assets_files: + for asset_name, asset in item.assets.items(): + local_filename = asset.href logger.debug("Local file: %s", local_filename) target_url = local_filename.replace( assets_root_dir, @@ -165,29 +165,32 @@ class TransactionsHandler: # Upload file logger.info("Uploading %s ...", local_filename) - dinamis_sdk.push( - local_filename=local_filename, - target_url=target_url - ) + try: + dinamis_sdk.push( + local_filename=local_filename, + target_url=target_url + ) + except Exception as e: + logger.error(e) + raise(e) # Update assets hrefs logger.debug("Updating assets HREFs ...") - for asset_name in item.assets: - item.assets[asset_name].href = target_url - - # Push item - logger.info( - "Publishing item \"%s\" in collection \"%s\"", - item.id, - col_id - ) - post_or_put( - urljoin( - self.stac_endpoint, - f"collections/{col_id}/items" - ), - item.to_dict(transform_hrefs=False) - ) + asset.href = target_url + + # Push item + logger.info( + "Publishing item \"%s\" in collection \"%s\"", + item.id, + col_id + ) + post_or_put( + urljoin( + self.stac_endpoint, + f"collections/{col_id}/items" + ), + item.to_dict(transform_hrefs=False) + ) def publish_items(self, items: List[Item]): """Publish items.""" -- GitLab From 54bcd2cc9ef3925c9286a8ffd0c00e0f61fbf803 Mon Sep 17 00:00:00 2001 From: Pablo Boizeau <pablo.boizeau@ird.fr> Date: Tue, 10 Dec 2024 15:20:44 +0100 Subject: [PATCH 5/6] Change bucket used in CI --- tests/all.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/all.py b/tests/all.py index bbe2590..4fcedd2 100644 --- a/tests/all.py +++ b/tests/all.py @@ -10,7 +10,7 @@ from theia_dumper import stac handler = stac.TransactionsHandler( stac_endpoint="https://stacapi-cdos.apps.okd.crocc.meso.umontpellier.fr", storage_endpoint="https://s3-data.meso.umontpellier.fr", - storage_bucket="sm1-gdc", + storage_bucket="sm1-gdc-tests", assets_overwrite=True ) -- GitLab From b67d6b85eeb432ae867762e5c1c261ce1bb9f0cd Mon Sep 17 00:00:00 2001 From: Pablo Boizeau <pablo.boizeau@ird.fr> Date: Tue, 10 Dec 2024 15:49:01 +0100 Subject: [PATCH 6/6] Set dinamis_sdk version and increase version --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5120816..553cfe9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "theia_dumper" -version = "0.0.1" +version = "0.0.2" description = "THEIA-MTP geospatial data publisher" authors = [ { name = "Rémi Cresson", email = "remi.cresson@inrae.fr" }, @@ -13,7 +13,7 @@ requires-python = ">=3.9" dependencies = [ "pystac", "pystac_client", - "dinamis_sdk > 0.3.0", + "dinamis_sdk==0.3.3", "requests", "rio-cogeo" ] -- GitLab