vmware-nsx/vmware_nsx_tempest
Alex Kang 3d39f1300c Tempest: Fix upstream patch 32049 which replacing oo-wrap
Patch 32049 replaced object-oriented wrapped network resources with
python method and object reference mechanism, and relys on
test framework's teardown mechanism.

Partial oo-wrapped mechanism are replaced with methods defined at
module network_addon_methods.py, and object referenc method is
replaced with python dict/list reference methods.

For API tests, their _try_delete_resources are replaced with
test_utils.call_and_ignore_notfound_exc

config.nsxv.no_router_type added to support running lbaasv2
under upstream environment.

Potential issues whith NSX-6.2.3 during this fix:
bug#1682911 and bug#1683241

Change-Id: I93a667b85d87644e8cbf27337c7355b338f67982
2016-06-28 22:25:20 -07:00
..
common Tempest: Added L2GW API tests 2016-04-19 20:01:47 +00:00
services Merge "Tempest: Providing support for dhcp-121 feature" 2016-06-21 19:51:59 +00:00
tests Tempest: Fix upstream patch 32049 which replacing oo-wrap 2016-06-28 22:25:20 -07:00
__init__.py init release of vmware-nsx tempest tests in tempest external plugin 2016-01-21 10:02:00 -08:00
_i18n.py init release of vmware-nsx tempest tests in tempest external plugin 2016-01-21 10:02:00 -08:00
config.py Tempest: Fix upstream patch 32049 which replacing oo-wrap 2016-06-28 22:25:20 -07:00
plugin.py Add NSXv3 config for tempest 2016-01-27 23:20:31 +00:00
README.rst Tempest: Format vmware_nsx_tempest README 2016-05-20 17:04:27 +00:00

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:

  1. 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
  2. Install virtualenv with the following command:

    $ cd /opt/devtest/os-tempest
    $ ./run_tempest.sh -u not_exist_tests
  3. Install vmware-nsx master branch at /opt/devtest/vmware-nsx:

    $ cd /opt/devtest
    $ git clone https://github.com/openstack/vmware-nsx
  4. Install vmware_nsx_tempest in 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

    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
  5. 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.