Package omero.api

Class _IScriptDisp

  • All Implemented Interfaces:
    Ice.Object, java.io.Serializable, java.lang.Cloneable, _IScriptOperations, _IScriptOperationsNC, _ServiceInterfaceOperations, _ServiceInterfaceOperationsNC, IScript, ServiceInterface
    Direct Known Subclasses:
    _IScriptTie

    public abstract class _IScriptDisp
    extends Ice.ObjectImpl
    implements IScript
    Utility service for managing and launching scripts for execution by the Processor API. Typical usage might include (PYTHON):
     
     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.
    See Also:
    Serialized Form
    • Field Detail

      • __ids

        public static final java.lang.String[] __ids
    • Constructor Detail

      • _IScriptDisp

        public _IScriptDisp()
    • Method Detail

      • ice_copyStateFrom

        protected void ice_copyStateFrom​(Ice.Object __obj)
                                  throws java.lang.CloneNotSupportedException
        Throws:
        java.lang.CloneNotSupportedException
      • ice_isA

        public boolean ice_isA​(java.lang.String s)
        Specified by:
        ice_isA in interface Ice.Object
        Overrides:
        ice_isA in class Ice.ObjectImpl
      • ice_isA

        public boolean ice_isA​(java.lang.String s,
                               Ice.Current __current)
        Specified by:
        ice_isA in interface Ice.Object
        Overrides:
        ice_isA in class Ice.ObjectImpl
      • ice_ids

        public java.lang.String[] ice_ids()
        Specified by:
        ice_ids in interface Ice.Object
        Overrides:
        ice_ids in class Ice.ObjectImpl
      • ice_ids

        public java.lang.String[] ice_ids​(Ice.Current __current)
        Specified by:
        ice_ids in interface Ice.Object
        Overrides:
        ice_ids in class Ice.ObjectImpl
      • ice_id

        public java.lang.String ice_id()
        Specified by:
        ice_id in interface Ice.Object
        Overrides:
        ice_id in class Ice.ObjectImpl
      • ice_id

        public java.lang.String ice_id​(Ice.Current __current)
        Specified by:
        ice_id in interface Ice.Object
        Overrides:
        ice_id in class Ice.ObjectImpl
      • ice_staticId

        public static java.lang.String ice_staticId()
      • canRunScript_async

        public final void canRunScript_async​(AMD_IScript_canRunScript __cb,
                                             long scriptID)
                                      throws ServerError
        Returns true if there is a processor which will run the given script.

        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.

        Specified by:
        canRunScript_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        Throws:
        ServerError
      • deleteScript_async

        public final void deleteScript_async​(AMD_IScript_deleteScript __cb,
                                             long scriptID)
                                      throws ServerError
        Delete the script on the server with id. The file will also be removed from disk.
        Specified by:
        deleteScript_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        scriptID - Id of the script to delete.
        Throws:
        ApiUsageException
        SecurityViolation
        ServerError
      • getParams_async

        public final void getParams_async​(AMD_IScript_getParams __cb,
                                          long scriptID)
                                   throws ServerError
        Get the parameters that the script takes and returns, along with other metadata available from the script.
        Specified by:
        getParams_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        scriptID - see above.
        Throws:
        ApiUsageException
        ServerError
      • getScriptID_async

        public final void getScriptID_async​(AMD_IScript_getScriptID __cb,
                                            java.lang.String path)
                                     throws ServerError
        Get the id of an official script by the script path. The script service ensures that all script paths are unique. Note: there is no similar method for user scripts (e.g. getUserScriptID) since the path is not guaranteed to be unique.
        Specified by:
        getScriptID_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        path - The name of the script.
        Throws:
        ApiUsageException
        SecurityViolation
        ServerError
      • getScripts_async

        public final void getScripts_async​(AMD_IScript_getScripts __cb)
                                    throws ServerError
        This method returns official server scripts as a list of 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
         
         
        Specified by:
        getScripts_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        Throws:
        ApiUsageException
        SecurityViolation
        ServerError
      • getScriptsByMimetype_async

        public final void getScriptsByMimetype_async​(AMD_IScript_getScriptsByMimetype __cb,
                                                     java.lang.String mimetype)
                                              throws ServerError
        This method returns official server scripts identified with the specified extension as a list of 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
         
         
        Specified by:
        getScriptsByMimetype_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        mimetype - the mimetype identifying the scripts.
        Throws:
        ApiUsageException
        SecurityViolation
        ServerError
      • getUserScripts_async

        public final void getUserScripts_async​(AMD_IScript_getUserScripts __cb,
                                               java.util.List<IObject> acceptsList)
                                        throws ServerError
        Returns non-official scripts which have been uploaded by individual users. These scripts will not be run by the server, though a user can start a personal usermode processor which will allow the scripts to be executed. This is particularly useful for testing new scripts.
        Specified by:
        getUserScripts_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        Throws:
        ServerError
      • runScript_async

        public final void runScript_async​(AMD_IScript_runScript __cb,
                                          long scriptID,
                                          java.util.Map<java.lang.String,​RType> inputs,
                                          RInt waitSecs)
                                   throws ServerError
        If 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.
         
         
        Specified by:
        runScript_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        Throws:
        ServerError
      • uploadScript_async

        public final void uploadScript_async​(AMD_IScript_uploadScript __cb,
                                             java.lang.String path,
                                             java.lang.String scriptText)
                                      throws ServerError
        Upload a user script to the server and return the id. This method checks that a script with that names does not exist and that the script has parameters if possible, i.e. a usermode processor is running which for the current user.
        Specified by:
        uploadScript_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        path - see above.
        Throws:
        ApiUsageException
        SecurityViolation
        ServerError
      • validateScript_async

        public final void validateScript_async​(AMD_IScript_validateScript __cb,
                                               Job j,
                                               java.util.List<IObject> acceptsList)
                                        throws ServerError
        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. 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.
        Specified by:
        validateScript_async in interface _IScriptOperationsNC
        Parameters:
        __cb - The callback object for the operation.
        Throws:
        ServerError
      • ___getScripts

        public static Ice.DispatchStatus ___getScripts​(IScript __obj,
                                                       IceInternal.Incoming __inS,
                                                       Ice.Current __current)
      • ___getScriptsByMimetype

        public static Ice.DispatchStatus ___getScriptsByMimetype​(IScript __obj,
                                                                 IceInternal.Incoming __inS,
                                                                 Ice.Current __current)
      • ___getUserScripts

        public static Ice.DispatchStatus ___getUserScripts​(IScript __obj,
                                                           IceInternal.Incoming __inS,
                                                           Ice.Current __current)
      • ___getScriptID

        public static Ice.DispatchStatus ___getScriptID​(IScript __obj,
                                                        IceInternal.Incoming __inS,
                                                        Ice.Current __current)
      • ___getScriptText

        public static Ice.DispatchStatus ___getScriptText​(IScript __obj,
                                                          IceInternal.Incoming __inS,
                                                          Ice.Current __current)
      • ___uploadScript

        public static Ice.DispatchStatus ___uploadScript​(IScript __obj,
                                                         IceInternal.Incoming __inS,
                                                         Ice.Current __current)
      • ___uploadOfficialScript

        public static Ice.DispatchStatus ___uploadOfficialScript​(IScript __obj,
                                                                 IceInternal.Incoming __inS,
                                                                 Ice.Current __current)
      • ___editScript

        public static Ice.DispatchStatus ___editScript​(IScript __obj,
                                                       IceInternal.Incoming __inS,
                                                       Ice.Current __current)
      • ___getScriptWithDetails

        public static Ice.DispatchStatus ___getScriptWithDetails​(IScript __obj,
                                                                 IceInternal.Incoming __inS,
                                                                 Ice.Current __current)
      • ___getParams

        public static Ice.DispatchStatus ___getParams​(IScript __obj,
                                                      IceInternal.Incoming __inS,
                                                      Ice.Current __current)
      • ___deleteScript

        public static Ice.DispatchStatus ___deleteScript​(IScript __obj,
                                                         IceInternal.Incoming __inS,
                                                         Ice.Current __current)
      • ___runScript

        public static Ice.DispatchStatus ___runScript​(IScript __obj,
                                                      IceInternal.Incoming __inS,
                                                      Ice.Current __current)
      • ___canRunScript

        public static Ice.DispatchStatus ___canRunScript​(IScript __obj,
                                                         IceInternal.Incoming __inS,
                                                         Ice.Current __current)
      • ___validateScript

        public static Ice.DispatchStatus ___validateScript​(IScript __obj,
                                                           IceInternal.Incoming __inS,
                                                           Ice.Current __current)
      • __dispatch

        public Ice.DispatchStatus __dispatch​(IceInternal.Incoming in,
                                             Ice.Current __current)
        Specified by:
        __dispatch in interface Ice.Object
        Overrides:
        __dispatch in class Ice.ObjectImpl
      • __writeImpl

        protected void __writeImpl​(IceInternal.BasicStream __os)
        Overrides:
        __writeImpl in class Ice.ObjectImpl
      • __readImpl

        protected void __readImpl​(IceInternal.BasicStream __is)
        Overrides:
        __readImpl in class Ice.ObjectImpl