DeepSea integration test suite
==============================

The DeepSea integration suite residing in qa/ consists of a number of
executable files (bash scripts), which can be classified as follows:

qa/common/ -> scripts that are sourced by the test scripts
qa/suites/ -> test scripts

The test scripts are designed to be run from the qa/ directory. Please
study carefully this README and the comments at the top of the test script
before trying to run any of the test scripts.


Assumptions made by all test scripts
------------------------------------

1. there are at least two test nodes (VMs or physical machines) that are
   running the same OS (e.g. Leap 42.3) and can see eachother over the network. 
2. all the test nodes are configured as a Salt cluster, i.e.:
   a. one node is configured as both a master and a minion
   b. the remaining nodes are configured as minions only
   c. the master can "salt '*' test.ping" all the minions
3. the nodes have at least one external drive (>= 10GB) for OSD and there are
   at least four OSDs, total, in the cluster
4. the package repos have already been set up so DeepSea can install the RPMs
   it needs
5. the DeepSea code under test has already been installed (git clone ; make
   install) on the master node
6. the integration test script (this script) is run from the qa/ subdirectory
   of the DeepSea repo clone, or from the /usr/lib/deepsea/qa/ directory.
   For example:
   $ make install
   $ cd /usr/lib/deepsea/qa/
   $ suites/basic/health-ok.sh

Caveats
-------

1. Ceph will not work properly unless the nodes have (at least) short
   hostnames. That means the qa scripts won't pass, either. There are two
   options: /etc/hosts or DNS
2. Node targeting: DeepSea suite sets "deepsea_minions: *" in
   /srv/pillar/ceph/deepsea_minions.sls. If you want to override this in a test, just
   reset that file to something else after sourcing qa/common/common.sh, but
   before running stage 0.

