bugfixing
This commit is contained in:
parent
05274985da
commit
379486b830
|
@ -182,14 +182,18 @@ public class SynchEngineImpl implements SyncEngine{
|
|||
|
||||
@Override
|
||||
public void setSynchronizedFolder(SynchFolderConfiguration config,String folderId) throws WorkspaceInteractionException, InternalException {
|
||||
|
||||
// Check config
|
||||
if(config==null) throw new InternalException("Passed config is null : "+config);
|
||||
String remotePath=config.getRemotePath();
|
||||
if(remotePath==null||remotePath.isEmpty()||remotePath.startsWith("/"))
|
||||
throw new InternalException("Invalid remote path "+remotePath+".");
|
||||
|
||||
User operator=Security.getCurrent();
|
||||
if(!operator.getContext().equals(config.getTargetContext()))
|
||||
throw new SecurityException("Invalid operation. Configuration pointed to "+config.getTargetContext()+" while operator is in "+operator.getContext());
|
||||
|
||||
|
||||
new WorkspaceFolderManager(folderId).configure(config);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,7 +15,6 @@ import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
|||
import org.gcube.data.transfer.model.RemoteFileDescriptor;
|
||||
import org.gcube.data.transfer.model.plugins.thredds.ThreddsCatalog;
|
||||
import org.gcube.usecases.ws.thredds.Constants;
|
||||
import org.gcube.usecases.ws.thredds.engine.impl.security.Security;
|
||||
import org.gcube.usecases.ws.thredds.engine.impl.threads.ProcessIdProvider;
|
||||
import org.gcube.usecases.ws.thredds.faults.InternalException;
|
||||
import org.gcube.usecases.ws.thredds.faults.LockNotOwnedException;
|
||||
|
@ -122,7 +121,14 @@ public class WorkspaceFolderManager {
|
|||
SynchFolderConfiguration config=getSynchConfiguration();
|
||||
try{
|
||||
checkFolder(theFolder,recursively,config,null,theFolder.getId(),WorkspaceUtils.safelyGetLastUpdate(theFolder.get()));
|
||||
return new SyncFolderDescriptor(this.folderId,this.theFolder.get().getPath(),config);
|
||||
SynchronizationStatus resultingStatus=SynchronizationStatus.valueOf(theFolder.get().getMetadata().getMap().get(Constants.WorkspaceProperties.LAST_UPDATE_STATUS)+"");
|
||||
|
||||
log.info("Resulting status for {} IS {} ",folderId,resultingStatus);
|
||||
|
||||
return new SyncFolderDescriptor(
|
||||
this.folderId,
|
||||
this.theFolder.get().getPath(),
|
||||
config,new SynchronizedElementInfo(resultingStatus));
|
||||
}catch(StorageHubException e) {
|
||||
throw new WorkspaceInteractionException(e);
|
||||
}
|
||||
|
|
|
@ -391,7 +391,7 @@ public class WorkspaceUtils {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
config.setTargetContext(ctx+"");
|
||||
|
||||
config.setToCreateCatalogName(""+map.get(Constants.WorkspaceProperties.RELATED_CATALOG));
|
||||
config.setValidateMetadata(Boolean.parseBoolean(""+map.get(Constants.WorkspaceProperties.VALIDATE_METADATA)));
|
||||
|
|
|
@ -16,12 +16,13 @@ public class SyncFolderDescriptor {
|
|||
private String folderPath;
|
||||
@NonNull
|
||||
private SynchFolderConfiguration configuration;
|
||||
|
||||
@NonNull
|
||||
private boolean isLocked=false;
|
||||
private Boolean isLocked=false;
|
||||
|
||||
|
||||
private ProcessDescriptor localProcessDescriptor=null;
|
||||
|
||||
|
||||
private SynchronizedElementInfo info=null;
|
||||
@NonNull
|
||||
private SynchronizedElementInfo info;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,18 @@
|
|||
package org.gcube.usecases.ws.thredds.model;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Data
|
||||
public class SynchronizedElementInfo {
|
||||
|
||||
public static enum SynchronizationStatus{
|
||||
UP_TO_DATE,OUTDATED_WS,OUTDATED_REMOTE
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private SynchronizationStatus status;
|
||||
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
|||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||
import org.gcube.usecases.ws.thredds.engine.impl.ThreddsController;
|
||||
import org.gcube.usecases.ws.thredds.engine.impl.WorkspaceUtils;
|
||||
import org.gcube.usecases.ws.thredds.faults.InternalException;
|
||||
import org.gcube.usecases.ws.thredds.engine.impl.security.Security;
|
||||
import org.gcube.usecases.ws.thredds.model.SynchFolderConfiguration;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
|
@ -37,24 +37,16 @@ public class TestCommons {
|
|||
|
||||
private static Map<String,TestSet> configs=new HashMap<>();
|
||||
|
||||
private static String toUseConfig="simple";
|
||||
private static String toUseConfig="root";
|
||||
|
||||
|
||||
static {
|
||||
|
||||
// configs.put("GP", new TestSet("GPTests","/d4science.research-infrastructures.eu","a8cd78d3-69e8-4d02-ac90-681b2d16d84d","","",""));
|
||||
|
||||
// folderName="WS-Tests";
|
||||
|
||||
configs.put("simple", new TestSet("Simple label ","/gcube/devsec/devVRE", "Test1","public/netcdf/simpleFolder","3aa85bbf-d5f3-4df4-ad03-4f8f788eba3d-98187548","simple"));
|
||||
// configs.put("cmems", new TestSet("CMEMS","/gcube", "CMEMS","public/netcdf/CMEMS","***REMOVED***","cmems"));
|
||||
//
|
||||
// configs.put("default", new TestSet("Default Tests","/gcube","Thredds Catalog","public/netcdf","***REMOVED***","main"));
|
||||
//
|
||||
// configs.put("default", new TestSet("Default Tests","/gcube","WS-Tests","simpleCatalog","***REMOVED***","main"));
|
||||
//
|
||||
//
|
||||
// configs.put("pre", new TestSet("Default Tests","/pred4s/preprod/preVRE","Thredds Synch","Fabio WS","91a8433b-9491-42c1-95e2-420245ef1943-980114272","SynchTestCatalog"));
|
||||
|
||||
configs.put("root", new TestSet("Simple label ","/gcube", "Test2","public/netcdf/wrong","3aa85bbf-d5f3-4df4-ad03-4f8f788eba3d-98187548","Wrong"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -120,6 +112,6 @@ public class TestCommons {
|
|||
|
||||
public static SynchFolderConfiguration getSynchConfig() throws Exception {
|
||||
TestSet set=configs.get(toUseConfig);
|
||||
return new SynchFolderConfiguration(set.getRemotePath(), "*.nc,*.ncml,*.asc", set.getTargetToken(),set.getToCreateCatalogName(),set.getFolderId());
|
||||
return new SynchFolderConfiguration(set.getRemotePath(), "*.nc,*.ncml,*.asc", Security.getCurrent().getContext(),set.getToCreateCatalogName(),set.getFolderId());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue