Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Key changes:
- The default requirements now maps to remote mom setup for all single mom cluster setup i.e. 2 hosts being necessary. (host1=SERVER_SCHED_COMM,host2=MOM)
- PTL would detect the type of installation on each of the host names passed in benchpress and compare with the host macro expectations to determine whether test is runnable on the given cluster.
- The tests requiring only one daemon of each type (Ex: host1=SERVER_SCHED_COMM,host2=MOM) can run on single host when only one hostname or no hostnames are passed to pbs_benchpress.
- In the case when large number of hostnames are to be specified, we can index the hostnames like - host2-10=MOM

Example 1:

DEFAULT - 1 mom node setup: 2 hosts
@requirements(host1=SERVER_SCHED_COMM, host2=MOM)
pbs_benchpress --hosts=x1,x2
Older version: @requirements(no_mom_on_server=True)

...

2 moms, 1 client & comm not running on server: 5 hosts
@requirements(host1=SERVER_SCHED, host2=MOM, host3=MOM, host4=COMM, host5=CLIENT)
pbs_benchpress --hosts=x1,x2,x3,x4,x5
Older version: @requirements(num_moms=2, num_clients=1, no_comm_on_server=True)

Example 5:

10 moms, 1 client & comm not running on server: 12 hosts
@requirements(host1=SERVER_SCHED, host2-11=MOM, host12=CLIENT)
pbs_benchpress --hosts=x[1-12] / pbs_benchpress --hosts=x1,x[2-11],x12 / pbs_benchpress --hosts=x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12
Older version: @requirements(num_moms=10, num_clients=1, no_comm_on_server=True)

Interface 2: ‘--hosts=<hostname>[m-n][:port][@<path to pbs conf>],<hostname>[k-l][:port][@<path to pbs conf>],<hostname>[m-n][:port][@<path to pbs conf>]’
Visibility: Public
Change Control: Public
Details:

This new option is introduced to specify the hostnames of the cluster to be passed to PTL instead of the current per daemon format. (moms=<host1:host2>,comms=<host3:host4>)
In case where single hostname or no hostnames are passed, the local host where pbs_benchpress is being run is considered as single node PBS cluster host and all tests needing single daemon of each type will be executed on this host.
Its value should be a colon comma separated list of hostnames or indexed host names range for greater number of hosts and along with the non-default port number or non-default path of pbs.conf file. This non-default port number and non-default pbs.conf file path is same for all the hosts specified in the range. For example:

pbs_benchpress -t TestFeature.test_t1 --hosts=x1,x2,x3
pbs_benchpress -t TestFeature.test_t1 --hosts=x1,x[2-100],x[101-110]
pbs_benchpress -t TestFeature.test_t1 --hosts=x1,x[2-100]:9000@/etc/exec/pbs.conf,x[101-110]

...

pbs_benchpress -p <cluster_info> -t <TestSuite1>,<TestSuite2> --get-required-hosts
pbs_benchpress -t <TestSuite1>,<TestSuite2> --get-required-hosts
pbs_benchpress --tags "sched" --get-required-hosts
pbs_benchpress --get-required-hosts

Interface 4: run_test_as in requirements() decorator
Visibility: Public
Change Control: Public
Details:

We now can specify with which user a PTL test needs to be specifically run as. For example, when a test suite should be run as ‘root’, below can be specified. By default all tests run as the test runner who triggers the pbs_benchpress. The test user must be users as specified in PTL like - ROOT_USER, ADMIN_USER, TEST_USER1 etc.

Example:

@requirements(host1=SERVER_SCHED_COMM, host2=MOM, host3=MOM, run_test_as='root'ROOT_USER)

Interfaces removal:

With the above design of requirements decorator and the pbs_benchpress’ cluster information input through custom parameters; below mentioned options in custom parameters are no more required:

...