
==========================================
Tempest with plugins environment container
==========================================


Tempest with plugins environment container.
Those container supposed to have any needed set of tempest tests
for running on any custom cloud.

Container statements:
=====================

  * Downstream tempest with set of downstream plugins
  * Align to upstream openstack upper-constraints.txt
  * No-auto-magic things, by default.
  * All configs should be **connected** as volumes to container.
  * All preconfigured things, like:
    -create networks
    -create tempest conf
    -add\patch plugin
    should be done in separate steps.
  * Open entrypoint - any customization allowed and could be passed:
    - via cmdline for docker run
    - via SWITCH env variables + new func in entrypoint
  * If needed, any custom scripts could be added, but should be disable by default.



Example run:
============

Example for custom tempest run:

.. caution::

   **tempest_generated.conf** should be previously generated, along with all needed resources in cloud.

   ``log_dir`` variable in conf, should be pointed to ``/temepest_reports`` - otherwise, you need to
   change cmdline accordingly.



.. code-block:: bash

   mkdir -p /root/test_example/; cd /root/test_example/ ;
   mkdir -p temepest_reports/ # create local folder, to save results
   rm -rf temepest_reports/test1  # remove old results, ff was
   docker run -v $(pwd)/tempest_generated.conf:/etc/tempest/tempest.conf -v $(pwd)/temepest_reports:/temepest_reports --rm -it 858b99100d04  /bin/bash -c "cd /temepest_reports; tempest init test1 ; cd test1; tempest run --debug -r heat_tempest_plugin.tests.api.test_heat_api.stacks_patch_update_stack.test_request



Skip lists:
===========

ceph_rgw.list
https://mirantis.jira.com/browse/PROD-18961


