commit
191b69d0ce
|
@ -1,9 +1,13 @@
|
||||||
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
# Changelog for org.gcube.data.publishing.ckan2zenodo-library
|
# 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
|
## [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
|
## [v1.0.0] 2021-02-18
|
||||||
|
|
||||||
|
|
4
pom.xml
4
pom.xml
|
@ -8,7 +8,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>org.gcube.data.publishing</groupId>
|
<groupId>org.gcube.data.publishing</groupId>
|
||||||
<artifactId>ckan2zenodo-library</artifactId>
|
<artifactId>ckan2zenodo-library</artifactId>
|
||||||
<version>1.0.1</version>
|
<version>1.0.2</version>
|
||||||
<name>CKAN 2 Zenodo Library</name>
|
<name>CKAN 2 Zenodo Library</name>
|
||||||
<description>Library to publish d4science CKAN items into Zenodo</description>
|
<description>Library to publish d4science CKAN items into Zenodo</description>
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.data-catalogue</groupId>
|
<groupId>org.gcube.data-catalogue</groupId>
|
||||||
<artifactId>gcat-client</artifactId>
|
<artifactId>gcat-client</artifactId>
|
||||||
<version>[2.0.0-SNAPSHOT,3.0.0)</version>
|
<version>[2.0.0,3.0.0)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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.InvalidItemException;
|
||||||
import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationException;
|
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.faults.ZenodoException;
|
||||||
|
import org.gcube.data.publishing.ckan2zenodo.model.report.EnvironmentReport;
|
||||||
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
|
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
|
||||||
|
|
||||||
public interface Ckan2Zenodo {
|
public interface Ckan2Zenodo {
|
||||||
|
@ -106,4 +107,6 @@ public interface Ckan2Zenodo {
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
public EnvironmentReport checkEnvironment();
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.Future;
|
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.FileUploaderManager;
|
||||||
import org.gcube.data.publishing.ckan2zenodo.clients.GCat;
|
import org.gcube.data.publishing.ckan2zenodo.clients.GCat;
|
||||||
import org.gcube.data.publishing.ckan2zenodo.clients.UploadFilesCall;
|
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.InvalidItemException;
|
||||||
import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationException;
|
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.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 org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
@ -109,6 +112,39 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
|
||||||
return toReturn;
|
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
|
@Override
|
||||||
public ZenodoDeposition forceTranslation(CkanItemDescriptor desc) throws InvalidItemException, ZenodoException, TransformationException {
|
public ZenodoDeposition forceTranslation(CkanItemDescriptor desc) throws InvalidItemException, ZenodoException, TransformationException {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -73,7 +73,9 @@ public class GCat {
|
||||||
new Item().update(toUpdate.getName(), toUpdate.getContent());
|
new Item().update(toUpdate.getName(), toUpdate.getContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void check() throws MalformedURLException {
|
||||||
|
new Item().count();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static String getItemUrl(CkanItemDescriptor toUpdate) throws GcatException {
|
private static String getItemUrl(CkanItemDescriptor toUpdate) throws GcatException {
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
package org.gcube.data.publishing.ckan2zenodo.model.report;
|
||||||
|
|
||||||
|
public enum Status {
|
||||||
|
|
||||||
|
ERROR,WARNING,PASSED
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue