Last active
November 8, 2017 16:25
-
-
Save will-moore/90b26a5d39f8084a22dcc8c4af44fa4c to your computer and use it in GitHub Desktop.
Tests connecting to a remote OMERO server from within an OMERO.script on a local server.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# From e-mail: http://lists.openmicroscopy.org.uk/pipermail/ome-devel/2017-October/004076.html | |
# We upload and run an OMERO.script | |
# that can connect to another remote OMERO server. | |
from omero.gateway import BlitzGateway | |
import omero | |
USERNAME = "root" | |
PASSWORD = "omero" | |
REMOTE_SERVER = "demo.openmicroscopy.org" | |
REMOTE_USER = "user" | |
REMOTE_PASS = "password" | |
# First test if we can connect directly to remote server... | |
c = omero.client(host=REMOTE_SERVER, port=4064) | |
sf = c.createSession(REMOTE_USER, REMOTE_PASS) | |
print c, sf | |
# Upload script and try to connect | |
SCRIPT = """ | |
import omero | |
import omero.scripts as scripts | |
from omero.gateway import BlitzGateway | |
client = omero.scripts.client("test_connect") | |
c = omero.client(host='%s', port=4064, args=["--Ice.Config=/dev/null"]) | |
c.createSession('%s', '%s') | |
print c | |
conn = BlitzGateway(client_obj=c) | |
for p in conn.getObjects("Project"): | |
print p.id, p.name | |
""" % (REMOTE_SERVER, REMOTE_USER, REMOTE_PASS) | |
conn = BlitzGateway(USERNAME, PASSWORD, host="localhost", port=4064) | |
conn.connect() | |
script_service = conn.getScriptService() | |
sessionId = conn._getSessionId() | |
script_id = script_service.uploadOfficialScript("test%s.py" % sessionId, SCRIPT) | |
proc = script_service.runScript(script_id, {}, None) | |
job = proc.getJob() | |
cb = omero.scripts.ProcessCallbackI(conn.c, proc) | |
try: | |
print "Job %s ready" % job.id.val | |
print "Waiting...." | |
while proc.poll() is None: | |
cb.block(1000) | |
print "Callback received: %s" % cb.block(0) | |
rv = proc.getResults(3) | |
finally: | |
cb.close() | |
# print rv | |
if rv.get('stderr'): | |
print "Error. See file: ", rv.get('stderr').getValue().id.val | |
if rv.get('stdout'): | |
print "Std out. See file: ", rv.get('stdout').getValue().id.val |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment