Revert only the latest snapshot that matches the test requirements

- add pytest marks 'revert_snapshot' to all required fixtures instead
  of reverting the snapshots inside them
- add get_top_fixtures_marks() that extracts all the marks
  'revert_snapshot' from the test and it's fixtures, order the marks
  in the same way as the fixtures depends on each other,
- in the fixture 'revert_snapshot' try to find the most suitable
  snapshot for reverting, from latest to earliest.

Co-Authored-By: Dmitry Tyzhnenko <dtyzhnenko@mirantis.com>
7 files changed
tree: 7467d3de66b0ac144ca5f5d61d240e465af205ae
  1. tcp_tests/
  2. .gitignore
  3. .gitreview
  4. .travis.yml
  5. pytest.ini
  6. README.md
  7. setup.cfg
  8. setup.py
  9. tox.ini
README.md

tcp-qa

Default template used here requires 20 vCPU and 52Gb host RAM.

Clone the repo

git clone https://github.com/Mirantis/tcp-qa
cd ./tcp-qa

Install requirements

pip install -r ./tcp_tests/requirements.txt
  • Note: Please read [1] if you don't have fuel-devops installed, because there are required some additional packages and configuration.

Get cloudinit images

wget https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img -O ./trusty-server-cloudimg-amd64.qcow2
wget https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img -O ./xenial-server-cloudimg-amd64.qcow2

Export variables

Required:

export IMAGE_PATH1404=./trusty-server-cloudimg-amd64.qcow2
export IMAGE_PATH1604=./xenial-server-cloudimg-amd64.qcow2

Optional:

export ENV_NAME=tcpcloud-mk22  # You can set any env name
export LAB_CONFIG_NAME=mk22-lab-basic  # mk22-lab-basic or mk22-lab-advanced

Run deploy test

export SHUTDOWN_ENV_ON_TEARDOWN=false  # Optional

LC_ALL=en_US.UTF-8  py.test -vvv -s -k test_tcp_install_default

, or as an alternative there is another test that use deploy scripts from models repository written on bash [2]:

LC_ALL=en_US.UTF-8  py.test -vvv -s -k test_tcp_install_with_scripts

Create and start the env for manual tests

dos.py create-env ./tcp_tests/templates/underlay/mk22-lab-basic.yaml
dos.py start "${ENV_NAME}"

Then, wait until cloud-init is finished and port 22 is open (~3-4 minutes), and login with root:r00tme

[1] https://github.com/openstack/fuel-devops/blob/master/doc/source/install.rst

[2] https://github.com/Mirantis/mk-lab-salt-model/tree/dash/scripts