Skip to main content

action handler and python actions for EOQ3

Project description

eoq3pyecoremdb - action handler and python actions for EOQ3

Actions are scripts to be applied on elements of a domain. The application is triggered throug the domain and script execution can be remote. Actions might be parameterized to configure their targets and/or execution.

This comprises action handler and action manager. Per domain one action manager and several action handlers can be instantiated.

  • action manager: extends the domain by an action model as well as commands to call and abort actions.
  • action handler: registers local python scripts as actions in the actions manager and listens to execution requests.

Usage

API

Imports:

from eoq3pyactions.actionhandler import ActionHandler
from eoq3pyactions.actionmanager import ActionManager
from eoq3pyactions.util import *

Create and connect an action manager:

amaSessionId = GenerateSessionId() #action manager
domain.Do(Hel('actionmanager','xxx'),amaSessionId)
ama = ActionManager(config)
ama.Connect(domain, amaSessionId)

Create and connect an action handler:

ahaSessionId = GenerateSessionId() #action handler
domain.Do(Hel('actionhandler','xxx'),ahaSessionId) 
aha = ActionHandler(basedir=ACTIONS_DIR)
aha.Connect(domain,ahaSessionId)

Call an action and retrieve the results (for the action itself, see example action below):

res = domain.Do( Cus('CAL',['Misc/helloworld',[1]]) ,asDict=True)
job = res['job']
#wait for action to finish
sleep(1.0) #make sure action has finished
#check result 
res = domain.Do( Get( Qry(job).Pth('results*').Idx(0) ) )
# res should be STR("I printed 1 times Hello world!")

Alternative ways to call actions:

#action call by util funciton and wait seperate
res = CallAction(domain,sessionId,'helloworld',[1])
job = res['job']
jobStatus = res['statusInstance']
WaitForAction(domain,sessionId,job,jobStatus,10.0)
#call and wait with one helper
CallActionAndWait(domain,sessionId,'helloworld',[],10.0)

See also Test/Eoq3/test_eoq3pyactions.py.

Example action

This must reside as in ACTIONS_DIR:

__tags__ = ['misc','test'] #classification tags to be used in clients #tags are optional

def helloworld(domain : 'Domain', times : 'I64=2')->'STR':
    t = times.GetVal()
    for i in range(t):
        print("Hello world!",end='')
    return "I printed %d times Hello world!"%(t)

Implementation

Large parts of the wrapper between pyecore an EOQ3 are generated from the concepts generation. To regenerate use:

gen/generatepyecoremdb.py

Documentation

For more information see EOQ3 documentation: https://eoq.gitlab.io/doc/eoq3/

Author

2024 Bjoern Annighoefer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eoq3pyactions-3.1.0.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eoq3pyactions-3.1.0-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file eoq3pyactions-3.1.0.tar.gz.

File metadata

  • Download URL: eoq3pyactions-3.1.0.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for eoq3pyactions-3.1.0.tar.gz
Algorithm Hash digest
SHA256 82644bce05e2b01a63daae0e884828e60233d1a6392aee694fa98a319aea0b20
MD5 74327aad59a88021cebd3aa5379e724f
BLAKE2b-256 2e610414e9f84f0680945b8b0edaec92ffcdfba28794b3a9529b508249ee1540

See more details on using hashes here.

File details

Details for the file eoq3pyactions-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: eoq3pyactions-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for eoq3pyactions-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efa3df77f1c84ee16a082ca1eba335ed06310684a6eb4edad6c83cc5d3549b30
MD5 62742e2435870b0b35c5aad1204071b9
BLAKE2b-256 52438205903e05e8f635fcf652ff80582f6cf3e4efd4dd35265622ef445bcbfa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page