Credentials loading from IS

This commit is contained in:
Fabio Sinibaldi 2020-01-07 18:03:26 +01:00
parent a5a1383ab1
commit 4ceed8a581
5 changed files with 42 additions and 11 deletions

View File

@ -52,8 +52,9 @@ public interface Ckan2Zenodo {
* @param toUpdate * @param toUpdate
* @return * @return
* @throws ZenodoException * @throws ZenodoException
* @throws ConfigurationException
*/ */
public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException; public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException, ConfigurationException;
/** /**
* Filters ckan resources of @param desc by using mappings declared in current VRE * Filters ckan resources of @param desc by using mappings declared in current VRE
@ -72,8 +73,9 @@ public interface Ckan2Zenodo {
* @param deposition * @param deposition
* @return * @return
* @throws ZenodoException * @throws ZenodoException
* @throws ConfigurationException
*/ */
public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload,ZenodoDeposition deposition) throws ZenodoException; public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload,ZenodoDeposition deposition) throws ZenodoException, ConfigurationException;
/** /**
* Publishes @param dep, setting/updateing DOI reference into @param toUpdate * Publishes @param dep, setting/updateing DOI reference into @param toUpdate
@ -82,7 +84,8 @@ public interface Ckan2Zenodo {
* @param toUpdate * @param toUpdate
* @return * @return
* @throws ZenodoException * @throws ZenodoException
* @throws ConfigurationException
*/ */
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException; public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException, ConfigurationException;
} }

View File

@ -47,7 +47,7 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
} }
@Override @Override
public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException { public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException, ConfigurationException {
if(toUpdate.getSubmitted()) if(toUpdate.getSubmitted())
Zenodo.get().unlockPublished(toUpdate.getId()); Zenodo.get().unlockPublished(toUpdate.getId());
@ -61,7 +61,7 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
} }
@Override @Override
public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload, ZenodoDeposition deposition) throws ZenodoException { public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload, ZenodoDeposition deposition) throws ZenodoException, ConfigurationException {
final Zenodo z=Zenodo.get(); final Zenodo z=Zenodo.get();
if(deposition.getSubmitted()) if(deposition.getSubmitted())
@ -86,7 +86,7 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
} }
@Override @Override
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException { public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException, ConfigurationException {
if(dep.getSubmitted()) if(dep.getSubmitted())
Zenodo.get().unlockPublished(dep.getId()); Zenodo.get().unlockPublished(dep.getId());

View File

@ -16,12 +16,15 @@ public class LocalConfiguration {
public static class Configuration{ public static class Configuration{
public static final String THREAD_POOL_SIZE="THREAD_POOL_SIZE"; public static final String THREAD_POOL_SIZE="THREAD_POOL_SIZE";
public static final String ZENODO_ENDPOINT_CATEGORY="ZENODO_ENDPOINT_CATEGORY";
public static final String ZENODO_ENDPOINT_PLATFORM="ZENODO_ENDPOINT_PLATFORM";
} }
public static final Map<String,Object> defaultConfigurationMap=new HashMap<String,Object>(); public static final Map<String,Object> defaultConfigurationMap=new HashMap<String,Object>();
static { static {
defaultConfigurationMap.put(Configuration.THREAD_POOL_SIZE, "5"); defaultConfigurationMap.put(Configuration.THREAD_POOL_SIZE, "5");
defaultConfigurationMap.put(Configuration.ZENODO_ENDPOINT_CATEGORY,"Repository");
defaultConfigurationMap.put(Configuration.ZENODO_ENDPOINT_PLATFORM,"Zenodo");
} }
private static LocalConfiguration instance=null; private static LocalConfiguration instance=null;

View File

@ -5,6 +5,7 @@ import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
import java.util.List;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import java.util.concurrent.Future; import java.util.concurrent.Future;
@ -14,8 +15,14 @@ import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import org.gcube.common.resources.gcore.ServiceEndpoint;
import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint;
import org.gcube.data.publishing.ckan2zenodo.Fixer; import org.gcube.data.publishing.ckan2zenodo.Fixer;
import org.gcube.data.publishing.ckan2zenodo.LocalConfiguration;
import org.gcube.data.publishing.ckan2zenodo.LocalConfiguration.Configuration;
import org.gcube.data.publishing.ckan2zenodo.commons.IS;
import org.gcube.data.publishing.ckan2zenodo.model.ZenodoCredentials; import org.gcube.data.publishing.ckan2zenodo.model.ZenodoCredentials;
import org.gcube.data.publishing.ckan2zenodo.model.faults.ConfigurationException;
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.zenodo.DepositionMetadata; import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.FileDeposition; import org.gcube.data.publishing.ckan2zenodo.model.zenodo.FileDeposition;
@ -61,9 +68,16 @@ public class Zenodo {
} }
public static final Zenodo get() { public static final Zenodo get() throws ConfigurationException {
// READ FROM IS String eprCategory=LocalConfiguration.getProperty(Configuration.ZENODO_ENDPOINT_CATEGORY);
throw new RuntimeException("IMPLEMENT THIS"); String eprPlatform=LocalConfiguration.getProperty(Configuration.ZENODO_ENDPOINT_PLATFORM);
List<ServiceEndpoint> eps=IS.queryForServiceEndpoints(eprCategory,eprPlatform);
if(eps.isEmpty()) throw new ConfigurationException("No Zenodo Credentials found ("+eprCategory+" : "+eprPlatform+")");
if(eps.size()>1) throw new ConfigurationException("Multiple ["+eps.size()+"] Zenodo Credentials found ("+eprCategory+" : "+eprPlatform+")");
AccessPoint se=eps.get(0).profile().accessPoints().iterator().next();
ZenodoCredentials toSet=new ZenodoCredentials(se.password(), se.address());
return new Zenodo(toSet);
} }

View File

@ -5,7 +5,7 @@ import java.net.MalformedURLException;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.data.publishing.ckan2zenodo.clients.GCat; import org.gcube.data.publishing.ckan2zenodo.clients.GCat;
import org.gcube.data.publishing.ckan2zenodo.model.CkanItemDescriptor; import org.gcube.data.publishing.ckan2zenodo.model.CkanItemDescriptor;
import org.junit.Before; import org.gcube.gcat.client.Item;
import org.junit.Test; import org.junit.Test;
public class GCatTests { public class GCatTests {
@ -21,4 +21,15 @@ public class GCatTests {
System.out.println(item.getProfile()); System.out.println(item.getProfile());
} }
@Test
public void publishUpdate() throws MalformedURLException {
TokenSetter.set("/gcube/devsec/devVRE");
System.out.println(SecurityTokenProvider.instance.get());
String json=TestCommons.convertStreamToString(GCatTests.class.getResourceAsStream("/ResearchObject.json"));
new Item().create(json);
// GCat.updateItem(toUpdate);
}
} }