From d6d947f7779bf1880049c0d51f825dbdc306f7ad Mon Sep 17 00:00:00 2001
From: vermeul <swen@ethz.ch>
Date: Thu, 23 May 2019 13:39:21 +0200
Subject: [PATCH] SSDM-8316: optional permId param allows to store new phyiscal
 dataSet with a predefined permId

---
 .../dataset-uploader-api/dataset-uploader-api.py    | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/openbis_standard_technologies/dist/core-plugins/dataset-uploader/1/dss/reporting-plugins/dataset-uploader-api/dataset-uploader-api.py b/openbis_standard_technologies/dist/core-plugins/dataset-uploader/1/dss/reporting-plugins/dataset-uploader-api/dataset-uploader-api.py
index be1020b6320..74bfe7e73fd 100644
--- a/openbis_standard_technologies/dist/core-plugins/dataset-uploader/1/dss/reporting-plugins/dataset-uploader-api/dataset-uploader-api.py
+++ b/openbis_standard_technologies/dist/core-plugins/dataset-uploader/1/dss/reporting-plugins/dataset-uploader-api/dataset-uploader-api.py
@@ -45,6 +45,7 @@ def process(tr, parameters, tableBuilder):
 	tr.setUserId(userId);
 	
 	if method == "insertDataSet":
+                permId = parameters.get("permId");
 		sampleIdentifier = parameters.get("sampleIdentifier"); #String
 		experimentIdentifier = parameters.get("experimentIdentifier"); #String
 		dataSetType = parameters.get("dataSetType"); #String
@@ -55,7 +56,7 @@ def process(tr, parameters, tableBuilder):
 		isZipDirectoryUpload = parameters.get("isZipDirectoryUpload"); #String
 		metadata = parameters.get("properties"); #java.util.LinkedHashMap<String, String> where the key is the name
 		parentIdentifiers = parameters.get('parentIdentifiers');
-		isOk, result = insertDataSet(tr, sampleIdentifier, experimentIdentifier, dataSetType, folderName, fileNames, isZipDirectoryUpload, metadata, parentIdentifiers);
+		isOk, result = insertDataSet(tr, permId, sampleIdentifier, experimentIdentifier, dataSetType, folderName, fileNames, isZipDirectoryUpload, metadata, parentIdentifiers);
 	
 	if isOk:
 		tableBuilder.addHeader("STATUS");
@@ -82,10 +83,14 @@ def getThreadProperties(transaction):
       pass
   return threadPropertyDict
 
-def insertDataSet(tr, sampleIdentifier, experimentIdentifier, dataSetType, folderName, fileNames, isZipDirectoryUpload, metadata, parentIds):
+def insertDataSet(tr, permId, sampleIdentifier, experimentIdentifier, dataSetType, folderName, fileNames, isZipDirectoryUpload, metadata, parentIds):
 		
-	#Create Dataset
-	dataSet = tr.createNewDataSet(dataSetType);
+	#Create Dataset, either with or without a prior defined permId
+        if permId is not None:
+	    dataSet = tr.createNewDataSet(dataSetType, permId);
+        else:
+	    dataSet = tr.createNewDataSet(dataSetType);
+
 	dataSet.setParentDatasets(parentIds);
 	if sampleIdentifier is not None:
 		dataSetSample = tr.getSampleForUpdate(sampleIdentifier);
-- 
GitLab