Versions Compared

Key

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

...

Use cases

The CIS is required to create  

  • Create a fully  A fully working test bed, run tests and publish the results.

  • Provide a means to access test logs for debugging purposes.

  • Dynamically pull newly added test cases into the CI runs.

  • Provide a mens to separate tests that can be run using CS simulator. 

Functional requirements

  1. CIS will create a test setup comprising of single management server supporting one hypervisor at a time. It will be a development environment. Currently  Currently we do will not support clustered management server setups.
  2. On successful creation of MS VM it will add it to the database and try to reuse it on subsequent test runs. The reuse of MS VM means we will not create new VM and install dev tools every time, we will always tear down the old CS setup and create a new one with a new built build form the latest code base. 
  3. CIS will work based on a static configuration file files added to its database, the configuration file will be in accordance with the CS (marvin test framework) MTF. It may contain additional details that are not required by MTF but are used by CIS system itself.
  4.  As As of now we do not pick the resources dynamically and generate the MCF. It has to be created manually and  added and  added to the CIS database. There is no validation of the MCF agains other MCFs that may be present in the CIS database. we have we have to make sure that we do not add overlapping resources in MCF files.
  5. CIS will use only open source tools to function. Currently we will use Jenkins, Cobbler and Puppet to create CS test beds.
  6. It will run tests and publish the results in mail and archive the test results and logs on a nfs server.

Assumptions

  1. CIS is meant only to run CI to stabilise ACS master, It is not meant to offer testing services to developers. 

  2. CIS test resources and hardware will not be used by any other system or person.

Work Flow

Driver VM Setup

  1. The CIS database is a mysql database located on the driver VM. We need to have access to the driver VM and the database to configure CIS.
  2. Create a MCF and add its path to the static_config table of the CIS database.
  3. Add the details (IPMI address , MAC etc) of hosts mentioned in the above MCF file to the static_host_config table of CIS database. 
  4. Add the location and version of system vm templates required to build the test bed described in the above mentioned MCF. The version of system of system vm templates is just the name of the brach from which we are building the CS MS.
  5. After each run the CIS system make the detailed test report available via jenkins reporter job. These jobs will stay in the Jenkins server indefinitely unless indefinitely unless removed. The CIS can be configured to cleanup these jobs at specified interval. We need to set the self.deleteAfterDays value in the file jenkinsGarbageCollector.py.we need to add this as cron job and run it regularly to cleanup the report generator jobs in jenkins.

Jenkins Setup

  1. Log into Jenkins, create a  Automation CI view and add all the CIS related jobs to this view. The CIS related jobs can be crated from the xml file located in located in the CIS source code.
  2. Configure the Automation CI trigger job to schedule the CI runs. This job will trigger the CI run jobs on each of the hypervisor.
  3. There is a job associated to run the CI on each type of hypervisor. Add the default values of build parameters and save the config.The default parameters will be  used to for the daily automated CI runs.
  4. Configure the test executor job by specifiying the number of test that can be run in parallel.
  5. Once all the jobs are in place, Enable these jobs. CIS system should now be completely operational.  

Troubleshooting



Design.

 

 

Component Description

...