AgentModule
Base class for all agent modules
- class DIRAC.Core.Base.AgentModule.AgentModule(agentName, loadName, baseAgentName=False, properties={})
Bases:
object
Base class for all agent modules
This class is used by the AgentReactor Class to steer the execution of DIRAC Agents.
For this purpose the following methods are used: - am_initialize() just after instantiated - am_getPollingTime() to set the execution frequency - am_getMaxCycles() to determine the number of cycles - am_go() for the actual execution of one cycle
Before each iteration, the following methods are used to determine if the new cycle is to be started. - am_getModuleParam( ‘alive’ ) - am_checkStopAgentFile() - am_removeStopAgentFile()
To start new execution cycle the following methods are used - am_getCyclesDone() - am_setOption( ‘MaxCycles’, maxCycles )
At the same time it provides all Agents with common interface. All Agent class must inherit from this base class and must implement at least the following method: - execute() main method called in the agent cycle
Additionally they may provide: - initialize() for initial settings - finalize() the graceful exit
beginExecution() before each execution cycle
endExecution() at the end of each execution cycle
The agent can be stopped either by a signal or by creating a ‘stop_agent’ file in the controlDirectory defined in the agent configuration
- __init__(agentName, loadName, baseAgentName=False, properties={})
Common __init__ method for all Agents. All Agent modules must define: __doc__
They are used to populate __codeProperties
The following Options are used from the Configuration: - /DIRAC/Setup - Status - Enabled - PollingTime default = 120 - MaxCycles default = 500 - WatchdogTime default = 0 (disabled) - ControlDirectory control/SystemName/AgentName - WorkDirectory work/SystemName/AgentName - shifterProxy ‘’ - shifterProxyLocation WorkDirectory/SystemName/AgentName/.shifterCred
It defines the following default Options that can be set via Configuration (above): - MonitoringEnabled True - Enabled True if Status == Active - PollingTime 120 - MaxCycles 500 - ControlDirectory control/SystemName/AgentName - WorkDirectory work/SystemName/AgentName - shifterProxy False - shifterProxyLocation work/SystemName/AgentName/.shifterCred
different defaults can be set in the initialize() method of the Agent using am_setOption()
In order to get a shifter proxy in the environment during the execute() the configuration Option ‘shifterProxy’ must be set, a default may be given in the initialize() method.
- am_Enabled()
- am_checkStopAgentFile()
- am_createStopAgentFile()
- am_getControlDirectory()
- am_getCyclesDone()
- am_getMaxCycles()
- am_getModuleParam(optionName)
- am_getOption(optionName, defaultValue=None)
Gets an option from the agent’s configuration section. The section will be a subsection of the /Systems section in the CS.
- am_getPollingTime()
- am_getShifterProxyLocation()
- am_getStopAgentFile()
- am_getWatchdogTime()
- am_getWorkDirectory()
- am_go()
- am_initialize(*initArgs)
Common initialization for all the agents.
This is executed every time an agent (re)starts. This is called by the AgentReactor, should not be overridden.
- am_removeStopAgentFile()
- am_secureCall(functor, args=(), name=False)
- am_setModuleParam(optionName, value)
- am_setOption(optionName, value)
- am_stopExecution()
- beginExecution()
- endExecution()
- execute()
- finalize()
- initialize(*args, **kwargs)
Agents should override this method for specific initialization. Executed at every agent (re)start.