Information
We are currently investigating an issue with the editor of some pages. Please save your work and avoid to create new pages until this banner is gone.
In case you haven't done this step already, you must Build and install IDL first.
cd ~/workspace getTemplateForDirectory MODROOT_WS pyHelloComp cd pyHelloComp/src mkdir ws touch ws/__init__.py touch ws/HelloComponentImpl.py vim Makefile
We modify the Makefile for this component:
... PY_PACKAGES = ws ...
We fill the component code as follows:
vim ws/HelloComponentImpl.py
# Client stubs and definitions, such as structs, enums, etc. import workshop # Skeleton infrastructure for server implementation import workshop__POA # Base component implementation from Acspy.Servants.ACSComponent import ACSComponent # Services provided by the container to the component from Acspy.Servants.ContainerServices import ContainerServices # Basic component lifecycle (initialize, execute, cleanUp and aboutToAbort methods) from Acspy.Servants.ComponentLifecycle import ComponentLifecycle class HelloComponentImpl(workshop__POA.HelloComponent, ACSComponent, ContainerServices, ComponentLifecycle): def __init__(self): ACSComponent.__init__(self) ContainerServices.__init__(self) self._logger = self.getLogger() def printHello(self): print("Just printing 'Hello World!'") return "Hello World!"
export INTROOT=~/workspace/introot export PYTHONPATH=$INTROOT/lib/python/site-packages:/alma/ACS-2021AUG/ACSSW/lib/python/site-packages make all install
vim $ACS_CDB/CDB/MACI/Components/Components.xml
Add the following item:
<e Name="HelloWorldPython" Code="ws.HelloComponentImpl" Type="IDL:acsws/workshop/HelloComponent:1.0" Container="aragornContainer" ImplLang="py" />
Create client python file:
cd ~/workspace touch client.py vim client.py
We fill it as follow:
from Acspy.Clients.SimpleClient import PySimpleClient client = PySimpleClient() component = client.getComponent("HelloWorldPython") print(component.printHello())
Run component:
# in one terminal acsStop acsStart # in a different terminal acsStartContainer -py aragornContainer # in a different terminal python client.py
... Hello World! ...