From 3e6478738d61a650993a4c86971f048d548fc911 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Fri, 30 Jul 2021 12:04:55 +0200 Subject: [PATCH 1/3] Introduced environemnt check --- CHANGELOG.md | 6 +++- pom.xml | 4 +-- .../publishing/ckan2zenodo/Ckan2Zenodo.java | 3 ++ .../ckan2zenodo/Ckan2ZenodoImpl.java | 34 +++++++++++++++++++ .../publishing/ckan2zenodo/clients/GCat.java | 4 ++- .../model/report/EnvironmentReport.java | 19 +++++++++++ .../ckan2zenodo/model/report/Status.java | 6 ++++ .../gcube/tests/EnvironmentCheckTests.java | 28 +++++++++++++++ 8 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/EnvironmentReport.java create mode 100644 src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/Status.java create mode 100644 src/test/java/org/gcube/tests/EnvironmentCheckTests.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f18661..f098521 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,13 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). # Changelog for org.gcube.data.publishing.ckan2zenodo-library +## [v1.0.2-SNAPSHOT] 2021-07-30 +- Introduced environemnt check [#19990](https://support.d4science.org/issues/19990) + + ## [v1.0.1] 2021-04-7 --Integration with gCat 2.0.0 [#20751](https://support.d4science.org/issues/20751) +- Integration with gCat 2.0.0 [#20751](https://support.d4science.org/issues/20751) ## [v1.0.0] 2021-02-18 diff --git a/pom.xml b/pom.xml index c234ef4..c420bd0 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ org.gcube.data.publishing ckan2zenodo-library - 1.0.1 + 1.0.2-SNAPSHOT CKAN 2 Zenodo Library Library to publish d4science CKAN items into Zenodo @@ -42,7 +42,7 @@ org.gcube.data-catalogue gcat-client - [2.0.0-SNAPSHOT,3.0.0) + [2.0.0,3.0.0) diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2Zenodo.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2Zenodo.java index 67caf97..98db493 100644 --- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2Zenodo.java +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2Zenodo.java @@ -13,6 +13,7 @@ import org.gcube.data.publishing.ckan2zenodo.model.faults.GcatException; import org.gcube.data.publishing.ckan2zenodo.model.faults.InvalidItemException; import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationException; import org.gcube.data.publishing.ckan2zenodo.model.faults.ZenodoException; +import org.gcube.data.publishing.ckan2zenodo.model.report.EnvironmentReport; import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition; public interface Ckan2Zenodo { @@ -106,4 +107,6 @@ public interface Ckan2Zenodo { * * */ + + public EnvironmentReport checkEnvironment(); } diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java index 9cfd943..893f72a 100644 --- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java @@ -17,6 +17,8 @@ import org.gcube.data.publishing.ckan2zenodo.model.faults.GcatException; import org.gcube.data.publishing.ckan2zenodo.model.faults.InvalidItemException; import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationException; import org.gcube.data.publishing.ckan2zenodo.model.faults.ZenodoException; +import org.gcube.data.publishing.ckan2zenodo.model.report.EnvironmentReport; +import org.gcube.data.publishing.ckan2zenodo.model.report.Status; import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition; import lombok.extern.slf4j.Slf4j; @@ -109,6 +111,38 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{ return toReturn; } + @Override + public EnvironmentReport checkEnvironment() { + log.info("Checking environment.. "); + long start=System.currentTimeMillis(); + EnvironmentReport report=new EnvironmentReport(); + // check gCat presence + String gCatCheck="GCat Presence : "; + try{ + GCat.check(); + gCatCheck+= "OK"; + report.getReportItems().put(gCatCheck, Status.PASSED); + }catch(Throwable t){ + gCatCheck+= "Unable to contact gCat : "+t.getMessage(); + report.getReportItems().put(gCatCheck, Status.ERROR); + } + log.info("Checked GCat presence in "+(System.currentTimeMillis()-start)+"ms"); + + + // check zenodo credentials + String zenodoCheck="Zenodo : "; + try{ + Zenodo.get(); + zenodoCheck+= "OK"; + report.getReportItems().put(zenodoCheck, Status.PASSED); + }catch(Throwable t){ + zenodoCheck+= "Unable to contact Zenodo : "+t.getMessage(); + report.getReportItems().put(zenodoCheck, Status.ERROR); + } + log.info("Environment report produced in "+(System.currentTimeMillis()-start)+"ms"); + return report; + } + @Override public ZenodoDeposition forceTranslation(CkanItemDescriptor desc) throws InvalidItemException, ZenodoException, TransformationException { try { diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/clients/GCat.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/clients/GCat.java index 4c30a7e..5541717 100644 --- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/clients/GCat.java +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/clients/GCat.java @@ -73,7 +73,9 @@ public class GCat { new Item().update(toUpdate.getName(), toUpdate.getContent()); } - + public static void check() throws MalformedURLException { + new Item().count(); + } private static String getItemUrl(CkanItemDescriptor toUpdate) throws GcatException { diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/EnvironmentReport.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/EnvironmentReport.java new file mode 100644 index 0000000..f5ad836 --- /dev/null +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/EnvironmentReport.java @@ -0,0 +1,19 @@ +package org.gcube.data.publishing.ckan2zenodo.model.report; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +@Data +public class EnvironmentReport { + + + private HashMap reportItems=new HashMap<>(); + + public boolean isok(){ + for(Map.Entry entry:reportItems.entrySet()) + if(entry.getValue().equals(Status.ERROR)) return false; + return true; + } +} diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/Status.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/Status.java new file mode 100644 index 0000000..3b68263 --- /dev/null +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/Status.java @@ -0,0 +1,6 @@ +package org.gcube.data.publishing.ckan2zenodo.model.report; + +public enum Status { + + ERROR,WARNING,PASSED +} diff --git a/src/test/java/org/gcube/tests/EnvironmentCheckTests.java b/src/test/java/org/gcube/tests/EnvironmentCheckTests.java new file mode 100644 index 0000000..e60736c --- /dev/null +++ b/src/test/java/org/gcube/tests/EnvironmentCheckTests.java @@ -0,0 +1,28 @@ +package org.gcube.tests; + +import org.gcube.data.publishing.ckan2zenodo.Ckan2Zenodo; +import org.gcube.data.publishing.ckan2zenodo.Ckan2ZenodoImpl; +import org.gcube.data.publishing.ckan2zenodo.model.report.EnvironmentReport; +import org.junit.Assume; +import org.junit.Test; + +public class EnvironmentCheckTests { + + @Test + public void failCheckEnvironemnt(){ + TokenSetter.set("/gcube"); + Ckan2Zenodo client=new Ckan2ZenodoImpl(); + EnvironmentReport report=client.checkEnvironment(); + Assume.assumeFalse(report.isok()); + System.out.println(report); + } + + @Test + public void okCheckEnvironemnt(){ + TokenSetter.set("/pred4s/preprod/preVRE"); + Ckan2Zenodo client=new Ckan2ZenodoImpl(); + EnvironmentReport report=client.checkEnvironment(); + Assume.assumeTrue(report.isok()); + System.out.println(report); + } +} -- 2.17.1 From 80335b92dac3ae00a31c5310fe5d60742973e2f8 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Fri, 30 Jul 2021 12:27:49 +0200 Subject: [PATCH 2/3] Environment Report contains current context --- .../gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java | 2 ++ .../ckan2zenodo/model/report/EnvironmentReport.java | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java index 893f72a..50bee69 100644 --- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2ZenodoImpl.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Set; import java.util.concurrent.Future; +import org.gcube.common.scope.api.ScopeProvider; import org.gcube.data.publishing.ckan2zenodo.clients.FileUploaderManager; import org.gcube.data.publishing.ckan2zenodo.clients.GCat; import org.gcube.data.publishing.ckan2zenodo.clients.UploadFilesCall; @@ -116,6 +117,7 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{ log.info("Checking environment.. "); long start=System.currentTimeMillis(); EnvironmentReport report=new EnvironmentReport(); + report.setContext(ScopeProvider.instance.get()); // check gCat presence String gCatCheck="GCat Presence : "; try{ diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/EnvironmentReport.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/EnvironmentReport.java index f5ad836..e538a32 100644 --- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/EnvironmentReport.java +++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/model/report/EnvironmentReport.java @@ -1,6 +1,9 @@ package org.gcube.data.publishing.ckan2zenodo.model.report; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; import java.util.HashMap; import java.util.Map; @@ -11,6 +14,8 @@ public class EnvironmentReport { private HashMap reportItems=new HashMap<>(); + private String context; + public boolean isok(){ for(Map.Entry entry:reportItems.entrySet()) if(entry.getValue().equals(Status.ERROR)) return false; -- 2.17.1 From 00685693d955ddc6e0fa7458bd937717f67fd41a Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Fri, 8 Oct 2021 11:36:03 +0200 Subject: [PATCH 3/3] Release --- CHANGELOG.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f098521..7239c0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). # Changelog for org.gcube.data.publishing.ckan2zenodo-library -## [v1.0.2-SNAPSHOT] 2021-07-30 +## [v1.0.2] 2021-07-30 - Introduced environemnt check [#19990](https://support.d4science.org/issues/19990) diff --git a/pom.xml b/pom.xml index c420bd0..b775a62 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ org.gcube.data.publishing ckan2zenodo-library - 1.0.2-SNAPSHOT + 1.0.2 CKAN 2 Zenodo Library Library to publish d4science CKAN items into Zenodo -- 2.17.1