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.
 
    


