From 421d3a6698ce8337ea11d95d452e23bf6d57cb47 Mon Sep 17 00:00:00 2001 From: juanf <juanf@ethz.ch> Date: Wed, 2 Nov 2022 13:02:09 +0100 Subject: [PATCH] SSDM-13033 : Improvement : XLS Sample Regitration/Update to use batch operations --- .../1/as/services/as-eln-lims-api/script.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/services/as-eln-lims-api/script.py b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/services/as-eln-lims-api/script.py index ab2c88938ac..648eaf45c74 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/services/as-eln-lims-api/script.py +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/services/as-eln-lims-api/script.py @@ -8,6 +8,8 @@ import ch.ethz.sis.openbis.generic.server.xls.importer.utils.AttributeValidator import ch.ethz.sis.openbis.generic.server.xls.importer.helper.SampleImportHelper as SampleImportHelper import ch.systemsx.cisd.common.logging.LogCategory as LogCategory; import ch.systemsx.cisd.common.logging.LogFactory as LogFactory; +from java.nio.file import Files +from java.io import File isOpenBIS2020 = True; enableNewSearchEngine = isOpenBIS2020; @@ -331,21 +333,18 @@ def _create_cell(row, cell_index, style, value): return cell_index + 1 def importSamples(context, parameters): - from org.apache.commons.io import IOUtils - sessionKey = parameters.get("sessionKey") allowedSampleTypes = parameters.get("allowedSampleTypes") experimentsByType = parameters.get("experimentsByType", {}) spacesByType = parameters.get("spacesByType", {}) mode = parameters.get("mode") barcodeValidationInfo = json.loads(parameters.get("barcodeValidationInfo")) - contextProvider = CommonServiceProvider.getApplicationContext().getBean("request-context-provider") - uploadedFiles = contextProvider.getHttpServletRequest().getSession(False).getAttribute(sessionKey) - results = [] - for file in uploadedFiles.iterable(): - file_name = file.getOriginalFilename() - bytes = IOUtils.toByteArray(file.getInputStream()) - results.append(importData(context, bytes, file_name, experimentsByType, spacesByType, mode, False)) + sessionManager = CommonServiceProvider.getApplicationContext().getBean("session-manager") + sessionWorkspaceProvider = CommonServiceProvider.getApplicationContext().getBean("session-workspace-provider") + workspaceFolder = sessionWorkspaceProvider.getSessionWorkspace(context.getSessionToken()) + uploadedFile = File(workspaceFolder, sessionKey) + bytes = Files.readAllBytes(uploadedFile.toPath()) + results = importData(context, bytes, sessionKey, experimentsByType, spacesByType, mode, False) return results def validateExperimentOrSpaceDefined(row_number, properties, mode, experiment, space): -- GitLab