Direct SA1 Links
Etics Portal
- Etics Web
- EticsAgendas
- ETICS 2 SA1 Savannah
- SA1Actions (in Savannah)
, SA1 Internal
ETICS Multi-Node Testing
TO DO
Web Services
- Changes to the WS (extra changes, not clear what they are)
- merge the branch with the "--virtuial" property
Repository
- Schema changes
- Rep Portlet changes
- New email from repository and not from submitters as now
Client
- Modification for the MN inthe client (detaisl needed)
Marian
- 2 slots in the eticsdev for MN
DONE
MN in Web Application
- different look for nodes in the tree (DONE) /lists
- new actions in menu/toolbar (DONE)
- new viewers/editors (DONE)
- only static dependencies allowed (DONE)
- MultiNodeTest configurations will only have
- no platform; no satellites (Done)
- Node Configurations (done)
- node configurations
- platforms (DONE)
- testcommands (DONE)
- properties (DONE)
- environment (DONE)
- services (dependencies on component configurations) (DONE)
- prevent deployment configurations to be attached to project conf (DONE)
- show nodes as test children in workspace (TODO)
Done
Short Description of the Task
This task consists in the design and implementation of a number of simple multi-node testing use cases. It includes the definition of the use cases, the design of the necessary ETICS software components and their implementation. The criteria for success is the successful execution of all described use cases using a consistent ETICS System release deployed on the etics-test server
Useful Links
Links to document, attach material needed, external resources, example, etc.
- Multi-Node Specification Document doc
- pdf
- Working document from Etics1 with planned modifications to the Configuration WA
Requirements, Ideas, Constraints etc
General requirements
The multi-node functionality consists in the possibility of executing tests involving more than one node and one or more software components on each node exchanging information among themselves to synchronize the execution. While the high-level multi-node test designer implementation is performed, a basic, but working solution is required to investigate the requirements, constraints and integration issues.
The task described here has the following goals:
1. Register a set of basic multi-node tests of increasing complexity in the ETICS database
2. Visualize the tests in the web-application
3. Create and edit additional tests in the web-application
4. Use the test metadata to create the appropriate set of jobs to be submitted to the execution engine to the required N nodes
5. Execute each job, using the getters and setters to synchronize the execution
6. Collect the reports of each job in a single high-level report
7. Make available the individual reports and the summary report in the repository with proper links to the relevant objects
Preliminary design and implementation steps
1. Register manually the following basic multi-node test in the ETICS database setting the deploymentType field as required
basicMN
MN-Server (deploys tomcat)
MN-Client (executes a simple wget query)
2. Adapt the web application to correctly display and submit this distributed test
3. Modify the web service to execute the following tasks:
3.1. Generate two submission files
3.2. Pass a common job GUID to both jobs (to be taken from en env var)
3.3. Set the total node counter in the database, so that it can be decreased by the jobs
4. When 1, 2, and 3 works iterate again on the following more complex test:
ARC test
ARC A-Rex Server
Torque
Worker node
ARC Client
Open Issues
Datamodel
- Multinode Tests (MT) share the same datamodel of subsystems. However, do all fields apply to MT? Currently "vendor", "repository" and "vcsroot" are hidden in the WA. More? Less?
- Nodes share the same datamodel of components. However, do all fields apply to Nodes? Currently only "name", "displayName" and "description" are used.
Authorizations
- Currently the same authz approach of subsystems is used. i.e. who can create/edit/remove subsystems can do the same on MT
Plans, Dates and Status
Status
General status and current versions, tags, configuration.
Ongoing work, etc
Future improvements
Meeting 17.6.2009
General Logic
- Tests (T) and Nodes (N) are at the level of the Components (C)
- T and N have configurations and dependencies like any C (properties, locking etc?)
- N in the sane T could run of different platforms but we do not describe that
- For the moment all N of a T, run on the same platform
- T has dependencies toward N
- Dependencies between T and T? N and N make sense?
- T and N are under Subsystems etc like any component
- N can be also in External for external modules (tomcat, mySQL, etc).
- Need to reuse a N specification in many T (example tomcat, mySQL, etc) with different properties.
- Have a library of Ns in the project or external Ns
Complex Scenarios:
- Possible to have two nodes identical in the same test? (2 mySQL) attach twice the same dependency, different properties
- Deploy twice in different nodes the same component. 2 dependencies?
- Dependencies are on specific configurations of Ns.
- Can we have many nodes on multiple platforms? Not as it is now.
Web Services
- Launch a job for each N depending on a T
- Careful to make individual specific Test ID (TID).
Repository
repository-client
- Create a new multi-node test submission to the repository
- Accept a global-test-uuid to recognize multi-node test reports from the same test (as argument or in build-status.xml)
- Accept the total numer of nodes taking part of the multi-node test (as argument or in build-status.xml)
repository-web-service
- Create a new multi-node test method
- store temporarily the submissions until the number of expected reports is matched or a timeout occurs
- generate meta-report
- store the submission in the proper area once t is considered final
- send email to the user
repository-data-model
- find a way to fit or extend the current data model for multi-node
repository-web-application
- display the reports in the interface