114 lines
4.6 KiB
Java
114 lines
4.6 KiB
Java
package org.gcube.usecases.ws.thredds;
|
|
|
|
import java.io.IOException;
|
|
import java.net.MalformedURLException;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import org.gcube.common.homelibrary.home.HomeLibrary;
|
|
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
|
|
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
|
import org.gcube.common.homelibrary.home.exceptions.UserNotFoundException;
|
|
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
|
|
import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException;
|
|
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException;
|
|
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundException;
|
|
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
|
|
import org.gcube.usecases.ws.thredds.engine.impl.ThreddsController;
|
|
import org.gcube.usecases.ws.thredds.faults.InternalException;
|
|
import org.gcube.usecases.ws.thredds.model.SynchFolderConfiguration;
|
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Getter;
|
|
|
|
public class TestCommons {
|
|
|
|
@Getter
|
|
@AllArgsConstructor
|
|
static class TestSet{
|
|
String label;
|
|
String scope;
|
|
String folderId;
|
|
String remotePath;
|
|
String targetToken;
|
|
String toCreateCatalogName;
|
|
|
|
|
|
public String getFolderId() throws WorkspaceFolderNotFoundException, ItemNotFoundException, InternalErrorException, HomeNotFoundException, UserNotFoundException {
|
|
if(folderId.startsWith("/"))
|
|
return getWSIdByPath(folderId);
|
|
else return folderId;
|
|
}
|
|
|
|
}
|
|
|
|
private static Map<String,TestSet> configs=new HashMap<>();
|
|
|
|
private static String toUseConfig="pre";
|
|
|
|
|
|
static {
|
|
|
|
configs.put("GP", new TestSet("GPTests","/d4science.research-infrastructures.eu","a8cd78d3-69e8-4d02-ac90-681b2d16d84d","","",""));
|
|
|
|
// folderName="WS-Tests";
|
|
|
|
configs.put("default", new TestSet("Default Tests","/gcube/devsec/devVRE","/Workspace/ThreddsDev","public/netcdf","***REMOVED***","main"));
|
|
|
|
|
|
configs.put("pre", new TestSet("Default Tests","/gcube/preprod/preVRE","/Workspace/CMEMS","public/netcdf/CMEMS","***REMOVED***","main"));
|
|
|
|
}
|
|
|
|
|
|
public static String getWSIdByPath(String path) throws WorkspaceFolderNotFoundException, InternalErrorException, HomeNotFoundException, UserNotFoundException, ItemNotFoundException {
|
|
Workspace ws = HomeLibrary.getHomeManagerFactory().getHomeManager().getHome().getWorkspace();
|
|
return ws.getItemByPath(path).getId();
|
|
}
|
|
|
|
|
|
public static void setScope() {
|
|
TokenSetter.set(configs.get(toUseConfig).getScope());
|
|
}
|
|
|
|
|
|
public static WorkspaceFolder getTestFolder() throws WorkspaceFolderNotFoundException, InternalErrorException, HomeNotFoundException, UserNotFoundException, ItemNotFoundException, InsufficientPrivilegesException, ItemAlreadyExistException, MalformedURLException, IOException {
|
|
Workspace ws = HomeLibrary.getHomeManagerFactory().getHomeManager().getHome().getWorkspace();
|
|
try{
|
|
return (WorkspaceFolder) ws.getItem(configs.get(toUseConfig).getFolderId());
|
|
}catch(Throwable t) {
|
|
// try to use path
|
|
return (WorkspaceFolder) ws.getItemByPath(configs.get(toUseConfig).getFolderId());
|
|
}
|
|
|
|
|
|
|
|
// WorkspaceFolder folder=null;
|
|
// try{
|
|
// folder=ws.getRoot().createFolder(folderName+"2", "test purposes");
|
|
// }catch(ClassCastException e) {
|
|
// folder=(WorkspaceFolder) ws.getItemByPath("/Workspace/"+folderName+"2");
|
|
// }
|
|
//
|
|
// String datasetUrl="https://thredds-d-d4s.d4science.org/thredds/fileServer/public/netcdf/test%20by%20Francesco/dissolved_oxygen_annual_5deg_ENVIRONMENT_BIOTA_.nc";
|
|
// try {
|
|
// folder.createExternalFileItem("dissolved_oxygen_annual_5deg_ENVIRONMENT_BIOTA_.nc", "nc test file", "application/x-netcdf", new URL(datasetUrl).openStream());
|
|
// }catch(Exception e) {
|
|
// // file already existing..
|
|
// }
|
|
// return folder;
|
|
}
|
|
|
|
|
|
public static ThreddsController getThreddsController() throws InternalException, WorkspaceFolderNotFoundException, ItemNotFoundException, InternalErrorException, HomeNotFoundException, UserNotFoundException {
|
|
SynchFolderConfiguration config=getSynchConfig();
|
|
return new ThreddsController(config.getRemotePath(), config.getTargetToken());
|
|
}
|
|
|
|
public static SynchFolderConfiguration getSynchConfig() throws WorkspaceFolderNotFoundException, ItemNotFoundException, InternalErrorException, HomeNotFoundException, UserNotFoundException {
|
|
TestSet set=configs.get(toUseConfig);
|
|
return new SynchFolderConfiguration(set.getRemotePath(), "*.nc,*.ncml,*.asc", set.getTargetToken(),set.getToCreateCatalogName(),set.getFolderId());
|
|
}
|
|
}
|