I expect I'm just overlooking something simple on this, but I'm trying to attach a log file to a dataset. This is in a python script. Everything other than the attachment has been working fairly reliably. But, whenever I add the attachment, I start getting an error when I set the output from the script. The code that sets the attachments, my output, and my error the code are below. The "ds" object in the code below later gets set in the "client.setOutput(resName, robject(ds))". Without the "linkAnnotation" line, I don't see any errors. Anything obvious I'm doing wrong here.
(As a side note, thanks for all the previous help. I am trying to clean up my code enough to put it on GitHub, but I'm not there, yet.)
Thanks,
Michael
First the code:
- Code: Select all
for f in logs:
print "Log: "+ f
f_a = conn.createFileAnnfromLocalFile(f, mimetype="text/plain", ns=omero.constants.namespaces.NSCOMPANIONFILE, desc="Image creation logs")
print "Attaching annotation " + str(f_a.getId())
print "Annotation of type " +str(type(f_a))
for ds in datasets:
print "Attaching logs to DataSet "+ str(ds.getId())
print "Dataset of type "+ str(type(ds))
ds.linkAnnotation(f_a)
Second the output:
- Code: Select all
Log: /media/gsn/omero_test/InPlaceData/deconvolved_image_2019-02-25-17-19-30/logs/deconvolution_batch_2305.stderr
Attaching annotation 35
Annotation of type <class 'omero.gateway.FileAnnotationWrapper'>
Attaching logs to DataSet object #0 (::omero::RLong)
{
_val = 1175
}
Dataset of type <class 'omero.model.DatasetI'>
The return type is <type 'list'>)
Third the error:
- Code: Select all
Traceback (most recent call last):
File "./script", line 244, in <module>
run_script()
File "./script", line 234, in run_script
client.setOutput(resName, robject(ds))
File "/home/omero/OMERO.server-5.4.9-ice36-b101/lib/python/omero/clients.py", line 1105, in setOutput
self._env(False, "setOutput", key, value)
File "/home/omero/OMERO.server-5.4.9-ice36-b101/lib/python/omero/clients.py", line 1074, in _env
rv = apply(m, (u,)+args)
File "/home/omero/OMERO.server-5.4.9-ice36-b101/lib/python/omero_api_ISession_ice.py", line 816, in setOutput
return _M_omero.api.ISession._op_setOutput.invoke(self, ((sess, key, value), _ctx))
ValueError: invalid value for ::omero::model::DatasetAnnotationLink member `_child'
!! 02/25/19 17:10:55.987 error: communicator not destroyed during global destruction.