Project

General

Profile

action #55835

Updated by mkittler over 5 years ago

## User story 
 As a tester, I want to run multiple test job directly in sequence on the same machine, to test efficiently on bare metal SUTs and other self-provisioning environments. 

 ## Acceptance criteria 
 * **AC1:** There is a way to specify that a job should run *directly* after another job on the same machine. E.g. add the test setting `START_DIRECTLY_AFTER_TEST` (in accordance to the already existing `START_AFTER_TEST` setting). 
 * **AC2:** If one of the tests fails, subsequent tests in that dependency chain are aborted. 
 * **AC3:** If one of the tests is cancelled while still scheduled, the entire job chain is cancelled. 
 * **AC4:** The UI should show what's going on in a similar manner to what we already have for the other job dependencies. 
 * **AC5:** Provide appropriate error handling for possible misconfigurations (e.g. jobs supposed to start directly after another have different worker classes). 

 ## Tasks 
 The following implementation idea is just theory. This approach would involve the following steps: 

 1. Add the new dependency type 
     1. Update all places dealing with dependency types accordingly 
         * Possibly the dependency graph needs adjustments so that it at least does not show any misleading information 
     2. Extend the code which creates inserts new dependencies into the database from job settings 
     2. 3. Extend cancellation and error handling to take the new dependency type into account 
     3. 4. Let the scheduler take the new dependency type into account 
     4. Update all other places dealing with dependency types accordingly 
         * e.g. the dependency graph possibly needs adjustments so that it at least does not show any misleading information 
 2. Support tracking multiple jobs per worker at the same time on the web UI side 
     1. Make use of the already existing relation in the database (which is currently only used for the worker's job history) 
     2. Possibly remove the now redundant worker-job relation 
 3. Allow the web socket server to pass multiple jobs to the worker at the same time 
 4. Make the worker capable of accepting multiple jobs at the same time and run these in sequence without accepting another job in the meantime 

 Maybe it is worth to create sub-tickets or use to use the check list feature for the particular tasks. 

 The numbering is meant for easier referring but not to give a strict implementation order. Nevertheless it would make sense to start at least with the first task.

Back