This module defines the Controller class that brings together individual implementation parts of an LNST Controller. When instantiated, it allows the tester to configure and run his own recipes with the LNST ‘infrastructure’.
- class lnst.Controller.Controller.Controller(poolMgr: ~lnst.Controller.AgentPoolManager.AgentPoolManager | ~lnst.Controller.ContainerPoolManager.ContainerPoolManager | None = None, mapper=<class 'lnst.Controller.MachineMapper.MachineMapper'>, config=None, pools=, debug=0, **poolMgr_kwargs)
Allows to run LNST Recipe instances
This is the main mechanism that allows users to create their own executable test scripts that execute LNST Recipes.
The Controller class implementation provides the most common default values for various parameters that can significantly change the way that Recipes are executed. This includes custom implementations of classes that are used for setting up the testing infrastructure such as the PoolManager or the MachineMapper.
lnst.Controller.AgentPoolManager.AgentPoolManager(this is also the default class)) – class that implements the
lnst.Controller.AgentPoolManager.AgentPoolManagerinterface will be instantiated by the Controller to provide the mapper with pools available for matching, also handles the creation of
Machineobjects (internal LNST class used to access the agent hosts)
lnst.Controller.MachineMapper.MachineMapper(this is also the default class)) – class that implements the
lnst.Controller.MachineMapper.MachineMapperinterface will be instantiated by the Controller to match Recipe requirements to the available pools
lnst.Controller.Config.CtlConfig) – optional LNST configuration object, if None the Controller will load it’s own configuration from default paths. If not provided, the Controller init method will create a CtlConfig object instance automatically and load it with values from default configuration file paths.
pools (List[str] (default )) – a list of pool names to restrict the used pool directories
pool_checks (boolean (default True)) – if False, will disable checking the online status of Agents
debug (integer (default 0)) – sets the debug level of LNST
lnst_controller = Controller() recipe_instance = MyRecipe(test_parameter=123) lnst_controller.run(recipe_instance)
- run(recipe, **kwargs)
Execute the provided Recipe
This method takes care of both finding Agent hosts matching the Recipe requirements, provisioning them and calling the test method of the Recipe object with proper references to the mapped Hosts
lnst.Controller.Recipe.BaseRecipe) – an instantiated Recipe object
kwargs (Dict[str, Any]) – optional keyword arguments passed to the configured Mapper