public interface _IScriptOperations extends _ServiceInterfaceOperations
sf = client.createSession()
svc = sf.getScriptService()
scripts = svc.getScripts()
if len(scripts) >= 1:
script_id = svc.keys()\[-1]
else:
script_id = svc.uploadScript('/test/my_script.py', SCRIPT_TEXT)
params = svc.getParams(script_id)
# You will need to parse the params to create the proper input
inputs = {}
# The last parameter is how long to wait as an RInt
proc = svc.runScript(script_id, inputs, None)
try:
cb = omero.scripts.ProcessCallbackI(client, proc)
while not cb.block(1000): # ms.
pass
cb.close()
rv = proc.getResults(0)
finally:
proc.close(False)
See OMERO.scripts for more information.Modifier and Type | Method and Description |
---|---|
void |
canRunScript_async(AMD_IScript_canRunScript __cb,
long scriptID,
Ice.Current __current)
Returns true if there is a processor which will run the
given script.
|
void |
deleteScript_async(AMD_IScript_deleteScript __cb,
long scriptID,
Ice.Current __current)
Delete the script on the server with id.
|
void |
editScript_async(AMD_IScript_editScript __cb,
OriginalFile fileObject,
java.lang.String scriptText,
Ice.Current __current)
Modify the text for the given script object.
|
void |
getParams_async(AMD_IScript_getParams __cb,
long scriptID,
Ice.Current __current)
Get the parameters that the script takes and returns, along with
other metadata available from the script.
|
void |
getScriptID_async(AMD_IScript_getScriptID __cb,
java.lang.String path,
Ice.Current __current)
Get the id of an official script by the script path.
|
void |
getScripts_async(AMD_IScript_getScripts __cb,
Ice.Current __current)
This method returns official server scripts as a list of
OriginalFile objects. |
void |
getScriptsByMimetype_async(AMD_IScript_getScriptsByMimetype __cb,
java.lang.String mimetype,
Ice.Current __current)
This method returns official server scripts identified
with the specified extension as a list of
OriginalFile objects. |
void |
getScriptText_async(AMD_IScript_getScriptText __cb,
long scriptID,
Ice.Current __current)
Get the text from the server for the script with given id.
|
void |
getScriptWithDetails_async(AMD_IScript_getScriptWithDetails __cb,
long scriptID,
Ice.Current __current)
Get the script from the server with details from OriginalFile
|
void |
getUserScripts_async(AMD_IScript_getUserScripts __cb,
java.util.List<IObject> acceptsList,
Ice.Current __current)
Returns non-official scripts which have been uploaded by individual users.
|
void |
runScript_async(AMD_IScript_runScript __cb,
long scriptID,
java.util.Map<java.lang.String,RType> inputs,
RInt waitSecs,
Ice.Current __current)
If
ResourceError is thrown, then no
Processor is available. |
void |
uploadOfficialScript_async(AMD_IScript_uploadOfficialScript __cb,
java.lang.String path,
java.lang.String scriptText,
Ice.Current __current)
Like
uploadScript but is only callable by
administrators. |
void |
uploadScript_async(AMD_IScript_uploadScript __cb,
java.lang.String path,
java.lang.String scriptText,
Ice.Current __current)
Upload a user script to the server and return the id.
|
void |
validateScript_async(AMD_IScript_validateScript __cb,
Job j,
java.util.List<IObject> acceptsList,
Ice.Current __current)
Used internally by processor.py to check if the script
attached to the
Job has a valid script
attached, based on the acceptsList and the current
security context. |
void getScripts_async(AMD_IScript_getScripts __cb, Ice.Current __current) throws ServerError
OriginalFile
objects.
These scripts will be executed by the server if submitted
via runScript
. The input parameters
necessary for proper functioning can be retrieved via
getParams
.
The OriginalFile.path
value can be used
in other official scripts via the
language specific import command, since the script
directory will be placed on the appropriate
environment path variable.
scripts = scriptService.getScripts()
for script in scripts:
text = scriptService.getScriptText(script.id.val)
# First character is a "/" symbol
path = script.path.val\[1:\]
path = path.replace("/",".")
print "Possible import: %s" % path
__cb
- The callback object for the operation.__current
- The Current object for the invocation.ApiUsageException
SecurityViolation
ServerError
void getScriptsByMimetype_async(AMD_IScript_getScriptsByMimetype __cb, java.lang.String mimetype, Ice.Current __current) throws ServerError
OriginalFile
objects.
These scripts will be executed by the server if submitted
via runScript
. The input parameters
necessary for proper functioning can be retrieved via
getParams
.
The OriginalFile.path
value can be used
in other official scripts via the
language specific import command, since the script
directory will be placed on the appropriate
environment path variable.
scripts = scriptService.getScripts("py")
for script in scripts:
text = scriptService.getScriptText(script.id.val)
path = script.path.val\[1:\] # First symbol is a "/"
path = path.replace("/",".")
print "Possible import: %s" % path
__cb
- The callback object for the operation.mimetype
- the mimetype identifying the scripts.__current
- The Current object for the invocation.ApiUsageException
SecurityViolation
ServerError
void getUserScripts_async(AMD_IScript_getUserScripts __cb, java.util.List<IObject> acceptsList, Ice.Current __current) throws ServerError
__cb
- The callback object for the operation.__current
- The Current object for the invocation.ServerError
void getScriptID_async(AMD_IScript_getScriptID __cb, java.lang.String path, Ice.Current __current) throws ServerError
getUserScriptID
)
since the path is not guaranteed to be unique.__cb
- The callback object for the operation.path
- The name of the script.__current
- The Current object for the invocation.ApiUsageException
SecurityViolation
ServerError
void getScriptText_async(AMD_IScript_getScriptText __cb, long scriptID, Ice.Current __current) throws ServerError
__cb
- The callback object for the operation.scriptID
- see above.__current
- The Current object for the invocation.ApiUsageException
ServerError
void uploadScript_async(AMD_IScript_uploadScript __cb, java.lang.String path, java.lang.String scriptText, Ice.Current __current) throws ServerError
__cb
- The callback object for the operation.path
- see above.__current
- The Current object for the invocation.ApiUsageException
SecurityViolation
ServerError
void uploadOfficialScript_async(AMD_IScript_uploadOfficialScript __cb, java.lang.String path, java.lang.String scriptText, Ice.Current __current) throws ServerError
uploadScript
but is only callable by
administrators. The parameters for the script are also
checked.__cb
- The callback object for the operation.__current
- The Current object for the invocation.ServerError
void editScript_async(AMD_IScript_editScript __cb, OriginalFile fileObject, java.lang.String scriptText, Ice.Current __current) throws ServerError
__cb
- The callback object for the operation.fileObject
- see above.__current
- The Current object for the invocation.ApiUsageException
SecurityViolation
ServerError
void getScriptWithDetails_async(AMD_IScript_getScriptWithDetails __cb, long scriptID, Ice.Current __current) throws ServerError
__cb
- The callback object for the operation.scriptID
- see above__current
- The Current object for the invocation.ApiUsageException
ServerError
void getParams_async(AMD_IScript_getParams __cb, long scriptID, Ice.Current __current) throws ServerError
__cb
- The callback object for the operation.scriptID
- see above.__current
- The Current object for the invocation.ApiUsageException
ServerError
void deleteScript_async(AMD_IScript_deleteScript __cb, long scriptID, Ice.Current __current) throws ServerError
__cb
- The callback object for the operation.scriptID
- Id of the script to delete.__current
- The Current object for the invocation.ApiUsageException
SecurityViolation
ServerError
void runScript_async(AMD_IScript_runScript __cb, long scriptID, java.util.Map<java.lang.String,RType> inputs, RInt waitSecs, Ice.Current __current) throws ServerError
ResourceError
is thrown, then no
Processor
is available. Use scheduleJob
to create a ScriptJob
in the
Waiting state. A Processor
may become
available.
try:
proc = scriptService.runScript(1, {}, None)
except ResourceError:
job = scriptService.scheduleScript(1, {}, None)
The ScriptProcess
proxy MUST be closed before
exiting. If you would like the script execution to continue
in the background, pass True
as the argument.
try:
proc.poll() # See if process is finished
finally:
proc.close(True) # Detach and execution can continue
# proc.close(False) # OR script is immediately stopped.
__cb
- The callback object for the operation.__current
- The Current object for the invocation.ServerError
void canRunScript_async(AMD_IScript_canRunScript __cb, long scriptID, Ice.Current __current) throws ServerError
Either the script is an official script and this method
will return true (though an individual invocation may fail
with an ResourceError
for some reason)
or this is a user script, and a usermode processor
must be active which takes the scripts user or group.
__cb
- The callback object for the operation.__current
- The Current object for the invocation.ServerError
void validateScript_async(AMD_IScript_validateScript __cb, Job j, java.util.List<IObject> acceptsList, Ice.Current __current) throws ServerError
Job
has a valid script
attached, based on the acceptsList
and the current
security context.
An example of an acceptsList might be Experimenter(myUserId, False), meaning that only scripts belonging to me should be trusted. An empty list implies that the server should return what it would by default trust. A valid script will be returned if it exists; otherwise null.
__cb
- The callback object for the operation.__current
- The Current object for the invocation.ServerError