diff --git a/libvirt/regression/README.rst b/libvirt/regression/README.rst new file mode 100755 index 0000000..22a1e83 --- /dev/null +++ b/libvirt/regression/README.rst @@ -0,0 +1,98 @@ +Overview +======== +This regression test ensures that a change does not impact +the generation of XML for default and 'madcloud' configuration examples. + +Before starting make sure you have cloned the starlingx/virtual-deployment git +and installed any required packages as presented in ``libvirt/install_packages.sh``. + +The regression method sets attributes for a lab, runs the deployment +method's scripts and dumps XML using the virsh command. +These attributes are the overridable environment variables including: +``CONTROLLER, WORKER, BRIDGE_INTERFACE, EXTERNAL_NETWORK, EXTERNAL_IP`` + +Step 1 export attributes: +--------------------------- +The ATTRIBUTE variable is used to name the xml file, and should be +defined for ease of use. + +Start with a new bash shell to reset the environment to use default +attributes. + +Default values: + + | export ATTRIBUTE=default + | export CONTROLLER=${CONTROLLER:-controller} + | export WORKER=${WORKER:-worker} + | export BRIDGE_INTERFACE=${BRIDGE_INTERFACE:-stxbr} + | export EXTERNAL_NETWORK=${EXTERNAL_NETWORK:-10.10.10.0/24} + | export EXTERNAL_IP=${EXTERNAL_IP:-10.10.10.1/24} + +Madcloud values: + + | export ATTRIBUTE=madcloud + | export CONTROLLER=madcloud + | export WORKER=madnode + | export BRIDGE_INTERFACE=madbr + | export EXTERNAL_NETWORK=172.30.20.0/24 + | export EXTERNAL_IP=172.30.20.1/24 + +Step 2 choose configuration: +------------------------------ + + export CONFIGURATION=(simplex, duplex, etc.) + +Options are: simplex, duplex, controllerstorage or dedicatedstorage +Along with the attributes this forms a 2x4 matrix: + + | default, simplex + | default, duplex + | default, controllerstorage + | default, dedicatedstorage + +And: + + | Madcloud, simplex + | Madcloud, duplex + | Madcloud, controllerstorage + | Madcloud, dedicatedstorage + +Step 3 start VM: +------------------ + + | ./setup_network.sh + | ./setup_configuration.sh -c $CONFIGURATION -i $iso + +Remember to use a path to a valid iso - it doesn't matter if it +actually boots or etc + +Step 4 create dump xml: +------------------------- + + mkdir -p regression + +Each configuration has 1 or more domains. For each DOMAIN in virsh list: + + | DOMAIN="simplex-controller-0" + | outf="regression/${ATTRIBUTE}_${CONFIGURATION}_${DOMAIN}.xml" + | virsh dumpxml $DOMAIN > "${outf}_${x}" + +It is recommended to use either numbers or tags to signify what +iteration you are setting, in this case x represents that + +Step 5 reset parameters and workspace: +-------------------------------------------- +Teardown configuration and network settings + + | ./destroy_configuration.sh -c $CONFIGURATION + | ./destroy_network.sh + +Step 6 compare files: +----------------------- + + diff -usU9999 "${outf}_${x}.xml" "${outf}_${y}.xml" + +In this case x and y represent different iterations. +Details to ignore are changes to: ``UUID, domain ID, mac_addresses, +mounted cdrom, serial/dev/pts``. If there are no changes ignoring those above, +the test is considered a pass.