[openstack-dev] [nova][qa][pci] Intel PCI CI , testing method/env and test cases

yongli he yongli.he at intel.com
Fri Jan 16 06:47:53 UTC 2015


Hi, all

Intel PCI CI use  hardware machine to testing PCI,  there are some 
change to devstack, tempest
use Jerkins  dispatch task.

basic information:
* the topology:
     log server <--->  Jenkins server <----> node pool
* use devstack deploy testing env.

PCI CI 's  main problem is how to know pci information and how configure 
nova/tempest:
      1)  the test cases should know the  machine's  pci device 
information ( to checking the allocated pci does passed to vm)
      2)  how Jerkins  deliver these pci information  to 
nova/devstack/tempest

how Intel CI solve these problem:
       1)  Q:how the test cases know the allocated machine's  pci device 
information :
            A: each node might have different HW for PCI, different 
number of PCI devices so there is a configure file
            for each node storing the node's pci information.

            * test node local config file:
              pci.conf
pci_info=name:PCI_network_card,vendor_id:8086,product_id:1520,count:20; ...

        2) Q:  how Jekins  deliver pci information  to nova/devstack/tempest
             A: Jekins  allocated a node for a pach set, then sent a 
scripts to :
             *  configure the devstack
                  then,  devstack configure the nova pci 
pci_passthrough_whitelist and alias
             * exporting a env var storing the pci_info for tempest pci 
test cases ( this  need improve, of course)
               now the test case know everything to create  VM with PCI 
devices.

   What changed to devstack/tempest:
         * devstack
            adding  "insert_pci"  to  devstack/functions-common
         * tempest
             adding linux utils to get pci device information from vm
             adding routines to create pci flavor
https://github.com/intel-hw-ci/Intel-Openstack-Hardware-CI/blob/master/pci_tempest_patch/0001-Add-Intel-PCI-functions.patch

         * test cases
https://github.com/intel-hw-ci/Intel-Openstack-Hardware-CI/tree/master/pci_testcases

What can be improvement and what is common( maybe into devstack/tempest)?
        * tempest use env variable  deliver information to tempest cases 
need improve, may be a config option
        * the pci information could be simplify by use interface name 
instead of  vendor_id/product_id
        * "init_pci" might be valuable to devstack
        * test cases:
            landing the test cases to nova function testing (pending):
                  https://review.openstack.org/#/c/141270/
            trying put  some improved test case to tempest(rejected):
                 https://review.openstack.org/#/c/139000/

Regards
Yongli He at intel.com



More information about the OpenStack-dev mailing list