def doChange(gateway, obj_type, obj_ids, group_id, container_id=None, test_should_pass=True, return_complete=True): """ Performs the change-group action, waits on completion and checks that the result is not an error. """ prx = gateway.chgrpObjects(obj_type, obj_ids, group_id, container_id) if not return_complete: return prx cb = CmdCallbackI(gateway.c, prx) try: for i in range(10): cb.loop(20, 500) if prx.getResponse() is not None: break assert prx.getResponse() is not None prx.getStatus() rsp = prx.getResponse() if test_should_pass: assert not isinstance(rsp, ERR), \ "Found ERR when test_should_pass==true: %s (%s) params=%s" \ % (rsp.category, rsp.name, rsp.parameters) assert State.FAILURE not in prx.getStatus().flags else: assert not isinstance(rsp, OK), \ "Found OK when test_should_pass==false: %s" % rsp assert State.FAILURE in prx.getStatus().flags return rsp finally: cb.close(True)
def write_to_omero(self): to_delete = {"Annotation": self.mapannids + self.fileannids} delCmd = omero.cmd.Delete2(targetObjects=to_delete) handle = self.client.getSession().submit(delCmd) callback = None try: callback = CmdCallbackI(self.client, handle) loops = max(10, len(self.mapannids) / 10) delay = 500 callback.loop(loops, delay) rsp = callback.getResponse() if isinstance(rsp, omero.cmd.OK): ndma = len(rsp.deletedObjects.get( "ome.model.annotations.MapAnnotation", [])) log.info("Deleted %d MapAnnotation(s)", ndma) ndfa = len(rsp.deletedObjects.get( "ome.model.annotations.FileAnnotation", [])) log.info("Deleted %d FileAnnotation(s)", ndfa) else: log.error("Delete failed: %s", rsp) finally: if callback: callback.close(True) else: handle.close()
def write_to_omero(self): to_delete = {"Annotation": self.mapannids + self.fileannids} delCmd = omero.cmd.Delete2(targetObjects=to_delete) handle = self.client.getSession().submit(delCmd) callback = None try: callback = CmdCallbackI(self.client, handle) loops = max(10, len(self.mapannids) / 10) delay = 500 callback.loop(loops, delay) rsp = callback.getResponse() if isinstance(rsp, omero.cmd.OK): ndma = len( rsp.deletedObjects.get( "ome.model.annotations.MapAnnotation", [])) log.info("Deleted %d MapAnnotation(s)", ndma) ndfa = len( rsp.deletedObjects.get( "ome.model.annotations.FileAnnotation", [])) log.info("Deleted %d FileAnnotation(s)", ndfa) else: log.error("Delete failed: %s", rsp) finally: if callback: callback.close(True) else: handle.close()
def doChange(self, obj_type, obj_ids, group_id, container_id=None, test_should_pass=True, return_complete=True): """ Performs the change-group action, waits on completion and checks that the result is not an error. """ prx = self.gateway.chgrpObjects(obj_type, obj_ids, group_id, container_id) if not return_complete: return prx cb = CmdCallbackI(self.gateway.c, prx) try: for i in range(10): cb.loop(20, 500) if prx.getResponse() != None: break self.assertNotEqual(prx.getResponse(), None) status = prx.getStatus() rsp = prx.getResponse() if test_should_pass: if isinstance(rsp, ERR): self.fail("Found ERR when test_should_pass==true: %s (%s) params=%s" % (rsp.category, rsp.name, rsp.parameters)) self.assertFalse(State.FAILURE in prx.getStatus().flags) else: if isinstance(rsp, OK): self.fail("Found OK when test_should_pass==false: %s", rsp) self.assertTrue(State.FAILURE in prx.getStatus().flags) return rsp finally: cb.close(True)
def wait_on_callback(self, conn, proxy, test_should_pass=True): """ Handles callback on proxy handle and checks that the result is not an error. """ cb = CmdCallbackI(conn.c, proxy) try: for i in range(10): cb.loop(20, 500) if proxy.getResponse() is not None: break assert proxy.getResponse() is not None proxy.getStatus() rsp = proxy.getResponse() if test_should_pass: assert not isinstance(rsp, ERR) assert State.FAILURE not in proxy.getStatus().flags else: assert not isinstance(rsp, OK) assert State.FAILURE in proxy.getStatus().flags return rsp finally: cb.close(True)
def fs_usage(client, objecttype, objectid): req = DiskUsage2() req.targetObjects = {objecttype: [objectid]} cb = None handle = None try: handle = client.sf.submit(req) cb = CmdCallbackI(client, handle) # Wait for finish while True: found = cb.block(1000) if found: break rsp = cb.getResponse() # status = cb.getStatus() except KeyboardInterrupt: # If user uses Ctrl-C, then cancel if handle is not None: logging.warning("Attempting cancel...") if handle.cancel(): logging.warning("Cancelled") else: logging.warning("Failed to cancel") finally: if cb is not None: cb.close(True) # Close handle sizebytes = sum(rsp.totalBytesUsed.values()) nfiles = sum(rsp.totalFileCount.values()) return sizebytes, nfiles
def submit(self, req): import omero handle = self.client.sf.submit(req) cb = CmdCallbackI(self.client, handle) try: cb.loop(50, 1000) rsp = cb.getResponse() if isinstance(rsp, omero.cmd.ERR): raise Exception(rsp) return rsp finally: cb.close(True)
def submit(self, req): import omero handle = self.client.sf.submit(req) cb = CmdCallbackI(self.client, handle) try: cb.loop(50, 1000) rsp = cb.getResponse() if isinstance(rsp, omero.cmd.ERR): raise Exception(rsp) return rsp finally: cb.close(True)
def deleteRoi(self, roi_id): """ Delete the given ROI :param roi: an ROI object :type roi: `omero.model.Roi` """ from omero.callbacks import CmdCallbackI # @UnresolvedImport handle = self.conn.deleteObjects("Roi", [roi_id], deleteAnns=True, deleteChildren=True) callback = CmdCallbackI(self.conn.c, handle) while not callback.block(500): if self.args.verbose: print_date(".", newline=False, incl_date=False) time.sleep(2) callback.close(True)
def doChange(gateway, obj_type, obj_ids, group_id, container_id=None, test_should_pass=True, return_complete=True): """ Performs the change-group action, waits on completion and checks that the result is not an error. """ prx = gateway.chgrpObjects(obj_type, obj_ids, group_id, container_id) if not return_complete: return prx cb = CmdCallbackI(gateway.c, prx) try: for i in range(10): cb.loop(20, 500) if prx.getResponse() != None: break assert prx.getResponse() is not None status = prx.getStatus() rsp = prx.getResponse() if test_should_pass: assert not isinstance(rsp, ERR),\ "Found ERR when test_should_pass==true: %s (%s) params=%s" \ % (rsp.category, rsp.name, rsp.parameters) assert State.FAILURE not in prx.getStatus().flags else: assert not isinstance(rsp, OK),\ "Found OK when test_should_pass==false: %s" % rsp assert State.FAILURE in prx.getStatus().flags return rsp finally: cb.close(True)
def assert_import(client, proc, files, wait): """Wait and check that we imported an image.""" hashes = upload_files(proc, files, client) print('Hashes:\n %s' % '\n '.join(hashes)) handle = proc.verifyUpload(hashes) cb = CmdCallbackI(client, handle) # https://github.com/openmicroscopy/openmicroscopy/blob/v5.4.9/components/blitz/src/ome/formats/importer/ImportLibrary.java#L631 if wait == 0: cb.close(False) return None if wait < 0: while not cb.block(2000): sys.stdout.write('.') sys.stdout.flush() sys.stdout.write('\n') else: cb.loop(wait, 1000) rsp = cb.getResponse() if isinstance(rsp, omero.cmd.ERR): raise Exception(rsp) assert len(rsp.pixels) > 0 return rsp