Skip to content
Snippets Groups Projects
Commit f20cd35d authored by juanf's avatar juanf
Browse files

Fixing Non Parents found using the default transaction API

SVN: 33782
parent 612535e5
No related branches found
No related tags found
No related merge requests found
...@@ -21,10 +21,30 @@ from java.io import File ...@@ -21,10 +21,30 @@ from java.io import File
from java.io import FileOutputStream from java.io import FileOutputStream
from java.lang import System from java.lang import System
from net.lingala.zip4j.core import ZipFile from net.lingala.zip4j.core import ZipFile
from ch.systemsx.cisd.common.exceptions import UserFailureException
from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchCriteria
from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClause, SearchOperator, MatchClauseAttribute
import time import time
import subprocess import subprocess
import os.path import os.path
def getSampleByIdentifierForUpdate(tr, identifier):
space = identifier.split("/")[1];
code = identifier.split("/")[2];
criteria = SearchCriteria();
criteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.SPACE, space));
criteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.CODE, code));
criteria.setOperator(SearchOperator.MATCH_ALL_CLAUSES);
searchService = tr.getSearchService();
found = list(searchService.searchForSamples(criteria));
if len(found) == 1:
return tr.makeSampleMutable(found[0]);
else:
raise UserFailureException(identifier + " Not found by search service.");
def process(tr, parameters, tableBuilder): def process(tr, parameters, tableBuilder):
method = parameters.get("method"); method = parameters.get("method");
...@@ -178,7 +198,7 @@ def insertDataSet(tr, parameters, tableBuilder): ...@@ -178,7 +198,7 @@ def insertDataSet(tr, parameters, tableBuilder):
metadata = parameters.get("metadata"); #java.util.LinkedHashMap<String, String> where the key is the name metadata = parameters.get("metadata"); #java.util.LinkedHashMap<String, String> where the key is the name
#Create Dataset #Create Dataset
dataSetSample = tr.getSample(sampleIdentifier); dataSetSample = getSampleByIdentifierForUpdate(tr, sampleIdentifier);
dataSet = tr.createNewDataSet(dataSetType); dataSet = tr.createNewDataSet(dataSetType);
dataSet.setSample(dataSetSample); dataSet.setSample(dataSetSample);
...@@ -248,7 +268,7 @@ def copySample(tr, parameters, tableBuilder): ...@@ -248,7 +268,7 @@ def copySample(tr, parameters, tableBuilder):
#Copy children and attach to Sample #Copy children and attach to Sample
if sampleChildren != None: if sampleChildren != None:
for sampleChildIdentifier in sampleChildren: for sampleChildIdentifier in sampleChildren:
child = tr.getSample(sampleChildIdentifier); #Retrieve Sample child to copy child = getSampleByIdentifierForUpdate(tr, sampleChildIdentifier); #Retrieve Sample child to copy
copyChildCode = None copyChildCode = None
try: #For autogenerated children that have the code as sufix try: #For autogenerated children that have the code as sufix
...@@ -316,7 +336,7 @@ def insertUpdateSample(tr, parameters, tableBuilder): ...@@ -316,7 +336,7 @@ def insertUpdateSample(tr, parameters, tableBuilder):
sample = tr.createNewSample(sampleIdentifier, sampleType); #Create Sample given his id sample = tr.createNewSample(sampleIdentifier, sampleType); #Create Sample given his id
if method == "updateSample": if method == "updateSample":
sample = tr.getSampleForUpdate(sampleIdentifier); #Retrieve Sample sample = getSampleByIdentifierForUpdate(tr, sampleIdentifier); #Retrieve Sample
#Obtain space #Obtain space
space = None; space = None;
...@@ -362,7 +382,7 @@ def insertUpdateSample(tr, parameters, tableBuilder): ...@@ -362,7 +382,7 @@ def insertUpdateSample(tr, parameters, tableBuilder):
#Add sample children #Add sample children
if sampleChildren != None: if sampleChildren != None:
for sampleChildIdentifier in sampleChildren: for sampleChildIdentifier in sampleChildren:
child = tr.getSampleForUpdate(sampleChildIdentifier); #Retrieve Sample child = getSampleByIdentifierForUpdate(tr, sampleChildIdentifier); #Retrieve Sample
if child != None: #The new created ones will not be found if child != None: #The new created ones will not be found
childParents = child.getParentSampleIdentifiers(); childParents = child.getParentSampleIdentifiers();
childParents.add(sampleIdentifier); childParents.add(sampleIdentifier);
...@@ -371,7 +391,7 @@ def insertUpdateSample(tr, parameters, tableBuilder): ...@@ -371,7 +391,7 @@ def insertUpdateSample(tr, parameters, tableBuilder):
#Remove sample children #Remove sample children
if sampleChildrenRemoved != None: if sampleChildrenRemoved != None:
for sampleChildIdentifier in sampleChildrenRemoved: for sampleChildIdentifier in sampleChildrenRemoved:
child = tr.getSampleForUpdate(sampleChildIdentifier); #Retrieve Sample child = getSampleByIdentifierForUpdate(tr, sampleChildIdentifier); #Retrieve Sample
if child != None: #The new created ones will not be found if child != None: #The new created ones will not be found
childParents = child.getParentSampleIdentifiers(); childParents = child.getParentSampleIdentifiers();
childParents.remove(sampleIdentifier); childParents.remove(sampleIdentifier);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment