Description:
There is a need to have a decorator through which user can specify cluster information like number of servers, moms, comms and clients etc. required for a particular test to run.
...
- Case 2- Test requires 4 moms and 2 comms.
- With 1 mom and 1 comm on server node: @requirements(num_moms=4, num_comms=2)
- By default 'no_mom_on_server' and 'no_comm_on_server' are False and no_comm_on_mom is true, so cluster will consist of total 5 nodes which will look like:
- Node1: Server, Sched, Mom, Comm
- Node2: Mom
- Node3: Mom
- Node4: Mom
- Node5: Comm
- By default 'no_mom_on_server' and 'no_comm_on_server' are False and no_comm_on_mom is true, so cluster will consist of total 5 nodes which will look like:
- With no mom and comm on server node: @requirements(num_moms=4, num_comms=2, no_mom_on_server=True, no_comm_on_server=True)
- By default no_comm_on_mom is true, so cluster will consist of total 7 nodes which will look like:
- Node1: Server, Sched
- Node2: Mom
- Node3: Mom
- Node4: Mom
- Node5: Mom
- Node6: Comm
- Node7: Comm
- By default no_comm_on_mom is true, so cluster will consist of total 7 nodes which will look like:
- With no mom and comm on server node and comm on mom node: @requirements(num_moms=4, num_comms=2, no_mom_on_server=True, no_comm_on_server=True, no_comm_on_mom=False)
- Cluster will consist of total 5 nodes which will look like:
- Node1: Server, Sched
- Node2: Mom, Comm
- Node3: Mom, Comm
- Node4: Mom
- Node5: Mom
- Cluster will consist of total 5 nodes which will look like:
- With 1 mom and 1 comm on server node: @requirements(num_moms=4, num_comms=2)
- Case 3 - Test requires 3 moms without comms on the mom nodes:
- With 1 mom and 1 comm on server node: @requirements(num_moms=3)
- Cluster will consist of total 3 nodes
- Node 1: server,sched,mom1 & comm
- Node 2: mom2
- Node 3: mom3
- Cluster will consist of total 3 nodes
- With 1 mom and 1 comm on server node: @requirements(num_moms=3)
Note: Currently PTL supports specification of a single host for "client" parameter in pbs_benchpress command, i.e. name of the host on which the PBS client commands are to be run from. Hence, the specification of requirement of multiple clients for a given test case can be completely functional only after implementation of ticket PP-1327. As of now test execution of any test case that specifies num_clients as greater than one will be skipped.
...
Interface: PTLTestInfo._gen_ts_tree()
Visibility: Public
Change Control: Stable
Synopsis: Updating existing interface to add requirements information to testsuite's json tree, provided by @requirements decorator. Tools which run PTL, can make use of this information to form a multinode cluster.
Details:
- json test suite tree generated with info option of pbs_benchpress along with --gen-ts-tree (using PTLTestInfo._gen_ts_tree() method) will now include the requirements data mentioned for each test case
- this data is populated as value for a new key called 'requirements' under test case name hierarchy in the generated json tree
- for test cases without requirements decorator, default values of requirements are specified
...