Welcome!
========
vmware_nsx_tempest is a plugin module to openstack tempest project.

If you are not familiar with tempest, please refer to:

   http://docs.openstack.org/developer/tempest

It is implemented with tempest external plugin.
The official design sepcification is at:

    https://review.openstack.org/#/c/184992/

Overview
========

vmware_nsx_tempest hosts vmware_nsx's functional api and scenario tests.

All vmware_nsx_tempest tests are in "master" branch. For this reason,
it is recommended to have your own developer version of vmware-nsx repo
installed outside the devstack folder, /opt/stack/.

For example at /opt/devtest folder. In doing so, you can install
editable vmware-nsx repo under tempest VENV environemnt.

Installation:
-------------

On your own development folder, for example /opt/devtest/:

    # install your own tempest development env at /opt/devtest/os-tempest/
    cd /opt/devtest
    git clone https://github.com/openstack/tempest os-tempest
    cd os-tempest
    python tools/install_venv.py

    # install vmware-nsx master branch at /opt/devtest/vmware-nsx
    cd /opt/devtest 
    git clone https://github.com/openstack/vmware-nsx

Install vmware_nsx_tempest to your tempest development environment:

    cd /opt/devtest/os-tempest
    source .venv/bin/activate
    pip install -e /opt/devtest/vmware-nsx/

    run command:
        pip show vmware-nsx
    and you should observe the following statements:
        Location: /opt/devtest/vmware-nsx
    and under section of Entry-points:
        [tempest.test_plugins]
        vmware-nsx-tempest-plugin = vmware_nsx_tempest.plugin:VMwareNsxTempestPlugin

Validate installed vmware_nsx_tempest succesfully do:

    cd /opt/devtest/os-tempest
    tools/with_venv.sh testr list-tests vmware_nsx_tempest.*l2_gateway

    Your installation failed, if no tests are shown.

Execution:
----------

vmware_nsx_tempest tests are tempest tests, you need to
run from tempest directory. For example, to run only l2-gateway tests:

    cd /opt/devtest/os-tempest
    ./run_tempest.sh -t vmware_nsx_tempest.*test_l2_gateway
    ./run_tempest.sh -d vmware_nsx_tempest.tests.nsxv.api.test_l2_gateway_connection.L2GatewayConnectionTest.test_csuld_single_device_interface_vlan

TechNote on vmware_nsx_tempest:
-------------------------------

vmware_nsx_tempest is a plugin to tempest, not neutron, nor vmware_nsx.

It is defined by tempest.test_plugins.

Modules within vmware_nsx_tempest can not see resources defined
by vmware_nsx. Commands like following are not acceptable, unless
vmware_nsx is installed in your tempest environment.

    from vmware_nsx._i18n import _LE
    import vmware_nsx.shell.admin.plugins.common.utils as admin_utils

TechNote on logging:
--------------------
tempest repo itself does not enforce LOG complying to _i18n.
So for tempest tests for vmware-nsx, that is vmware_nsx_tempest,
use LOG.debug() command.

However, if you need to log other than debug level, please do:

    from vmware_nsx_tempest._i18n import _LI
    from vmware_nsx_tempest._i18n import _LE
    from vmware_nsx_tempest._i18n import _LW

Customize it depending on the log level your scripts will use.
