git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-analysis/DataMiner@179537 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
ed556a9960
commit
f47693f27a
|
@ -19,6 +19,7 @@ import org.gcube.common.storagehub.client.dsl.FolderContainer;
|
|||
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||
import org.gcube.common.storagehub.model.Metadata;
|
||||
import org.gcube.common.storagehub.model.exceptions.ItemLockedException;
|
||||
import org.gcube.common.storagehub.model.items.GCubeItem;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.FileTools;
|
||||
|
@ -62,6 +63,9 @@ public class DataspaceManager implements Runnable {
|
|||
public static String operator = "operator_name";
|
||||
public static String payload = "payload";
|
||||
|
||||
private String statusComputationName;
|
||||
private static final String STATUS_POSTFIX="-STATUS";
|
||||
|
||||
public DataspaceManager(AlgorithmConfiguration config, ComputationData computation, List<StoredData> inputData,
|
||||
List<StoredData> outputData, List<File> generatedFiles) {
|
||||
this.config = config;
|
||||
|
@ -69,6 +73,8 @@ public class DataspaceManager implements Runnable {
|
|||
this.inputData = inputData;
|
||||
this.outputData = outputData;
|
||||
this.generatedFiles = generatedFiles;
|
||||
this.statusComputationName = this.computation.id+STATUS_POSTFIX;
|
||||
|
||||
LOGGER.debug("DataspaceManager [config=" + config + ", computation=" + computation + ", inputData=" + inputData
|
||||
+ ", outputData=" + outputData + ", generatedFiles=" + generatedFiles + "]");
|
||||
}
|
||||
|
@ -459,8 +465,10 @@ public class DataspaceManager implements Runnable {
|
|||
|
||||
List<String> scopes = new ArrayList<String>();
|
||||
scopes.add(config.getGcubeScope());
|
||||
|
||||
//TODO: update gcubeItem not recreate it...
|
||||
GCubeItem gcubeItem = new GCubeItem();
|
||||
gcubeItem.setName(computation.id);
|
||||
gcubeItem.setName(this.statusComputationName);
|
||||
gcubeItem.setDescription(computation.operatorDescription);
|
||||
gcubeItem.setScopes(scopes.toArray(new String[scopes.size()]));
|
||||
gcubeItem.setItemType(itemType);
|
||||
|
@ -501,19 +509,25 @@ public class DataspaceManager implements Runnable {
|
|||
.getContainers().get(0);
|
||||
LOGGER.debug("Dataspace->removing computation data");
|
||||
|
||||
List<ItemContainer<? extends Item>> wi = computationContainer.findByName(computation.id).getContainers();
|
||||
if (wi.isEmpty()) {
|
||||
for (ItemContainer<? extends Item> container : wi)
|
||||
container.forceDelete();
|
||||
List<ItemContainer<? extends Item>> wi = computationContainer.findByName(this.statusComputationName).getContainers();
|
||||
if (!wi.isEmpty()) {
|
||||
for (ItemContainer<? extends Item> container : wi) {
|
||||
boolean retry = false;
|
||||
do {
|
||||
try {
|
||||
container.forceDelete();
|
||||
retry = false;
|
||||
}catch (ItemLockedException e) {
|
||||
LOGGER.warn("item locked, retrying");
|
||||
Thread.sleep(1000);
|
||||
retry = true;
|
||||
}
|
||||
}while (retry);
|
||||
}
|
||||
} else
|
||||
LOGGER.debug("Dataspace->Warning Could not find {} under {}", computation.id,
|
||||
LOGGER.debug("Dataspace->Warning Could not find {} under {}", this.statusComputationName,
|
||||
computationContainer.get().getName());
|
||||
|
||||
List<ItemContainer<? extends Item>> fileComputations = computationContainer.findByName(computation.id)
|
||||
.getContainers();
|
||||
|
||||
if (fileComputations.size() > 0)
|
||||
fileComputations.get(0).forceDelete();;
|
||||
|
||||
/*
|
||||
* TODO: ASK GIANPAOLO int maxtries = 3; int i =1; while
|
||||
|
|
Loading…
Reference in New Issue