Merge pull request '1.0.2' (!3) from 1.0.2 into master

Reviewed-on: #3
This commit is contained in:
Fabio Sinibaldi 2021-10-08 11:37:27 +02:00
commit 191b69d0ce
8 changed files with 107 additions and 4 deletions

View File

@ -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] 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

View File

@ -8,7 +8,7 @@
</parent>
<groupId>org.gcube.data.publishing</groupId>
<artifactId>ckan2zenodo-library</artifactId>
<version>1.0.1</version>
<version>1.0.2</version>
<name>CKAN 2 Zenodo Library</name>
<description>Library to publish d4science CKAN items into Zenodo</description>
@ -42,7 +42,7 @@
<dependency>
<groupId>org.gcube.data-catalogue</groupId>
<artifactId>gcat-client</artifactId>
<version>[2.0.0-SNAPSHOT,3.0.0)</version>
<version>[2.0.0,3.0.0)</version>
</dependency>

View File

@ -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();
}

View File

@ -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;
@ -17,6 +18,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 +112,39 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
return toReturn;
}
@Override
public EnvironmentReport checkEnvironment() {
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{
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 {

View File

@ -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 {

View File

@ -0,0 +1,24 @@
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;
@Data
public class EnvironmentReport {
private HashMap<String,Status> reportItems=new HashMap<>();
private String context;
public boolean isok(){
for(Map.Entry<String,Status> entry:reportItems.entrySet())
if(entry.getValue().equals(Status.ERROR)) return false;
return true;
}
}

View File

@ -0,0 +1,6 @@
package org.gcube.data.publishing.ckan2zenodo.model.report;
public enum Status {
ERROR,WARNING,PASSED
}

View File

@ -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);
}
}