Skip to content
Snippets Groups Projects
Commit 616b4d78 authored by Marco Del Tufo's avatar Marco Del Tufo
Browse files

Update openbis-kinme-nodes.md

parent 514be28d
No related branches found
No related tags found
1 merge request!40SSDM-13578 : 2PT : Database and V3 Implementation - include the new AFS "free"...
...@@ -324,74 +324,77 @@ argument: The string array of vocabulary terms. ...@@ -324,74 +324,77 @@ argument: The string array of vocabulary terms.
#### Example for an Aggregation Service Report Reader #### Example for an Aggregation Service Report Reader
from ch.systemsx.cisd.openbis.knime.server import AggregationCommand ```py
from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchCriteria from ch.systemsx.cisd.openbis.knime.server import AggregationCommand
from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchSubCriteria 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 from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto import SearchSubCriteria
from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClauseAttribute from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClause
EXPERIMENT = 'Experiment' from ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchCriteria import MatchClauseAttribute
DATA_SET_COLUMN = 'Data Set' EXPERIMENT = 'Experiment'
PATH_COLUMN = 'Path' DATA_SET_COLUMN = 'Data Set'
SIZE_COLUMN = 'Size' PATH_COLUMN = 'Path'
def scan(tableBuilder, dataSetCode, node): SIZE_COLUMN = 'Size'
if node.isDirectory(): def scan(tableBuilder, dataSetCode, node):
for child in node.childNodes: if node.isDirectory():
scan(tableBuilder, dataSetCode, child) for child in node.childNodes:
else: scan(tableBuilder, dataSetCode, child)
row = tableBuilder.addRow() else:
row.setCell(DATA_SET_COLUMN, dataSetCode) row = tableBuilder.addRow()
row.setCell(PATH_COLUMN, node.relativePath) row.setCell(DATA_SET_COLUMN, dataSetCode)
row.setCell(SIZE_COLUMN, node.fileLength) row.setCell(PATH_COLUMN, node.relativePath)
class MyAggregationCommand(AggregationCommand): row.setCell(SIZE_COLUMN, node.fileLength)
def defineParameters(self, builder): class MyAggregationCommand(AggregationCommand):
builder.parameter(EXPERIMENT).experiment() def defineParameters(self, builder):
builder.parameter(EXPERIMENT).experiment()
def aggregate(self, parameters, tableBuilder):
experiment = searchService.getExperiment(parameters.get(EXPERIMENT)) def aggregate(self, parameters, tableBuilder):
searchCriteria = SearchCriteria() experiment = searchService.getExperiment(parameters.get(EXPERIMENT))
subCriteria = SearchCriteria() searchCriteria = SearchCriteria()
subCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.PERM_ID, experiment.permId)) subCriteria = SearchCriteria()
searchCriteria.addSubCriteria(SearchSubCriteria.createExperimentCriteria(subCriteria)) subCriteria.addMatchClause(MatchClause.createAttributeMatch(MatchClauseAttribute.PERM_ID, experiment.permId))
dataSets = searchService.searchForDataSets(searchCriteria) searchCriteria.addSubCriteria(SearchSubCriteria.createExperimentCriteria(subCriteria))
tableBuilder.addHeader(DATA_SET_COLUMN) dataSets = searchService.searchForDataSets(searchCriteria)
tableBuilder.addHeader(PATH_COLUMN) tableBuilder.addHeader(DATA_SET_COLUMN)
tableBuilder.addHeader(SIZE_COLUMN) tableBuilder.addHeader(PATH_COLUMN)
for dataSet in dataSets: tableBuilder.addHeader(SIZE_COLUMN)
dataSetCode = dataSet.dataSetCode for dataSet in dataSets:
try: dataSetCode = dataSet.dataSetCode
content = contentProvider.getContent(dataSetCode) try:
scan(tableBuilder, dataSetCode, content.rootNode) content = contentProvider.getContent(dataSetCode)
finally: scan(tableBuilder, dataSetCode, content.rootNode)
if content != None: finally:
content.close() if content != None:
content.close()
def aggregate(parameters, tableBuilder):
MyAggregationCommand().handleRequest(parameters, tableBuilder) def aggregate(parameters, tableBuilder):
MyAggregationCommand().handleRequest(parameters, tableBuilder)
```
#### Example for an Aggregated Data File Importer
#### Example for an Aggregated Data File Importer
import os.path ```java
from java.util import Date import os.path
from ch.systemsx.cisd.openbis.knime.server import AggregationFileCommand from java.util import Date
from ch.systemsx.cisd.openbis.knime.server import AggregationFileCommand
class MyAggregationFileCommand(AggregationFileCommand):
def defineParameters(self, builder): class MyAggregationFileCommand(AggregationFileCommand):
builder.parameter('Greeting Type').vocabulary(['Hi', 'Hello']) def defineParameters(self, builder):
builder.parameter('Name') builder.parameter('Greeting Type').vocabulary(['Hi', 'Hello'])
builder.parameter('Sample').sample() builder.parameter('Name')
builder.parameter('Sample').sample()
def createFile(self, parameters):
sessionWorkspace = sessionWorkspaceProvider.getSessionWorkspace() def createFile(self, parameters):
filename = "report.txt" sessionWorkspace = sessionWorkspaceProvider.getSessionWorkspace()
output = open(os.path.join(sessionWorkspace.getAbsolutePath(), filename), "w") filename = "report.txt"
name = parameters.get('Name') output = open(os.path.join(sessionWorkspace.getAbsolutePath(), filename), "w")
sample = searchService.getSample(parameters.get('Sample')) name = parameters.get('Name')
output.write(str(parameters.get('Greeting Type')) + " " + str(name) + "!\n\n" + Date().toString() + "\n") sample = searchService.getSample(parameters.get('Sample'))
output.write(sample.getSampleType()) output.write(str(parameters.get('Greeting Type')) + " " + str(name) + "!\n\n" + Date().toString() + "\n")
output.close() output.write(sample.getSampleType())
return filename output.close()
return filename
def aggregate(parameters, tableBuilder):
MyAggregationFileCommand().handleRequest(parameters, tableBuilder) def aggregate(parameters, tableBuilder):
MyAggregationFileCommand().handleRequest(parameters, tableBuilder)
```
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