Versions Compared

Key

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

...

Interface 2: @requirements() decorator format - “host1=<list><string>, host2=<list>”<string>”
Visibility: public
Change Control: public
Details:
New form of requirements decorator uses below mentioned set of lists strings to specify the type of nodes the test case needs in order to run.

The list string specifications are as follows:

[client]“client”
["mom]"
[comm]
[mom, comm]
[sched]
[”comm”
”mom,comm”
”sched”
"sched,mom]"
["sched,comm]"
[sched”sched, comcomm, mom]
[server]
[mom”
”server”
"server,mom]"
["server,comm]"
["server,comm,mom]"
["server,sched]"
["server,sched,mom]"
["server,sched,comm]"
["server,sched,comm,mom]"

The format of specifying the types of hosts is list of hosts and the type of daemon combination list as their value.the host needs:
“host1=<list><string>, host2=<list>”<string>”

Key changes:
1. The daemon names in the strings are interchangeable i.e. they can be specified in any order. Ex:
- "server,sched,comm" is same as "comm,sched,server"

2. 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]")

- 3. PTL would detect the type of installation on each of the host names passed in benchpress and compare with the host’s list expectations to determine whether test is runnable on the given cluster.-

4. 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.-

5. 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 mom nodes setup: 3 hosts
@requirements(host1=["server,sched,comm]", host2=["mom]", host3=["mom]")
pbs_benchpress --hosts=x1,x2,x3
Older version: @requirements(num_moms=2)

...

2 moms and 1 client: 4 hosts
@requirements(host1=["server,sched,comm]", host2=["mom]", host3=["mom]", host4=[client]”client”)
pbs_benchpress --hosts=x1,x2,x3,x4
Older version: @requirements(num_moms=2, num_clients=1)

...

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

...

10 moms, 1 client & comm not running on server: 13 hosts
@requirements(host1=[server”server, sched]sched”, host2_11=[mom]”mom”, host12=[client]”client”, host13=[comm]”comm”)
pbs_benchpress --hosts=x[1-13] / pbs_benchpress --hosts=x1,x[2-11],x12,x13 / pbs_benchpress --hosts=x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13
Older version: @requirements(num_moms=10, num_clients=1, no_comm_on_server=True)

...