def doAllSubmit(self, requests, client, test_should_pass=True, omero_group=None): da = DoAll() da.requests = requests rsp = self.doSubmit(da, client, test_should_pass=test_should_pass, omero_group=omero_group) return rsp
def prep_directory(client, mrepo): """ Create an empty FS directory by performing an import and then deleting the created fileset. """ from omero.cmd import Delete2, DoAll from omero.grid import ImportSettings from omero.model import ChecksumAlgorithmI from omero.model import FilesetI from omero.model import FilesetEntryI from omero.model import UploadJobI fs = FilesetI() fs.linkJob(UploadJobI()) entry = FilesetEntryI() entry.clientPath = rstring("README.txt") fs.addFilesetEntry(entry) settings = ImportSettings() settings.checksumAlgorithm = ChecksumAlgorithmI() settings.checksumAlgorithm.value = rstring("SHA1-160") proc = mrepo.importFileset(fs, settings) try: tmp = create_path() prx = proc.getUploader(0) try: tmp.write_text("THIS IS A PLACEHOLDER") hash = client.sha1(tmp) with open(tmp, "r") as source: client.write_stream(source, prx) finally: prx.close() tmp.remove() handle = proc.verifyUpload([hash]) try: req = handle.getRequest() fs = req.activity.parent finally: handle.close() dir = unwrap(mrepo.treeList(fs.templatePrefix.val)) oid = dir.items()[0][1].get("id") ofile = client.sf.getQueryService().get("OriginalFile", oid) delete1 = Delete2(targetObjects={'Fileset': [fs.id.val]}) delete2 = Delete2(targetObjects={'OriginalFile': [ofile.id.val]}) doall = DoAll() doall.requests = [delete1, delete2] cb = client.submit(doall) cb.close(True) finally: proc.close() return fs.templatePrefix.val
def prep_directory(client, mrepo): """ Create an empty FS directory by performing an import and then deleting the created fileset. """ from omero.cmd import Delete2, DoAll from omero.grid import ImportSettings from omero.model import ChecksumAlgorithmI from omero.model import FilesetI from omero.model import FilesetEntryI from omero.model import UploadJobI fs = FilesetI() fs.linkJob(UploadJobI()) entry = FilesetEntryI() entry.clientPath = rstring("README.txt") fs.addFilesetEntry(entry) settings = ImportSettings() settings.checksumAlgorithm = ChecksumAlgorithmI() settings.checksumAlgorithm.value = rstring("SHA1-160") proc = mrepo.importFileset(fs, settings) try: tmp = create_path() prx = proc.getUploader(0) try: tmp.write_text("THIS IS A PLACEHOLDER") hash = client.sha1(tmp) with open(tmp, "r") as source: client.write_stream(source, prx) finally: prx.close() tmp.remove() handle = proc.verifyUpload([hash]) try: req = handle.getRequest() fs = req.activity.parent finally: handle.close() dir = unwrap(mrepo.treeList(fs.templatePrefix.val)) oid = dir.items()[0][1].get("id") ofile = client.sf.getQueryService().get("OriginalFile", oid) delete1 = Delete2(targetObjects={"Fileset": [fs.id.val]}) delete2 = Delete2(targetObjects={"OriginalFile": [ofile.id.val]}) doall = DoAll() doall.requests = [delete1, delete2] cb = client.submit(doall) cb.close(True) finally: proc.close() return fs.templatePrefix.val
def doSubmit(self, request, client, test_should_pass=True, omero_group=None): """ Performs the request(s), waits on completion and checks that the result is not an error. The request can either be a single command or a list of commands. If the latter then the request list will be wrapped in a DoAll. """ if isinstance(request, list): request = DoAll(request) sf = client.sf if omero_group is not None: prx = sf.submit(request, {'omero.group': str(omero_group)}) else: prx = sf.submit(request) assert State.FAILURE not in prx.getStatus().flags cb = CmdCallbackI(client, prx) cb.loop(20, 500) assert prx.getResponse() is not None rsp = prx.getResponse() if test_should_pass: if isinstance(rsp, ERR): assert False, ( "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: if isinstance(rsp, OK): assert False, ("Found OK when test_should_pass==false: %s" % rsp) assert State.FAILURE in prx.getStatus().flags return rsp
def doAllChgrp(self, requests, client): da = DoAll() da.requests = requests rsp = self.doSubmit(da, client)