...
Hello, this is Amir Shehata with another quick tip on the LUTF. In this video we will take a 5-minute tour over how the LUTF directory is structured . Then we'll run it and see it in actionand how to configure it.
Slide 02
I have written a step by step walk-thru on how to build and deploy the LUTF. Please go to the link provided here or in the video transcript on the wiki for more details.
...
Once you have the Lustre tests rpm installed along with the other lustre rpms, you can see the LUTF installed in the standard lustre tests directory:
Code Block |
---|
/usr/lib64/lustre/tests/lutf |
Slide 04
The LUTF directory structure is fairly straight forward.
...
These include the C/Python wrappers which the LUTF python scripts use to call the C APIs.
Slide 05
As Let's look at an example you . You can see here two files of interest there: _lnetconfig.so
and lnetconfig.py
.
The .py file is generated by SWIG an and enables the LUTF python scripts to call the liblnetconfig API
The .so file is a shared library which includes the glue code which that implements the liblnetconfig API calls
Slide 06
The python
directory includes configuration scripts under the config
directoryConfiguration scripts are under the python/config
directory. These configuration scripts setup all the different elements required to run the LUTF.
Various infrastructure scripts, which implement the remote script execution feature as well as other LUTF features, are under the infra
directory.
...
Finally all the various tests suites are located under the tests
directory.
At the time of this time recording, the shown test suites are available.
...
The LUTF requires a single YAML configuration file which specifies its environment. Before we start the LUTF letLet's breifly briefly explore the configuration parameters.
...
Although all parameters can be specified. On startup only the parameters which matter are examined.
Slide 8
First off, let's look at the shell parameter. It defines how the LUTF will run. There are three modes it can run in:
- First, the interactive
...
- mode. In this mode you can access the python shell
...
- . You can do everything you would normally do from a regular python shell from there.
- Second, the daemon mode. As the name suggests the LUTF will run as a
...
- daemon process. However,
...
- its shell can still be access by
...
- TELNETTing to it.
...
- Finally, the batch mode. Now this mode is unique to the master and it basically runs all the specified tests and then shuts down.
Slide 9
The agent parameter tells the LUTF if it should run as a master or an agent
node-name specifies the a symbolic name of for the node. It can be any alpha-numeric value.
The LUTF agent will need to know both the master's IP address or hostname as well as a symbolic name to use for which it will use to connect to. A symbolic name is also provided to associate with the master.
The LUTF will require a port to listen on for incoming connections as well as a port to use for the telnet server
Slide
...
10
This is what the LUTF YAML configuration looks like. A couple of other parameters relevant to the master node are:
- the suite: which . This defines a suite name to run when in batch mode. If nothing is specified the LUTF will run all available suites
- and the script: . This defines the script name to run and it's only valid if a suite is provided.
...
You can follow the shown link for more details on the configuration parameters.
Before I leave this topic, I just want to remind you that you really don't need to worry about that configuration file too much, as it the YAML configuration file will be automatically generated for you, as I'll show you later on.
Slide
...
11
We're almost ready to run the LUTF, but first just a quick note on a couple of important naming conventions.
All test suites under the python/tests
directory need to must start with the literal: suite_
And all the tests under a test suite need to must start with the literal: test_
Otherwise the LUTF will not pick them up and you won't be able to run them.
In the next tutorial we will run the LUTF and see what it offers us.
LUTF YAML Configuration
Code Block |
---|
lutf: shell: interactive # [interactive|batch|daemon] agent: false # [true|false] run as an agent or master telnet-port: 49304 # a port to telnet to, to access agent master-address: 192.14.4.3 # IP address of master or hostname master-port: 43943 # port master is listening on node-name: ost2_HOST # name to associate with the node. master-name: mds_HOST # name of master to be given to agents script: test_dlc_01.py # script name to run in batch mode. Suite name needs to be specified as well. suite: suite_dlc # suite name to run. If not present all suites are run in batch mode lutf-path: /usr/lib64/lustre/tests/lutf/ # path to lutf directory py-path: "/usr/lib64/:/usr/lib64/tests" # ':' separated lists of paths for extra python modules |