Skip to content

Commit d6022d4

Browse files
committed
fix to upload_preview for datasets and adding test
1 parent 39d6eb9 commit d6022d4

File tree

4 files changed

+41
-1
lines changed

4 files changed

+41
-1
lines changed

pyclowder/api/v2/datasets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ def upload_preview(connector, client, datasetid, previewfile, previewmetadata=No
266266

267267
payload = json.dumps({
268268
"resource": {
269-
"collection": "dataset",
269+
"collection": "datasets",
270270
"resource_id": datasetid
271271
},
272272
"client": client.host,

pyclowder/datasets.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
else:
2323
import pyclowder.api.v1.datasets as datasets
2424

25+
2526
def create_empty(connector, host, key, datasetname, description, parentid=None, spaceid=None):
2627
"""Create a new dataset in Clowder.
2728
@@ -223,3 +224,29 @@ def upload_metadata(connector, host, key, datasetid, metadata):
223224
"""
224225
client = ClowderClient(host=host, key=key)
225226
datasets.upload_metadata(connector, client, datasetid, metadata)
227+
228+
229+
def upload_preview(connector, host, key, datasetid, previewfile, previewmetadata=None, preview_mimetype=None,
230+
visualization_name=None, visualization_description=None, visualization_config_data=None,
231+
visualization_component_id=None):
232+
"""Upload preview to Clowder.
233+
234+
Keyword arguments:
235+
connector -- connector information, used to get missing parameters and send status updates
236+
host -- the clowder host, including http and port, should end with a /
237+
key -- the secret key to login to clowder
238+
datasetid -- the dataset that is currently being processed
239+
previewfile -- the file containing the preview
240+
previewmetadata -- any metadata to be associated with preview, can contain a section_id
241+
to indicate the section this preview should be associated with.
242+
preview_mimetype -- (optional) MIME type of the preview file. By default, this is obtained from the
243+
file itself and this parameter can be ignored. E.g. 'application/vnd.clowder+custom+xml'
244+
"""
245+
246+
client = ClowderClient(host=host, key=key)
247+
preview_id = datasets.upload_preview(connector, client, datasetid, previewfile, previewmetadata, preview_mimetype,
248+
visualization_name=visualization_name,
249+
visualization_description=visualization_description,
250+
visualization_config_data=visualization_config_data,
251+
visualization_component_id=visualization_component_id)
252+
return preview_id
188 KB
Loading

sample-extractors/test-dataset-extractor/test-dataset-extractor.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,19 @@ def process_message(self, connector, host, secret_key, resource, parameters):
6565
else:
6666
logger.info("Metadata: %s", dataset_metadata)
6767

68+
# Upload a preview to dataset
69+
# Local file path to file which you want to upload to dataset for preview
70+
preview_file_path = os.path.join(os.getcwd(), 'preview_file.jpeg')
71+
preview_id = pyclowder.datasets.upload_preview(connector, host, secret_key, dataset_id, preview_file_path, None,
72+
"image/jpeg", visualization_name="test-dataset-extractor",
73+
visualization_component_id="basic-image-component")
74+
if preview_id is None:
75+
logger.info("Preview upload failed")
76+
else:
77+
logger.info("Preview %s uploaded to dataset successfully ", preview_id)
78+
79+
80+
6881

6982
if __name__ == "__main__":
7083
extractor = TestDatasetExtractor()

0 commit comments

Comments
 (0)