From ab2f95f534af3d634b896869a6ad2fe03bf58655 Mon Sep 17 00:00:00 2001
From: Viktor Kovtun <viktor.kovtun@id.ethz.ch>
Date: Wed, 7 Aug 2019 10:14:30 +0200
Subject: [PATCH] SSDM-8405 Fixing hard-coded data store code. Taking the first
 datastore found using V3 API.

---
 .../1/as/services/publication-api/publication-api.py     | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/services/publication-api/publication-api.py b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/services/publication-api/publication-api.py
index 0ec4cd80f96..7a0b3713a11 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/services/publication-api/publication-api.py
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/services/publication-api/publication-api.py
@@ -4,7 +4,9 @@ from ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset import DataSetKind
 from ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.create import DataSetCreation
 from ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.fetchoptions import DataSetFetchOptions
 from ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id import DataSetPermId
+from ch.ethz.sis.openbis.generic.asapi.v3.dto.datastore.fetchoptions import DataStoreFetchOptions
 from ch.ethz.sis.openbis.generic.asapi.v3.dto.datastore.id import DataStorePermId
+from ch.ethz.sis.openbis.generic.asapi.v3.dto.datastore.search import DataStoreSearchCriteria
 from ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype import EntityKind
 from ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.id import EntityTypePermId
 from ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id import ExperimentIdentifier
@@ -63,7 +65,7 @@ def createDataSet(parameters, sessionToken, v3, sampleId):
     dataSetIds = v3.getDataSets(sessionToken, identifiers, DataSetFetchOptions()).keys()
     operationLog.debug('Found %d data sets.' % len(dataSetIds))
 
-    dataStoreCode = parameters.get('dataStoreCode')
+    dataStoreCode = getDefaultDataStoreCode(v3, sessionToken)
 
     dataSetCreation = DataSetCreation()
     dataSetCreation.setAutoGeneratedCode(True)
@@ -75,6 +77,11 @@ def createDataSet(parameters, sessionToken, v3, sampleId):
     v3.createDataSets(sessionToken, [dataSetCreation])
 
 
+def getDefaultDataStoreCode(v3, sessionToken):
+    searchResult = v3.searchDataStores(sessionToken, DataStoreSearchCriteria(), DataStoreFetchOptions())
+    return searchResult.objects.get(0).code
+
+
 def createPublicationSample(parameters, sessionToken, v3):
     publicationOrganization = parameters.get('publicationOrganization')
     publicationType = parameters.get('publicationType')  # The only valid value for now is "Public Repository"
-- 
GitLab