From 19f9f2a99641cca98b896aa975a2182c43ba7f97 Mon Sep 17 00:00:00 2001 From: Morgan Richomme Date: Fri, 17 Mar 2017 17:40:12 +0100 Subject: [PATCH] Update documentation for Danube JIRA: FUNCTEST-559 JIRA: FUNCTEST-560 Change-Id: I2104a9b68bb3985c9f5900ebc30bab89b09b7835 Signed-off-by: Morgan Richomme --- docs/images/FunctestDashboardDanube.png | Bin 0 -> 85505 bytes docs/images/concepts_mapping_final.png | Bin 145191 -> 118434 bytes docs/images/functest_overview.odg | Bin 0 -> 21004 bytes docs/release/release-notes/functest-release.rst | 413 ++++++++----------- docs/release/release-notes/index.rst | 3 + docs/testing/developer/devguide/index.rst | 503 ++++++++++++------------ docs/testing/user/configguide/configguide.rst | 13 +- docs/testing/user/configguide/index.rst | 44 +-- docs/testing/user/userguide/index.rst | 211 +++++----- docs/testing/user/userguide/introduction.rst | 131 +++--- docs/testing/user/userguide/runfunctest.rst | 378 +++++++++++++----- docs/testing/user/userguide/troubleshooting.rst | 54 +-- 12 files changed, 902 insertions(+), 848 deletions(-) create mode 100644 docs/images/FunctestDashboardDanube.png create mode 100644 docs/images/functest_overview.odg diff --git a/docs/images/FunctestDashboardDanube.png b/docs/images/FunctestDashboardDanube.png new file mode 100644 index 0000000000000000000000000000000000000000..b934d7e8e7cd4bb4eb3c828634a2c4f51e3c2a7e GIT binary patch literal 85505 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 literal 0 HcmV?d00001 diff --git a/docs/images/concepts_mapping_final.png b/docs/images/concepts_mapping_final.png index 5ad0fc569fe9e7059f798b0613225f9573f236ca..91d8fa1a57bc2fd3ce2c3ffcfe2ba8645f264bf0 100644 GIT binary patch literal 118434 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

WS~`P?KK5Kbwu82>n*6^Qto!)JdoMBAY8f z5qsh`g+a$U6}Xw`NuBRj6SoUn;kPoaoFxrW5s{+kTi`D?%0bWALI?Y<=k%mCE)4Je z5ElgH_{CyHA3LpoO!JfOjyf8_4|-o8|jz*x(8 z#xP_SOXaj4(@n)_okQ1;S5*-^Yq!pRrp`)KOH0M*dq)vkm{#5l@<$IUa(xt;fc zV-*926Ø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�V_b(rQo%e0Dt7$}PKmqnazy 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 ZlxyL$@AK6w_U!^c+8AAQp4v74{{kz3(nbIP diff --git a/docs/images/functest_overview.odg b/docs/images/functest_overview.odg new file mode 100644 index 0000000000000000000000000000000000000000..9f6fe345f3c0884238d084553ed0dc6c495e597c GIT binary patch literal 21004 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 literal 0 HcmV?d00001 diff --git a/docs/release/release-notes/functest-release.rst b/docs/release/release-notes/functest-release.rst index ce03047f..423b9f9b 100644 --- a/docs/release/release-notes/functest-release.rst +++ b/docs/release/release-notes/functest-release.rst @@ -1,17 +1,20 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 + ======= License ======= -OPNFV Colorado release note for Functest Docs -(c) by Morgan Richomme (Orange) +OPNFV Danube release note for Functest Docs +(c) by Jose Lausuch (Ericsson) -OPNFV Colorado release note for Functest Docs +OPNFV Danube release note for Functest Docs are licensed under a Creative Commons Attribution 4.0 International License. You should have received a copy of the license along with this. If not, see . =========================================== -OPNFV Colorado1.0 release note for Functest +OPNFV Danube1.0 release note for Functest =========================================== Abstract @@ -30,8 +33,11 @@ Version history | 2016-08-17 | 1.0.0 | Morgan Richomme | Functest for Colorado | | | | (Orange) | release | +------------+----------+------------------+------------------------+ +| 2017-03-27 | 4.0.0 | Jose Lausuch | Functest for Danube | +| | | (Ericsson) | release | ++------------+----------+------------------+------------------------+ -OPNFV Colorado Release +OPNFV Danube Release ====================== Functest deals with functional testing of the OPNFV solution. @@ -40,36 +46,44 @@ other OPNFV projects and other upstream communities. The internal test cases are: - * healthcheck - * vPing ssh - * vPing userdata - * Tempest Smoke Serial - * Rally Sanity - * ODL - * Tempest full parallel - * Rally full - * vIMS + * connection_check + * api_check + * snaps_health_check + * vping_ssh + * vping_userdata + * tempest_smoke_serial + * refstack_defcore + * snaps_smoke + * rally_sanity + * odl + * tempest_full_parallel + * rally_full + * cloudify_ims The OPNFV projects integrated into Functest framework for automation are: + * barometer * bgpvpn - * Copper - * Doctor - * Domino - * Moon - * Multisite - * ONOSFW - * ONOS-sfc - * ODL-sfc - * Parser - * Promise - * Security scan + * doctor + * domino + * fds + * multisite + * netready + * onos + * odl-sfc + * odl-netvirt + * orchestra_ims + * parser + * promise + * security scan + * vyos_vrouter The validation of a scenario requires a subset of these tests depending on the installer and the scenario. -The 3 last internal test cases (tempest full parallel, Rally full and -vIMS) are not considered for scenario validation. +The test cases from vnf (cloudify_ims, orchestra_ims, vyos_vrouter) and +component categories (tempest full parallel, Rally full) are not considered for +scenario validation. Release Data ============ @@ -78,16 +92,16 @@ Release Data | **Project** | functest | | | | +--------------------------------------+--------------------------------------+ -| **Repo/tag** | colorado.1.0 | +| **Repo/tag** | danube.1.0 | | | | +--------------------------------------+--------------------------------------+ -| **Release designation** | Colorado base release | +| **Release designation** | Danube base release | | | | +--------------------------------------+--------------------------------------+ -| **Release date** | September 22 2016 | +| **Release date** | April 3rd 2017 | | | | +--------------------------------------+--------------------------------------+ -| **Purpose of the delivery** | Colorado base release | +| **Purpose of the delivery** | Danube base release | | | | +--------------------------------------+--------------------------------------+ @@ -97,19 +111,19 @@ Deliverables Software -------- - - The Functest Docker image: https://hub.docker.com/r/opnfv/functest (tag: colorado.1.0) + - The Functest Docker image: https://hub.docker.com/r/opnfv/functest (tag: danube.1.0) - - The TestAPI Docker image: https://hub.docker.com/r/opnfv/testapi (tag:colorado.1.0) + - The TestAPI Docker image: https://hub.docker.com/r/opnfv/testapi (tag:danube.1.0) Documents --------- - - Installation/configuration guide: http://artifacts.opnfv.org/functest/colorado/docs/configguide/index.html + - Installation/configuration guide: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/configguide/index.html - - User Guide: http://artifacts.opnfv.org/functest/colorado/docs/userguide/index.html + - User Guide: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/user/userguide/index.html - - Developer Guide: http://artifacts.opnfv.org/functest/colorado/docs/devguide/index.html + - Developer Guide: http://docs.opnfv.org/en/latest/submodules/functest/docs/testing/developer/devguide/index.html Version change @@ -118,137 +132,140 @@ Version change Feature evolution ----------------- - - refactoring of ODL functional tests (with upstream modifications) +- Adoption of SNAPS as middleware in 4 new test cases (connection_check, api_check, +snaps_health_check and snaps_smoke) + +- Introduction of refstack suite + +- Support new odl suites (odl-netvirt, fds) + +- Introduction of VNF onboarding capabilities + +- Support of new feature projects (fds, netready, barometer, orchestra, vyos_vrouter) - - refactoring of TestAPI (update, swagger documentation, dockerization) - - jenkins logs improvement - - update integration of Doctor, Promise and SDNVPN projects +Framework +--------- - - split Tempest and rally into 2 different tests: smoke and full + - Harmonization of the naming, better adoption of OpenStack coding conventions - - vIMS test suite integration + - Pythonization, rewritting of bash scripts - - adoption of Kibana for dashboarding + - Introduction of abstraction classes to ease and harmonize the integration of + test cases (internal or from feature projects) + - New management of logger, env variables and configuration files -New features ------------- + - Creation of unit tests on the whole framework to ensure stability - - Functest CLI to prepare and run the tests + - Creation or ARM Functest docker - - creation of the healthcheck test case - - support new scenarios (ocl, odl_l2-sfc, onos-sfc, lxd, moon, fdio, multisite) +Test API +--------- - - integration of new OPNFV feature projects (copper, domino, multisite, - moon, parser, onos-sfc, odl-sfc, security scan) +- automatic documentation (html & pdf) - - introduction of test tiers in functest framework +- full dockerization and automation of the deployment on testresults.opnfv.org - - automatic reporting +- automation of test database backup on artifact - - introduction of a jenkins summary table - - support of ARM architecture Scenario Matrix =============== -For Colorado 1.0, Functest was tested on the following scenarios (if not -precised, the scenario is a HA scenario): +For Danube 1.0, Functest was tested on the following HA scenarios (new +dabube scenarios in bold): +---------------------+---------+---------+---------+---------+ | Scenario | Apex | Compass | Fuel | Joid | +=====================+=========+=========+=========+=========+ | nosdn | X | X | X | X | +---------------------+---------+---------+---------+---------+ -| nosdn-noha | | | X | X | -+---------------------+---------+---------+---------+---------+ -| kvm | | | X | | +| **fdio** | X | | | | +---------------------+---------+---------+---------+---------+ -| kvm-noha | | | X | | +| kvm | X | | X | | +---------------------+---------+---------+---------+---------+ -| lxd | | | | X | +| **kvm_ovs_dpdk** | | | X | | +---------------------+---------+---------+---------+---------+ -| lxd-noha | | | | X | +| **kvm_ovs_dpdk-bar**| | | X | | +---------------------+---------+---------+---------+---------+ -| ovs-noha (dpdk) | | | X | | +| lxd | | | | X | +---------------------+---------+---------+---------+---------+ -| odl_l2 | X | X | X | X | +| **ovs** | | | X | | +---------------------+---------+---------+---------+---------+ -| odl_l2-noha | | | X | | +| **openo** | | X | | | +---------------------+---------+---------+---------+---------+ -| odl_l2-bgpvpn | X | | X | | +| odl_l2 | | X | X | X | +---------------------+---------+---------+---------+---------+ -| odl_l2-bgpvpn-noha| | | X | | +| odl-bgpvpn | X | | | | +---------------------+---------+---------+---------+---------+ -| odl_l2-fdio-noha | X | | | | +| odl_l2-bgpvpn | | | X | | +---------------------+---------+---------+---------+---------+ -| odl_l2-moon | | X | | | +| **odl_l2-fdio** | X | | | | +---------------------+---------+---------+---------+---------+ -| odl_l2-sfc-noha | X | | X | | +| odl_l2-sfc | | | X | | +---------------------+---------+---------+---------+---------+ | odl_l3 | X | X | X | | +---------------------+---------+---------+---------+---------+ -| odl_l3-noha | | | X | | +| **ocl** | | X | | | +---------------------+---------+---------+---------+---------+ -| onos | | X | X | X | -+---------------------+---------+---------+---------+---------+ -| onos-noha | | | X | | -+---------------------+---------+---------+---------+---------+ -| onos-sfc | | X | X | X | -+---------------------+---------+---------+---------+---------+ -| onos-sfc-noha | | | X | | +| onos | | X | | | +---------------------+---------+---------+---------+---------+ | multisite | | | X | | +---------------------+---------+---------+---------+---------+ -For Colorado 2.0, the following scenarios have been re-released: +Non HA scenarios: +---------------------+---------+---------+---------+---------+ | Scenario | Apex | Compass | Fuel | Joid | +=====================+=========+=========+=========+=========+ -| onos | X | X | X | X | -+---------------------+---------+---------+---------+---------+ -| odl_l2-sfc-ha | | | X | | -+---------------------+---------+---------+---------+---------+ - - -In Colorado, the functional tests have been sliced in 6 different -categories: - -+----------------+-----------------------------------------------+ -| Category | Description | -+================+===============================================+ -| healthcheck | Basic OpenStack commands | -+----------------+-----------------------------------------------+ -| smoke | vPings, Tempest and rally smoke tests | -+----------------+-----------------------------------------------+ -| sdn_suites | Specific SDN feature tests | -+----------------+-----------------------------------------------+ -| features | OPNFV feature project functional test suites | -+----------------+-----------------------------------------------+ -| openstack | Advanced, long duration OpenStack tests | -| | (Tempest and Rally full suite). Each test may | -| | last several hours | -+----------------+-----------------------------------------------+ -| vnf | Complex scenarios dealing with orchestration, | -| | VNF deployment and tests (e.g. vIMS) | -+----------------+-----------------------------------------------+ - -For the scenario validation, we consider only the healthcheck, smoke, -sdn_suites and features categories. These tests are run systematically -in the CI daily loops. +| nosdn | | | X | X | ++---------------------+---------+---------+---------+---------+ +| kvm | | | X | | ++---------------------+---------+---------+---------+---------+ +| **kvm_ovs_dpdk** | | | X | | ++---------------------+---------+---------+---------+---------+ +| **kvm_ovs_dpdk-bar**| | | X | | ++---------------------+---------+---------+---------+---------+ +| lxd | | | | X | ++---------------------+---------+---------+---------+---------+ +| ovs | | | X | | ++---------------------+---------+---------+---------+---------+ +| odl_l2 | | | X | | ++---------------------+---------+---------+---------+---------+ +| odl_l2-bgpvpn | | | X | | ++---------------------+---------+---------+---------+---------+ +| odl_l2-fdio | X | | | | ++---------------------+---------+---------+---------+---------+ +| **odl_l3-fdio** | X | | | | ++---------------------+---------+---------+---------+---------+ +| odl_l2-sfc | | | X | | ++---------------------+---------+---------+---------+---------+ +| odl_l3 | | | X | | ++---------------------+---------+---------+---------+---------+ +| **odl_gluon** | X | | | | ++---------------------+---------+---------+---------+---------+ + +Colorado deprecated scenarios: + + * odl_l2-moon + * onos-sfc + * onos-noha + * onos-sfc-noha + +For the scenario validation, we consider only the healthcheck, smoke and +features categories. These tests are run systematically in the CI daily loops. Success criteria have been defined for these test cases, they can be PASS/FAIL or a success rate may be declared (100%, > 90%) All the criteria, as well as the test dependencies are declared in the ci/testcases.yaml file. -The scoring for the Colorado release per installer can be described as +The scoring for the Danube release per installer can be described as follows. The scoring is an indicator showing how many feature project test suites @@ -266,7 +283,7 @@ By default, if not specified, the scenarios are HA. HA means OpenStack High Availability (main services). Note that not all VIM (e.g. OpenStack) services are deployed in HA mode, as that depends upon support of the specific service for HA deployment. -For example, in the Colorado release, the Congress service +For example, in the Danube release, the Congress service is deployed in non-HA mode even for HA OPNFV scenarios, as explicit support for HA operation has not yet been verified. See the release notes of the installers for more details. @@ -279,6 +296,7 @@ Apex | Scenario | Scoring | Success | Results | | | | rate | | +==================+=========+=========+===================+ +************* TODO ***************************************** | nosdn | 17/18 | 95% | `apex-res-174`_ | +------------------+---------+---------+-------------------+ | odl_l2 | 21/21 | 100% | `apex-res-175`_ | @@ -302,6 +320,7 @@ Compass | Scenario | Scoring | Success | Results | | | | rate | | +==================+=========+=========+===================+ +************* TODO ***************************************** | nosdn | 12/12 | 100% | `compass-res-55`_ | +------------------+---------+---------+-------------------+ | odl_l2 | 15/15 | 100% | `compass-res-59`_ | @@ -315,7 +334,7 @@ Compass | onos-sfc-ha | 17/18 | 95% | `compass-res-76`_ | +------------------+---------+---------+-------------------+ -Note: all the Compass tests for Colorado have been executed on virtual +Note: all the Compass tests for Danube have been executed on virtual environment. Bare metal resources were used for Master branch. @@ -326,6 +345,7 @@ Fuel | Scenario | Scoring | Success | Results | | | | rate | | +=====================+=========+=========+===================+ +************* TODO ***************************************** | nosdn | 18/18 | 100% | `fuel-res-129`_ | +---------------------+---------+---------+-------------------+ | nosdn-noha | 15/15 | 100% | `fuel-res-154`_ | @@ -367,12 +387,13 @@ Fuel *: all results passed, lacking iterations to reach the full score -Results of Functest on AArch64 Colorado 3.0 +Results of Functest on AArch64 Danube 3.0 +---------------------+---------+---------+----------------------+ | Scenario | Scoring | Success | Results | | | | rate | | +=====================+=========+=========+======================+ +************* TODO ***************************************** | nosdn | 18/18 | 100% | `fuel-arm-res-128`_ | +---------------------+---------+---------+----------------------+ | odl_l2 | 21/21 | 100% | `fuel-arm-res-122`_ | @@ -390,6 +411,7 @@ Joid | Scenario | Scoring | Success | Results | | | | rate | | +=====================+=========+=========+=================+ +************* TODO ***************************************** | nosdn | 18/18 | 100% | `joid-res-102`_ | +---------------------+---------+---------+-----------------+ | nosdn-noha | 17/18 | 95% | `joid-res-93`_ | @@ -416,14 +438,16 @@ for the date of the test you are interested in. The reporting pages can be found at: - * apex: http://testresults.opnfv.org/reporting/functest/release/colorado/index-status-apex.html - * compass: http://testresults.opnfv.org/reporting/functest/release/colorado/index-status-compass.html - * fuel: http://testresults.opnfv.org/reporting/functest/release/colorado/index-status-fuel.html - * joid: http://testresults.opnfv.org/reporting/functest/release/colorado/index-status-joid.html + * apex: http://testresults.opnfv.org/reporting/functest/release/danube/index-status-apex.html + * compass: http://testresults.opnfv.org/reporting/functest/release/danube/index-status-compass.html + * fuel: http://testresults.opnfv.org/reporting/functest/release/danube/index-status-fuel.html + * joid: http://testresults.opnfv.org/reporting/functest/release/danube/index-status-joid.html -Colorado known restrictions/issues +Danube known restrictions/issues ================================== +************* TODO ***************************************** + +-----------+-----------+----------------------------------------------+ | Installer | Scenario | Issue | +===========+===========+==============================================+ @@ -443,43 +467,19 @@ Colorado known restrictions/issues | | | Rally sanity test case has been disabled. | | | | Performance issues seem to be connected to | | | | the ODL version. It is planned to reintroduce| -| | | Rally sanity in Colorado 2.0 with the | +| | | Rally sanity in Danube 2.0 with the | | | | adoption of ODL Boron release. | +-----------+-----------+----------------------------------------------+ -| apex | *-fdio | Due to late integration, fdio decided to | -| | | focus on mandatory tests and exclude feature | -| | | tests (copper, doctor, security_scan) from | -| | | its scenarios | -+-----------+-----------+----------------------------------------------+ -| compass | moon | First ODL test FAILS because ODL/Openstack | -| | | federation done in moon is partial. Only | -| | | MD-SAL is federated (not AD-SAL) | -+-----------+-----------+----------------------------------------------+ -| fuel | any | TestServerBasicOps test case skipped | -| | | https://gerrit.opnfv.org/gerrit/#/c/19635/ | -+-----------+-----------+----------------------------------------------+ -| fuel | kvm | vPing_ssh and vIMS excluded (metadata related| -| | | scenarios) | -+-----------+-----------+----------------------------------------------+ -| fuel | multisite | random errors running multisite. A known bug | -| | | in keystone mitaka, due to which memcache | -| | | raises exception and keystone becomes | -| | | unresponsive | -| | | bugs.launchpad.net/keystone/+bug/1600394 | -| | | workaround consists in restarting memcache on| -| | | server | +| fuel | odl | TestServerBasicOps test case skipped | +| | | Tempest ssh client is hanging on opendaylight| +| | | enabled envs (getting deadlock in paramiko | +| | | recv_exit_status method) while trying to | +| | | execute a command on a vm. | +-----------+-----------+----------------------------------------------+ | joid | any | Tempest cases related to object storage | | | | excluded | | | | https://gerrit.opnfv.org/gerrit/#/c/17871/ | +-----------+-----------+----------------------------------------------+ -| joid | domino | Domino tests are skipped in CI. However the | -| | | test case can be run by manually setting | -| | | IS_IPandKEY_CONFIGURED=true after manually | -| | | setting properly the IP addresses of the 3 | -| | | Controller nodes in the configuration file | -| | | /repos/domino/tests/run_multinode.sh | -+-----------+-----------+----------------------------------------------+ Test and installer/scenario dependencies @@ -509,11 +509,9 @@ Open JIRA tickets +------------------+-----------------------------------------------+ | JIRA | Description | +==================+===============================================+ -| `FUNCTEST-446`_ | Cleanup ODL-SFC output in Functest execution | -| | Impact on odl_l2-sfc scenarios | -+------------------+-----------------------------------------------+ -| `FUNCTEST-454`_ | Cleanup failures when using HA networks in | -| | Neutron | +************* TODO ***************************************** +| | | +| | | +------------------+-----------------------------------------------+ Useful links @@ -521,7 +519,7 @@ Useful links - wiki project page: https://wiki.opnfv.org/opnfv_functional_testing - - wiki Functest Colorado page: https://wiki.opnfv.org/display/functest/Functest+Colorado + - wiki Functest Danube page: https://wiki.opnfv.org/display/functest/Functest+Danube - Functest repo: https://git.opnfv.org/cgit/functest @@ -531,107 +529,6 @@ Useful links - Functest IRC chan: #opnfv-functest - - Functest reporting: http://testresults.opnfv.org/reporting - - - Functest test configuration: https://git.opnfv.org/cgit/functest/tree/ci/testcases.yaml - - - Functest Colorado user guide: http://artifacts.opnfv.org/functest/colorado/docs/userguide/index.html - - - Functest installation/configuration guide: http://artifacts.opnfv.org/functest/colorado/docs/configguide/index.html - - - Functest developer guide: http://artifacts.opnfv.org/functest/colorado/docs/devguide/index.html - -.. _`FUNCTEST-446` : https://jira.opnfv.org/browse/FUNCTEST-446 - -.. _`FUNCTEST-454` : https://jira.opnfv.org/browse/FUNCTEST-454 - -.. _`apex-res-6` : http://testresults.opnfv.org/test/api/v1/results?build_tag=bd-push-daily-colorado-6 - -.. _`apex-res-174` : http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-apex-apex-daily-colorado-daily-colorado-174 - -.. _`apex-res-175`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-apex-apex-daily-colorado-daily-colorado-175 - -.. _`apex-res-176`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-apex-apex-daily-colorado-daily-colorado-176 - -.. _`apex-res-217`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-apex-apex-daily-colorado-daily-colorado-217 - -.. _`apex-res-235`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-apex-apex-daily-colorado-daily-colorado-235 - -.. _`apex-res-423`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-apex-apex-daily-colorado-daily-colorado-423 - -.. _`compass-res-55`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-compass-virtual-daily-colorado-55 - -.. _`compass-res-59`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-compass-virtual-daily-colorado-59 - -.. _`compass-res-73`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-compass-virtual-daily-colorado-73 - -.. _`compass-res-76`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-compass-virtual-daily-colorado-76 - -.. _`compass-res-77`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-compass-virtual-daily-colorado-77 - -.. _`compass-res-567`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-compass-virtual-daily-master-567 - -.. _`compass-res-285`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-compass-virtual-daily-master-285 - -.. _`fuel-res-8`: https://build.opnfv.org/ci/view/functest/job/functest-fuel-virtual-suite-colorado/lastSuccessfulBuild/console - -.. _`fuel-res-115`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-baremetal-daily-colorado-115 - -.. _`fuel-res-117`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-baremetal-daily-colorado-117 - -.. _`fuel-res-119`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-baremetal-daily-colorado-119 - -.. _`fuel-res-123`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-baremetal-daily-colorado-123 - -.. _`fuel-res-124`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-baremetal-daily-colorado-124 - -.. _`fuel-res-128`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-baremetal-daily-colorado-128 - -.. _`fuel-res-129`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-baremetal-daily-colorado-129 - -.. _`fuel-res-154`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-154 - -.. _`fuel-res-155`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-155 - -.. _`fuel-res-160`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-160 - -.. _`fuel-res-161`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-161 - -.. _`fuel-res-162`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-162 - -.. _`fuel-res-164`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-164 - -.. _`fuel-res-166`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-166 - -.. _`fuel-res-213`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-213 - -.. _`fuel-res-219`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-219 - -.. _`fuel-res-376`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-376 - -.. _`fuel-res-492`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-fuel-virtual-daily-colorado-492 - -.. _`fuel-arm-res-128`: https://build.opnfv.org/ci/view/armband/job/functest-fuel-armband-baremetal-daily-colorado/128/console - -.. _`fuel-arm-res-122`: https://build.opnfv.org/ci/view/armband/job/functest-fuel-armband-baremetal-daily-colorado/122/console - -.. _`fuel-arm-res-129`: https://build.opnfv.org/ci/view/armband/job/functest-fuel-armband-baremetal-daily-colorado/129/console - -.. _`fuel-arm-res-135`: https://build.opnfv.org/ci/view/armband/job/functest-fuel-armband-baremetal-daily-colorado/135/console - -.. _`joid-res-93`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-joid-baremetal-daily-colorado-93 - -.. _`joid-res-91`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-joid-baremetal-daily-colorado-91 - -.. _`joid-res-99`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-joid-baremetal-daily-colorado-99 - -.. _`joid-res-97`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-joid-baremetal-daily-colorado-97 - -.. _`joid-res-102`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-joid-baremetal-daily-colorado-102 - -.. _`joid-res-103`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-joid-baremetal-daily-colorado-103 - -.. _`joid-res-104`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-joid-baremetal-daily-colorado-104 - -.. _`joid-res-345`: http://testresults.opnfv.org/test/api/v1/results?build_tag=jenkins-functest-joid-baremetal-daily-colorado-345 + - Reporting page: http://testresults.opnfv.org/reporting/danube.html + - Functest test configuration: https://git.opnfv.org/cgit/functest/tree/functest/ci/testcases.yaml diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst index 25ee4771..a1a2aa1a 100644 --- a/docs/release/release-notes/index.rst +++ b/docs/release/release-notes/index.rst @@ -1,3 +1,6 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 + .. _functest-releasenotes: ********************** diff --git a/docs/testing/developer/devguide/index.rst b/docs/testing/developer/devguide/index.rst index ce5dc77b..d5295903 100644 --- a/docs/testing/developer/devguide/index.rst +++ b/docs/testing/developer/devguide/index.rst @@ -1,3 +1,6 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 + ****************************** OPNFV FUNCTEST developer guide ****************************** @@ -62,18 +65,18 @@ Functest internal test cases ============================ The internal test cases in Danube are: - * healthcheck - * connection_check + * api_check + * cloudify_ims + * connection_check * vping_ssh * vping_userdata * odl - * snaps_smoke - * tempest_smoke_serial + * rally_full * rally_sanity + * snaps_health_check * tempest_full_parallel - * rally_full - * cloudify_ims + * tempest_smoke_serial By internal, we mean that this particular test cases have been developped and/or integrated by functest contributors and the associated @@ -86,7 +89,7 @@ The main internal test cases are in the opnfv_tests subfolder of the repository, the internal test cases are: * sdn: odl, onos - * openstack: healthcheck, vping_ssh, vping_userdata, tempest_*, rally_*, connection_check, api_check, snaps_smoke + * openstack: api_check, connection_check, snaps_health_check, vping_ssh, vping_userdata, tempest_*, rally_*, snaps_smoke * vnf: cloudify_ims If you want to create a new test case you will have to create a new @@ -99,19 +102,23 @@ especially the feature projects. The external test cases are: - * promise - * doctor - * onos + * barometer * bgpvpn - * copper - * security_scan - * sfc-odl - * sfc-onos - * parser + * doctor * domino + * odl-netvirt + * onos + * fds * multisite - * opera_ims + * netready * orchestra_ims + * parser + * promise + * refstack_defcore + * security_scan + * snaps_smoke + * sfc-odl + * vyos_vrouter The code to run these test cases may be directly in the repository of @@ -155,7 +162,7 @@ introduced in Danube: The goal is to unify the way to run test from Functest. -feature_base and vnf_base inherit from testcase_base. +feature_base and vnf_base inherit from testcase_base:: +-----------------------------------------+ | | @@ -174,9 +181,9 @@ feature_base and vnf_base inherit from testcase_base. | feature_base | | vnf_base | | | | | | - prepare() | | - prepare() | - | - post() | | - deploy_orchestrator() | - | - parse_results() | | - deploy_vnf() | - | | | - test_vnf() | + | - execute() | | - deploy_orchestrator() | + | - post() | | - deploy_vnf() | + | - parse_results() | | - test_vnf() | | | | - clean() | | | | - execute() | | | | | @@ -270,232 +277,13 @@ the API will return an error message. An additional method dashboard has been added to post-process the raw results in release Brahmaputra (deprecated in Colorado). -The data model is very basic, 4 objects are created: +The data model is very basic, 5 objects are created: * Pods * Projects * Testcases * Results - -Pods:: - - { - "id": , - "details": , - "creation_date": "YYYY-MM-DD HH:MM:SS", - "name": , - "mode": , - "role": - }, - -Projects:: - - { - "id": , - "name": , - "creation_date": "YYYY-MM-DD HH:MM:SS", - "description": - }, - -Testcases:: - - { - "id": , - "name":, - "project_name":, - "creation_date": "YYYY-MM-DD HH:MM:SS", - "description": , - "url": - }, - -Results:: - - { - "_id": , - "case_name": , - "project_name": , - "pod_name": , - "installer": , - "version": , - "start_date": "YYYY-MM-DD HH:MM:SS", - "stop_date": "YYYY-MM-DD HH:MM:SS", - "build_tag": , - "scenario": , - "criteria": , - "trust_indicator": { - "current": 0, - "histories": [] - } - } - -The API can described as follows. For detailed information, please go to - - http://testresults.opnfv.org/test/swagger/spec.html - - Authentication: opnfv/api@opnfv - -Version: - - +--------+--------------------------+-----------------------------------------+ - | Method | Path | Description | - +========+==========================+=========================================+ - | GET | /versions | Get all supported API versions | - +--------+--------------------------+-----------------------------------------+ - - -Pods: - - +--------+----------------------------+-----------------------------------------+ - | Method | Path | Description | - +========+============================+=========================================+ - | GET | /api/v1/pods | Get the list of declared Labs (PODs) | - +--------+----------------------------+-----------------------------------------+ - | POST | /api/v1/pods | Declare a new POD | - | | | Content-Type: application/json | - | | | { | - | | | "name": "pod_foo", | - | | | "mode": "metal", | - | | | "role": "ci-pod", | - | | | "details": "it is a ci pod" | - | | | } | - +--------+----------------------------+-----------------------------------------+ - | GET | /api/v1/pods/{pod_name} | Get a declared POD | - +--------+----------------------------+-----------------------------------------+ - -Projects: - - +--------+----------------------------+-----------------------------------------+ - | Method | Path | Description | - +========+============================+=========================================+ - | GET | /api/v1/projects | Get the list of declared projects | - +--------+----------------------------+-----------------------------------------+ - | POST | /api/v1/projects | Declare a new test project | - | | | Content-Type: application/json | - | | | { | - | | | "name": "project_foo", | - | | | "description": "whatever you want" | - | | | } | - +--------+----------------------------+-----------------------------------------+ - | DELETE | /api/v1/projects/{project} | Delete a test project | - +--------+----------------------------+-----------------------------------------+ - | GET | /api/v1/projects/{project} | Get details on a {project} | - | | | | - +--------+----------------------------+-----------------------------------------+ - | PUT | /api/v1/projects/{project} | Update a test project | - | | | | - | | | Content-Type: application/json | - | | | { | - | | | | - | | | } | - +--------+----------------------------+-----------------------------------------+ - - -Testcases: - - +--------+----------------------------+-----------------------------------------+ - | Method | Path | Description | - +========+============================+=========================================+ - | GET | /api/v1/projects/{project}/| Get the list of testcases of {project} | - | | cases | | - +--------+----------------------------+-----------------------------------------+ - | POST | /api/v1/projects/{project}/| Add a new test case to {project} | - | | cases | Content-Type: application/json | - | | | { | - | | | "name": "case_foo", | - | | | "description": "whatever you want" | - | | | "url": "whatever you want" | - | | | } | - +--------+----------------------------+-----------------------------------------+ - | DELETE | /api/v1/projects/{project}/| Delete a test case | - | | cases/{case} | | - +--------+----------------------------+-----------------------------------------+ - | GET | /api/v1/projects/{project}/| Get a declared test case | - | | cases/{case} | | - +--------+----------------------------+-----------------------------------------+ - | PUT | /api/v1/projects/{project}?| Modify a test case of {project} | - | | cases/{case} | | - | | | Content-Type: application/json | - | | | { | - | | | | - | | | } | - +--------+----------------------------+-----------------------------------------+ - -Results: - - +--------+----------------------------+------------------------------------------+ - | Method | Path | Description | - +========+============================+==========================================+ - | GET | /api/v1/results | Get all the test results | - +--------+----------------------------+------------------------------------------+ - | POST | /api/v1/results | Add a new test results | - | | | Content-Type: application/json | - | | | { | - | | | "project_name": "project_foo", | - | | | "scenario": "odl-l2", | - | | | "stop_date": "2016-05-28T14:42:58.384Z", | - | | | "trust_indicator": 0.5, | - | | | "case_name": "vPing", | - | | | "build_tag": "", | - | | | "version": "Colorado", | - | | | "pod_name": "pod_foo", | - | | | "criteria": "PASS", | - | | | "installer": "fuel", | - | | | "start_date": "2016-05-28T14:41:58.384Z",| - | | | "details": | - | | | } | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of {case} | - | | case={case} | | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of build_tag | - | | build_tag={tag} | {tag}. | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get last {N} records of test results | - | | last={N} | | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of scenario | - | | scenario={scenario} | {scenario}. | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of trust_indicator | - | | trust_indicator={ind} | {ind}. | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of last days | - | | period={period} | {period}. | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of {project} | - | | project={project} | | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of version | - | | version={version} | {version}. | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of criteria | - | | criteria={criteria} | {criteria}. | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | get the results on pod {pod} | - | | pod={pod} | | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the test results of installer {inst} | - | | installer={inst} | | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results? | Get the results according to combined | - | | | query conditions supported above | - +--------+----------------------------+------------------------------------------+ - | GET | /api/v1/results/{result_id}| Get the test result by result_id | - +--------+----------------------------+------------------------------------------+ - -Scenarios: - - +--------+----------------------------+-----------------------------------------+ - | Method | Path | Description | - +========+============================+=========================================+ - | GET | /api/v1/scenarios | Get the list of declared scenarios | - +--------+----------------------------+-----------------------------------------+ - | POST | /api/v1/scenario | Declare a new scenario | - +--------+----------------------------+-----------------------------------------+ - | GET | /api/v1/scenario? | Get a declared scenario | - | | | | - +--------+----------------------------+-----------------------------------------+ - + * Scenarios The code of the API is hosted in the releng repository `[6]`_. The static documentation of the API can be found at `[17]`_. @@ -574,6 +362,7 @@ Please note that currently token authorization is implemented but is not yet ena +---------------------+---------+---------+---------+---------+ | copper | X | | | X | +---------------------+---------+---------+---------+---------+ + src: colorado (see release note for the last matrix version) All the testcases listed in the table are runnable on os-odl_l2-nofeature scenarios. @@ -736,8 +525,7 @@ Regex are standard regex. You can have a look at `[11]`_ You can also easily test your regex via an online regex checker such as `[12]`_. Put your scenario in the TEST STRING window (e.g. os-odl_l3-ovs-ha), put -your regex in the REGULAR EXPRESSION window, then you can test your rule -. +your regex in the REGULAR EXPRESSION window, then you can test your rule. How to know which test I can run? @@ -941,6 +729,233 @@ You can also reuse a python function defined in functest_utils.py:: return False +Where can I find the documentation on the test API? +=================================================== + +http://artifacts.opnfv.org/releng/docs/testapi.html + + +How to exclude Tempest case from default Tempest smoke suite? +============================================================= + +Tempest default smoke suite deals with 165 test cases. +Since Colorado the success criteria is 100%, i.e. if 1 test is failed the +success criteria is not matched for the scenario. + +It is necessary to exclude some test cases that are expected to fail due to +known upstream bugs (see release notes). + +A file has been created for such operation: https://git.opnfv.org/cgit/functest/tree/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt. + +It can be described as follows:: + + - + scenarios: + - os-odl_l2-bgpvpn-ha + - os-odl_l2-bgpvpn-noha + installers: + - fuel + - apex + tests: + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard + - tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops + - tempest.scenario.test_server_basic_ops.TestServerBasicOps.test_server_basic_ops + - tempest.scenario.test_volume_boot_pattern.TestVolumeBootPattern.test_volume_boot_pattern + - tempest.scenario.test_volume_boot_pattern.TestVolumeBootPatternV2.test_volume_boot_pattern + +Please note that each exclusion must be justified. the goal is not to exclude +test cases because they do not pass. Several scenarios reached the 100% criteria. +So it is expected in the patch submited to exclude the cases to indicate the +reasons of the exclusion. + + +How do I know the Functest status of a scenario? +================================================ + +A Functest automatic reporting page is generated daily. +This page is dynamically created through a cron job and is based on the results +stored in the Test DB. +You can access this reporting page: http://testresults.opnfv.org/reporting + +See https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617 for details. + + +I have tests, to which category should I declare them? +====================================================== + +CATEGORIES/TIERS description: + ++----------------+-------------------------------------------------------------+ +| healthcheck | Simple OpenStack healtcheck tests case that validates the | +| | basic operations in OpenStack | ++----------------+-------------------------------------------------------------+ +| Smoke | Set of smoke test cases/suites to validate the most common | +| | OpenStack and SDN Controller operations | ++----------------+-------------------------------------------------------------+ +| Features | Test cases that validate a specific feature on top of OPNFV.| +| | Those come from Feature projects and need a bit of support | +| | for integration | ++----------------+-------------------------------------------------------------+ +| Components | Advanced Openstack tests: Full Tempest, Full Rally | ++----------------+-------------------------------------------------------------+ +| Performance | Out of Functest Scope | ++----------------+-------------------------------------------------------------+ +| VNF | Test cases related to deploy an open source VNF including | +| | an orchestrator | ++----------------+-------------------------------------------------------------+ + +The main ambiguity could be between features and VNF. +In fact sometimes you have to spawn VMs to demonstrate the capabilities of the +feature you introduced. +We recommend to declare your test in the feature category. + +VNF category is really dedicated to test including: + + * creation of resources + * deployement of an orchestrator/VNFM + * deployment of the VNF + * test of the VNFM + * free resources + +The goal is not to study a particular feature on the infrastructure but to have +a whole end to end test of a VNF automatically deployed in CI. +Moreover VNF are run in weekly jobs (one a week), feature tests are in daily +jobs and use to get a scenario score. + +Where are the logs? +=================== + +Functest deals with internal and external testcases. Each testcase can generate +logs. + +Since Colorado we introduce the possibility to push the logs to the artifact. +A new script (https://git.opnfv.org/releng/tree/utils/push-test-logs.sh) has +been created for CI. + +When called, and assuming that the POD is authorized to push the logs to +artifacts, the script will push all the results or logs locally stored under +/home/opnfv/functest/results/. + +If the POD is not connected to CI, logs are not pushed. +But in both cases, logs are stored in /home/opnfv/functest/results in the +container. +Projects are encouraged to push their logs here. + +Since Colorado it is also easy for feature project to integrate this feature by +adding the log file as output_file parameter when calling execute_command from +functest_utils library + + ret_val = functest_utils.execute_command(cmd, output_file=log_file) + + +How does Functest deal with VNF onboarding? +=========================================== + +VNF onboarding has been introduced in Brahmaputra through the automation of a +clearwater vIMS deployed thanks to cloudify orchestrator. + +This automation has been described at OpenStack summit Barcelona: +https://youtu.be/Jr4nG74glmY + +The goal of Functest consists in testing OPNFV from a functional perspective: +the NFVI and/or the features developed in OPNFV. Feature test suites are +provided by the feature project. Functest just simplifies the integration of +the suite into the CI and gives a consolidated view of the tests per scenario. + +Functest does not develop VNFs. + +Functest does not test any MANO stack. + +OPNFV projects dealing with VNF onboarding +------------------------------------------ + +Testing VNF is not the main goal however it gives interesting and realistic +feedback on OPNFV as a Telco cloud. + +Onboarding VNF also allows to test a full stack: orchestrator + VNF. + +Functest is VNF and MANO stack agnostic. + +An internship has been initiated to reference the Open Source VNF: Intern +Project Open Source VNF catalog + +New projects dealing with orchestrators or VNFs are candidate for Danube. + +The 2 projects dealing with orchestration are: + + * orchestra (Openbaton) + * opera (Open-O) + +The Models project address various goals for promoting availability and +convergence of information and/or data models related to NFV service/VNF +management, as being defined in standards (SDOs) and as developed in open +source projects. + +Functest VNF onboarding +----------------------- + +In order to simplify VNF onboarding a new abstraction class has been developed +in Functest. + +This class is based on vnf_base and can be described as follow: + + +------------+ +--------------+ + | test_base |------------>| vnf_base | + +------------+ +--------------+ + |_ prepare + |_ deploy_orchestrator (optional) + |_ deploy_vnf + |_ test_vnf + |_ clean + + +Several methods are declared in vnf_base: + + * prepare + * deploy_orchestrator + * deploy_vnf + * test_vnf + * clean + +deploy_vnf and test_vnf are mandatory. + +prepare will create a user and a project. + +How to declare your orchestrator/VNF? +------------------------------------- +1) test declaration + +You must declare your testcase in the file /functest/ci/testcases.yaml + +2) configuration + +You can precise some configuration parameters in config_functest.yaml + +3) implement your test + +Create your own VnfOnboarding file + +you must create your entry point through a python clase as referenced in the +configuration file + +e.g. aaa => creation of the file /functest/opnfv_tests/vnf/aaa/aaa.py + +the class shall inherit vnf_base. +You must implement the methods deploy_vnf() and test_vnf() and may implement +deploy_orchestrator() + +you can call the code from your repo (but need to add the repo in Functest if +it is not the case) + +4) success criteria + +So far we considered the test as PASS if vnf_deploy and test_vnf is PASS +(see example in aaa). + ========== References ========== @@ -989,4 +1004,4 @@ _`OpenRC`: http://docs.openstack.org/user-guide/common/cli_set_environment_varia _`Rally installation procedure`: https://rally.readthedocs.org/en/latest/tutorial/step_0_installation.html -_`config_functest.yaml` : https://git.opnfv.org/cgit/functest/tree/testcases/config_functest.yaml +_`config_functest.yaml` : https://git.opnfv.org/cgit/functest/tree/functest/ci/config_functest.yaml diff --git a/docs/testing/user/configguide/configguide.rst b/docs/testing/user/configguide/configguide.rst index 56a414d3..494ad7e6 100644 --- a/docs/testing/user/configguide/configguide.rst +++ b/docs/testing/user/configguide/configguide.rst @@ -1,5 +1,5 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 +.. SPDX-License-Identifier: CC-BY-4.0 Pulling the Docker image @@ -16,8 +16,8 @@ created automatically by the CI mechanisms, and you must ensure you pull an image with the **correct tag** to match the OPNFV software release installed in your environment. All available tagged images can be seen from location [FunctestDockerTags_]. For example, when running -on the first official release of the OPNFV Colorado system platform, -tag "colorado.1.0" is needed. Pulling other tags might cause some +on the first official release of the OPNFV Danube system platform, +tag "danube.1.0" is needed. Pulling other tags might cause some problems while running the tests. Docker images pulled without a tag specifier bear the implicitly assigned label "latest". If you need to specifically pull the latest @@ -201,7 +201,7 @@ when performing manual test scenarios:: tests are activated under Jenkins CI control. It enables the correlation of test results, which - are independently pushed to the results datbase + are independently pushed to the results database from different Jenkins jobs. DO NOT USE THIS OPTION IN MANUAL TEST SCENARIOS. = "true" or "false" @@ -444,8 +444,7 @@ We may distinguish several directories, the first level has 4 directories: * **docker**: This directory includes the needed files and tools to build the Funtest Docker image. * **docs**: This directory includes documentation: Release Notes, - User Guide, Configuration Guide and Developer Guide. Test results - are also located in a sub--directory called 'results'. + User Guide, Configuration Guide and Developer Guide. * **functest**: This directory contains all the code needed to run functest internal cases and OPNFV onboarded feature or VNF test cases. @@ -592,7 +591,7 @@ prompt:: - here = "false" NOTE: In Jenkins CI runs, an additional item "BUILD TAG" - would also be listed. The valaue is set by Jenkins CI. + would also be listed. The value is set by Jenkins CI. Finally, the **functest** CLI has a **--help** options: diff --git a/docs/testing/user/configguide/index.rst b/docs/testing/user/configguide/index.rst index f12739e3..737f0ba7 100644 --- a/docs/testing/user/configguide/index.rst +++ b/docs/testing/user/configguide/index.rst @@ -27,8 +27,8 @@ Version history Introduction ============ This document describes how to install and configure Functest in OPNFV. -The Functest CLI is utilized during the Functest environment preparation -step. The given example commands should work in both virtual and bare +The Functest CLI is used during the Functest environment preparation +phase. The given example commands should work in both virtual and bare metal cases alike. High level architecture @@ -52,21 +52,12 @@ follows:: | | | - Rally | | | | | | | | | | - Robot | | | | | | | | | | - TestON | | | | | | | + | | | - RefStack | | | | | | | | | | | |-------------------------+ | | | | | Testcases | | | | | | | | | | - VIM | | | | | | | - | | | -- healthcheck | | | | | | | - | | | -- vPing_ssh | | | | | | | - | | | -- vPing_userdata | | | | | | | - | | | -- SNAPS_cases | | | | | | | - | | | -- Tempest_smoke | | | | | | | - | | | -- Rally_sanity | | | | | | | - | | | -- Tempest_full | | | | | | | - | | | -- Rally_full | | | | | | | | | | | | | | | | | | | | - SDN Controller | | | | | | | - | | | -- odl | | | | | | | - | | | -- onos | | | | | | | | | | | | | | | | | | | | - Features | | | | | | | | | | | | | | | | | @@ -109,16 +100,16 @@ on any platform on any Operating System. The automated mechanisms inside the Functest Docker container will: * Retrieve OpenStack credentials - * Prepare the environment according to the SUT + * Prepare the environment according to the System Under Test (SUT) * Perform the appropriate functional tests * Push the test results into the OPNFV test result database This Docker image can be integrated into CI or deployed independently. -Please note that the Functest Docker container has been designed for -OPNFV, however, it would be possible to adapt it to any VIM + controller -environment, since most of the test cases are integrated from upstream -communities. +Please note that the Functest Docker container has been designed for OPNFV, +however, it would be possible to adapt it to any OpenStack based VIM + +controller environment, since most of the test cases are integrated from +upstream communities. The functional test cases are described in the Functest User Guide `[2]`_ @@ -127,8 +118,7 @@ Prerequisites ============= The OPNFV deployment is out of the scope of this document but it can be found in http://docs.opnfv.org. -The OPNFV platform is considered as the System Under Test (SUT) in this -document. +The OPNFV platform is considered as the SUT in this document. Several prerequisites are needed for Functest: @@ -149,7 +139,7 @@ requirements. Normally it is the same server from where the OPNFV deployment has been triggered previously. NOTE: If your Jumphost is operating behind a company http proxy and/or -Firewall, please consult first the section `Proxy Support`_, towards +firewall, please consult first the section `Proxy Support`_, towards the end of this document. The section details some tips/tricks which *may* be of help in a proxified environment. @@ -158,7 +148,7 @@ Docker installation Docker installation and configuration is only needed to be done once through the life cycle of Jumphost. -If your Jumphost is based on Ubuntu, RHEL or CentOS linux, please +If your Jumphost is based on Ubuntu, SUSE, RHEL or CentOS linux, please consult the references below for more detailed instructions. The commands below are offered as a short reference. @@ -182,7 +172,7 @@ Add your user to docker group to be able to run commands without sudo:: sudo usermod -aG docker -A reconnect is needed. There are 2 ways for this: +A reconnection is needed. There are 2 ways for this: #. Re-login to your account #. su - @@ -190,10 +180,12 @@ References - Installing Docker Engine on different Linux Operating Systems: * Ubuntu_ * RHEL_ * CentOS_ + * SUSE_ .. _Ubuntu: https://docs.docker.com/engine/installation/linux/ubuntulinux/ .. _RHEL: https://docs.docker.com/engine/installation/linux/rhel/ .. _CentOS: https://docs.docker.com/engine/installation/linux/centos/ +.. _SUSE: https://docs.docker.com/engine/installation/linux/suse/ Public/External network on SUT ------------------------------ @@ -286,11 +278,11 @@ References .. _`[4]`: http://artifacts.opnfv.org/functest/danube/docs/configguide/index.html -OPNFV main site: opnfvmain_. +`OPNFV main site`_ -OPNFV functional test page: opnfvfunctest_. +`Functest page`_ IRC support channel: #opnfv-functest -.. _opnfvmain: http://www.opnfv.org -.. _opnfvfunctest: https://wiki.opnfv.org/functest +.. _`OPNFV main site`: http://www.opnfv.org +.. _`Functest page`: https://wiki.opnfv.org/functest diff --git a/docs/testing/user/userguide/index.rst b/docs/testing/user/userguide/index.rst index 9436de2b..0459ce5f 100644 --- a/docs/testing/user/userguide/index.rst +++ b/docs/testing/user/userguide/index.rst @@ -1,5 +1,5 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 +.. SPDX-License-Identifier: CC-BY-4.0 ========================= OPNFV FUNCTEST user guide @@ -28,7 +28,7 @@ Introduction The goal of this document is to describe the OPNFV Functest test cases and to provide a procedure to execute them. In the OPNFV Danube system release, -a Functest CLI utility is introduced for easier execution of test procedures. +a Functest CLI utility is introduced for an easier execution of test procedures. **IMPORTANT**: It is assumed here that the Functest Docker container is already properly deployed and that all instructions described in this guide are to be @@ -41,21 +41,37 @@ The different test cases are described in the remaining sections of this documen VIM (Virtualized Infrastructure Manager) ---------------------------------------- -Healthcheck -^^^^^^^^^^^ -In Colorado release a new Tier 'healthcheck' with one testcase 'healthcheck' -was introduced. The healthcheck testcase verifies that some basic IP connectivity -and essential operations of OpenStack functionality over the command line are -working correctly. +Healthcheck tests +^^^^^^^^^^^^^^^^^ +In Danube, healthcheck tests have been refactored and rely on SNAPS, a +OPNFV middleware project. + +SNAPS stands for "SDN/NFV Application development Platform and Stack". +SNAPS is an object-oriented OpenStack library packaged with tests that exercise +OpenStack. +More information on SNAPS can be found in  `[13]`_ + +Three tests are declared as healthcheck tests and can be used for gating by the +installer, they cover functionally the tests previously done by healthcheck +test case. + +The tests are: -In particular, the following verifications are performed: - * DHCP agent functionality for IP address allocation - * Openstack Authentication management functionality via the Keystone API - * OpenStack Image management functionality via the Glance API - * OpenStack Block Storage management functionality via the Cinder API - * OpenStack Networking management functionality via the Neutron API - * Openstack Compute management functionality via the NOVA API + * *connection_check* + * *api_check* + * *snaps_health_check* + +Connection_check consists in 9 test cases (test duration < 5s) checking the +connectivity with Glance, Keystone, Neutron, Nova and the external network. + +Api_check verifies the retrieval of OpenStack clients: Keystone, Glance, +Neutron and Nova and may perform some simple queries. When the config value of +snaps.use_keystone is True, functest must have access to the cloud's private +network. This suite consists in 49 tests (test duration < 2 minutes). + +snaps_health_check creates instance, allocate floating IP, connect to the VM. +This test replaced the previous Colorado healthcheck test. Self-obviously, successful completion of the 'healthcheck' testcase is a necessary pre-requisite for the execution of all other test Tiers. @@ -229,30 +245,9 @@ The Rally testcases are distributed accross two Tiers: NOTE: Test case 'rally_sanity' executes a limited number of Rally smoke test cases. Test case 'rally_full' executes the full defined set of Rally tests. -SNAPS ------ - -SNAPS stands for "SNA/NFV Application development Platform and Stack". -This project seeks to develop baseline OpenStack NFV installations. It has been -developed by Steven Pisarski and provided an object oriented library to perform -functional and performance tests. It has been declined in several test suites in -Functest, 2 are part of healthcheck tier, one belongs to smoke tier. - -connection check -^^^^^^^^^^^^^^^^ -Connection_check consists in 9 test cases (test duration < 5s) checking the -connectivity with Glance, Keystone, Neutron, Nova and the external network. - -api_check -^^^^^^^^^ -This test case verifies the retrieval of OpenStack clients: Keystone, Glance, -Neutron and Nova and may perform some simple queries. When the config value of -snaps.use_keystone is True, functest must have access to the cloud's private -network. -This suite consists in 49 tests (test duration< 2 minutes) - snaps_smoke -^^^^^^^^^^^ +------------ + This test case contains tests that setup and destroy environments with VMs with and without Floating IPs with a newly created user and project. Set the config value snaps.use_floating_ips (True|False) to toggle this functionality. When @@ -260,16 +255,15 @@ the config value of snaps.use_keystone is True, functest must have access the cloud's private network. This suite consists in 38 tests (test duration < 10 minutes) -More information on SNAPS can be found in  `[13]`_ - SDN Controllers --------------- -There are currently 2 available controllers: +There are currently 3 available controllers: * OpenDaylight (ODL) * ONOS + * OpenContrail (OCL) OpenDaylight ^^^^^^^^^^^^ @@ -366,60 +360,30 @@ The test cases are described as follows: Features -------- -Please refer to the dedicated feature user guides for details: - - * bgpvpn: http://artifacts.opnfv.org/sdnvpn/danube/docs/userguide/index.html - * copper: http://artifacts.opnfv.org/copper/danube/docs/userguide/index.html - * doctor: http://artifacts.opnfv.org/doctor/danube/userguide/index.html - * domino: http://artifacts.opnfv.org/domino/docs/userguide-single/index.html - * multisites: http://artifacts.opnfv.org/multisite/docs/userguide/index.html - * onos-sfc: http://artifacts.opnfv.org/onosfw/danube/userguide/index.html - * odl-sfc: http://artifacts.opnfv.org/sfc/danube/userguide/index.html - * promise: http://artifacts.opnfv.org/danube/colorado/docs/userguide/index.html - * security_scan: http://artifacts.opnfv.org/security_scan/colorado/docs/userguide/index.html - * TODO +In Danube, functest supports the integration of: -security_scan -^^^^^^^^^^^^^ + * barometer + * bgpvpn + * doctor + * domino + * fds + * multisite + * netready + * odl-sfc + * promise + * security_scan -Security Scanning, is a project to insure security compliance and vulnerability -checks, as part of an automated CI / CD platform delivery process. - -The project makes use of the existing SCAP format `[6]`_ to perform deep -scanning of NFVI nodes, to insure they are hardened and free of known CVE -reported vulnerabilities. - -The SCAP content itself, is then consumed and run using an upstream opensource tool -known as OpenSCAP `[7]`_. - -The OPNFV Security Group have developed the code that will called by the OPNFV Jenkins -build platform, to perform a complete scan. Resulting reports are then copied to the -OPNFV functest dashboard. - -The current work flow is as follows: - - * Jenkins Build Initiated - * security_scan.py script is called, and a config file is passed to the script as - an argument. - * The IP addresses of each NFVi node (compute / control) are gathered - * A scan profile is matched to the node type. - * The OpenSCAP application is remotely installed onto each target node gathered - on step 3, using upstream packaging (rpm and .deb). - * A scan is made against each node gathered within step 3. - * HTML Reports are downloaded for rendering on a dashboard. - * If the config file value 'clean' is set to 'True' then the application installed in - step 5 is removed, and all reports created at step 6 are deleted. - -Security scan is supported by Apex, TODO.... +Note: copper is not supported in Danube. +Please refer to the dedicated feature user guides for details. VNF --- -vIMS -^^^^ +cloudify_ims +^^^^^^^^^^^^ The IP Multimedia Subsystem or IP Multimedia Core Network Subsystem (IMS) is an architectural framework for delivering IP multimedia services. @@ -437,10 +401,14 @@ The goal of this test suite consists of: The Clearwater architecture is described as follows: -.. figure:: ../images/clearwater-architecture.png +.. figure:: ../../../images/clearwater-architecture.png :align: center :alt: vIMS architecture +orchestra_ims +^^^^^^^^^^^^^ +Orchestra test case deals with the deployment of OpenIMS with OpenBaton +orchestrator. parser ^^^^^^ @@ -448,6 +416,28 @@ parser See parser user guide for details: `[12]`_ +vyos-vrouter +^^^^^^^^^^^^ + +This test case deals with the deployment and the test of vyos vrouter with +Cloudify orchestrator. The test case can do testing for interchangeability of +BGP Protocol using vyos. + +The Workflow is as follows: + * Deploy + Deploy VNF Testing topology by Cloudify using blueprint. + * Configuration + Setting configuration to Target VNF and reference VNF using ssh + * Run + Execution of test command for test item written YAML format file. + Check VNF status and behavior. + * Reporting + Output of report based on result using JSON format. + +The vyos-vrouter architecture is described in `[14]`_ + + + .. include:: ./runfunctest.rst @@ -479,20 +469,27 @@ at the end of the job and can be described as follow:: +=========================+===============+============+===============+===========================================================================+ | TEST CASE | TIER | DURATION | RESULT | URL | +=========================+===============+============+===============+===========================================================================+ - | healthcheck | healthcheck | 03:07 | PASS | | + | connection_check | healthcheck | 00:02 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb62b34079ac000a42e3fe | + +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ + | api_check | healthcheck | 01:15 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb62fe4079ac000a42e3ff | + +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ + | snaps_health_check | healthcheck | 00:50 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb63314079ac000a42e400 | +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ - | vping_ssh | smoke | 00:56 | PASS | http://testresults.opnfv.org/test/api/v1/results/57ac13d79377c54b278bd4c1 | + | vping_ssh | smoke | 01:10 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb63654079ac000a42e401 | +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ - | vping_userdata | smoke | 00:41 | PASS | http://testresults.opnfv.org/test/api/v1/results/57ac14019377c54b278bd4c2 | + | vping_userdata | smoke | 00:59 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb63a14079ac000a42e403 | +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ - | tempest_smoke_serial | smoke | 16:05 | FAIL | http://testresults.opnfv.org/test/api/v1/results/57ac17ca9377c54b278bd4c3 | + | tempest_smoke_serial | smoke | 12:57 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb66bd4079ac000a42e408 | +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ - | rally_sanity | smoke | 12:19 | PASS | http://testresults.opnfv.org/test/api/v1/results/57ac1aad9377c54b278bd4cd | + | rally_sanity | smoke | 10:22 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb692b4079ac000a42e40a | +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ - | odl | sdn_suites | 00:24 | PASS | http://testresults.opnfv.org/test/api/v1/results/57ac1ad09377c54b278bd4ce | + | refstack_defcore | smoke | 12:28 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb6c184079ac000a42e40c | +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ - | promise | features | 00:41 | PASS | http://testresults.opnfv.org/test/api/v1/results/57ac1ae59377c54b278bd4cf | + | snaps_smoke | smoke | 12:04 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb6eec4079ac000a42e40e | +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ + | domino | features | 00:29 | PASS | http://testresults.opnfv.org/test/api/v1/results/58cb6f044079ac000a42e40f | + +-------------------------+---------------+------------+---------------+---------------------------------------------------------------------------+ + Results are automatically pushed to the test results database, some additional result files are pushed to OPNFV artifact web sites. @@ -504,17 +501,10 @@ portal is also automatically updated. This portal provides information on: * Tempest: Tempest test case including reported errors per scenario and installer * vIMS: vIMS details per scenario and installer -.. figure:: ../images/functest-reporting-status.png +.. figure:: ../../../images/functest-reporting-status.png :align: center :alt: Functest reporting portal Fuel status page - -Test Dashboard -============== - -Based on results collected in CI, a test dashboard is dynamically generated. - - .. include:: ./troubleshooting.rst @@ -528,21 +518,20 @@ References .. _`[5]`: https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater/blob/master/openstack-blueprint.yaml .. _`[6]`: https://scap.nist.gov/ .. _`[7]`: https://github.com/OpenSCAP/openscap -.. _`[9]`: https://git.opnfv.org/cgit/functest/tree/testcases/VIM/OpenStack/CI/libraries/os_defaults.yaml .. _`[11]`: http://robotframework.org/ .. _`[12]`: http://artifacts.opnfv.org/parser/colorado/docs/userguide/index.html -.. _`[13]`: TODO URL doc SNAPS +.. _`[13]`: https://wiki.opnfv.org/display/PROJ/SNAPS-OO +.. _`[14]`: https://github.com/oolorg/opnfv-functest-vrouter -OPNFV main site: opnfvmain_. +`OPNFV main site`_ -OPNFV functional test page: opnfvfunctest_. +`Functest page`_ IRC support chan: #opnfv-testperf -.. _opnfvmain: http://www.opnfv.org -.. _opnfvfunctest: https://wiki.opnfv.org/opnfv_functional_testing +.. _`OPNFV main site`: http://www.opnfv.org +.. _`Functest page`: https://wiki.opnfv.org/functest .. _`OpenRC`: http://docs.openstack.org/user-guide/common/cli_set_environment_variables_using_openstack_rc.html .. _`Rally installation procedure`: https://rally.readthedocs.org/en/latest/tutorial/step_0_installation.html -.. _`config_test.py` : https://git.opnfv.org/cgit/functest/tree/testcases/config_functest.py -.. _`config_functest.yaml` : https://git.opnfv.org/cgit/functest/tree/testcases/config_functest.yaml -.. _`Functest reporting`: http://testresults.opnfv.org/reporting/functest/release/colorado/index-status-fuel.html +.. _`config_functest.yaml` : https://git.opnfv.org/cgit/functest/tree/functest/ci/config_functest.yaml +.. _`Functest reporting`: http://testresults.opnfv.org/reporting/functest/release/danube/index-status-fuel.html diff --git a/docs/testing/user/userguide/introduction.rst b/docs/testing/user/userguide/introduction.rst index 4dfe7937..d1b7d23e 100644 --- a/docs/testing/user/userguide/introduction.rst +++ b/docs/testing/user/userguide/introduction.rst @@ -22,15 +22,16 @@ validate the scenario for the release. +-------------+---------------+----------------+----------------------------------+ | Domain | Tier | Test case | Comments | +=============+===============+================+==================================+ -| VIM | healthcheck | healthcheck | Verify basic operation in VIM | -| | +----------------+----------------------------------+ -| | | connection | Check OpenStack connectivity | +| VIM | healthcheck | connection | Check OpenStack connectivity | | | | _check | through SNAPS framework | | | +----------------+----------------------------------+ | | | api_check | Check OpenStack API through | | | | | SNAPS framework | +| | +----------------+----------------------------------+ +| | | snaps_health | basic instance creation, check | +| | | \_check | DHCP | | +---------------+----------------+----------------------------------+ -| | smoke | vPing_SSH | NFV "Hello World" using an SSH | +| | smoke | vping_ssh | NFV "Hello World" using an SSH | | | | | connection to a destination VM | | | | | over a created floating IP | | | | | address on the SUT Public / | @@ -42,7 +43,7 @@ validate the scenario for the release. | | | | VM on a specified IP address over| | | | | the SUT Private Tenant network. | | | +----------------+----------------------------------+ -| | | vPing_userdata | Uses Ping with given userdata | +| | | vping_userdata | Uses Ping with given userdata | | | | | to test intra-VM connectivity | | | | | over the SUT Private Tenant | | | | | network. The correct operation | @@ -60,6 +61,9 @@ validate the scenario for the release. | | +----------------+----------------------------------+ | | | snaps_smoke | Run a subset of the OpenStack | | | | | Rally Test Suite in smoke mode | +| | +----------------+----------------------------------+ +| | | refstack | Reference RefStack suite | +| | | \_defcore | tempest selection for NFV | | +---------------+----------------+----------------------------------+ | | components | tempest_full | Generate and run a full set of | | | | \_parallel | the OpenStack Tempest Test Suite.| @@ -71,6 +75,9 @@ validate the scenario for the release. | | | rally_full | Run the OpenStack testing tool | | | | | benchmarking OpenStack modules | | | | | See the Rally documents `[3]`_. | +| | +----------------+----------------------------------+ +| | | tempest_custom | Allow to run a customized list | +| | | | of Tempest cases | +-------------+---------------+----------------+----------------------------------+ | Controllers | smoke | odl | Opendaylight Test suite | | | | | Limited test suite to check the | @@ -83,17 +90,27 @@ validate the scenario for the release. | | | | functions. | | | | | See `ONOSFW User Guide`_ for | | | | | details. | +| | +----------------+----------------------------------+ +| | | odl_netvirt | Test Suite for the OpenDaylight | +| | | | SDN Controller when the NetVirt | +| | | | features are installed. It | +| | | | integrates some test suites from | +| | | | upstream using Robot as the test | +| | | | framework | +| | +----------------+----------------------------------+ +| | | fds | Test Suite for the OpenDaylight | +| | | | SDN Controller when the GBP | +| | | | features are installed. It | +| | | | integrates some test suites from | +| | | | upstream using Robot as the test | +| | | | framework | +-------------+---------------+----------------+----------------------------------+ -| Features | features | promise | Resource reservation and | -| | | | management project to identify | -| | | | NFV related requirements and | -| | | | realize resource reservation for | -| | | | future usage by capacity | -| | | | management of resource pools | -| | | | regarding compute, network and | -| | | | storage. | -| | | | See `Promise User Guide`_ for | -| | | | details. | +| Features | features | bgpvpn | Implementation of the OpenStack | +| | | | bgpvpn API from the SDNVPN | +| | | | feature project. It allows for | +| | | | the creation of BGP VPNs. | +| | | | See `SDNVPN User Guide`_ for | +| | | | details | | | +----------------+----------------------------------+ | | | doctor | Doctor platform, as of Colorado | | | | | release, provides the three | @@ -106,25 +123,6 @@ validate the scenario for the release. | | | | See `Doctor User Guide`_ for | | | | | details | | | +----------------+----------------------------------+ -| | | bgpvpn | Implementation of the OpenStack | -| | | | bgpvpn API from the SDNVPN | -| | | | feature project. It allows for | -| | | | the creation of BGP VPNs. | -| | | | See `SDNVPN User Guide`_ for | -| | | | details | -| | +----------------+----------------------------------+ -| | | security_scan | Implementation of a simple | -| | | | security scan. (Currently | -| | | | available only for the Apex | -| | | | installer environment) | -| | +----------------+----------------------------------+ -| | | onos-sfc | SFC testing for onos scenarios | -| | | | See `ONOSFW User Guide`_ for | -| | | | details | -| | +----------------+----------------------------------+ -| | | odl-sfc | SFC testing for odl scenarios | -| | | | See `SFC User Guide`_ for details| -| | +----------------+----------------------------------+ | | | domino | Domino provides TOSCA template | | | | | distribution service for network | | | | | service and VNF descriptors | @@ -134,21 +132,41 @@ validate the scenario for the release. | | | | See `Domino User Guide`_ for | | | | | details | | | +----------------+----------------------------------+ -| | | copper | Copper develops OPNFV platform | -| | | | support for policy management, | -| | | | using open source projects such | -| | | | as OpenStack Congress, focused | -| | | | on helping ensure that virtual | -| | | | infrastructure and the apps that | -| | | | execute on it comply with the | -| | | | configuration policy intent of | -| | | | service providers, developers, | -| | | | and end users. See more detail | -| | | | in the `Copper User Guide`_. | -| | +----------------+----------------------------------+ -| | | multisites | Multisites | +| | | multisite | Multisite | | | | | See `Multisite User Guide`_ for | | | | | details | +| | +----------------+----------------------------------+ +| | | netready | Testing from netready project | +| | | | ping using gluon | +| | +----------------+----------------------------------+ +| | | odl-sfc | SFC testing for odl scenarios | +| | | | See `SFC User Guide`_ for details| +| | +----------------+----------------------------------+ +| | | parser | Parser is an integration project | +| | | | which aims to provide | +| | | | placement/deployment templates | +| | | | translation for OPNFV platform, | +| | | | including TOSCA -> HOT, POLICY ->| +| | | | TOSCA and YANG -> TOSCA. it | +| | | | deals with a fake vRNC. | +| | | | See `Parser User Guide`_ for | +| | | | details | +| | +----------------+----------------------------------+ +| | | promise | Resource reservation and | +| | | | management project to identify | +| | | | NFV related requirements and | +| | | | realize resource reservation for | +| | | | future usage by capacity | +| | | | management of resource pools | +| | | | regarding compute, network and | +| | | | storage. | +| | | | See `Promise User Guide`_ for | +| | | | details. | +| | +----------------+----------------------------------+ +| | | security_scan | Implementation of a simple | +| | | | security scan. (Currently | +| | | | available only for the Apex | +| | | | installer environment) | +-------------+---------------+----------------+----------------------------------+ | VNF | vnf | cloudify_ims | Example of a real VNF deployment | | | | | to show the NFV capabilities of | @@ -158,18 +176,10 @@ validate the scenario for the release. | | | | It provides a fully functional | | | | | VoIP System | | | +----------------+----------------------------------+ -| | | opera_ims | vIMS deployment using openBaton | +| | | orchestra_ims | OpenIMS deployment using | +| | | | Openbaton orchestrator | | | +----------------+----------------------------------+ -| | | orchestra_ims | vIMS deployment using open-O | -+ +---------------+----------------+----------------------------------+ -| | | parser | Parser is an integration project | -| | | | which aims to provide | -| | | | placement/deployment templates | -| | | | translation for OPNFV platform, | -| | | | including TOSCA -> HOT, POLICY ->| -| | | | TOSCA and YANG -> TOSCA. | -| | | | See `Parser User Guide`_ for | -| | | | details | +| | | vyos_vrouter | vRouter testing | +-------------+---------------+----------------+----------------------------------+ @@ -185,7 +195,7 @@ In Danube, we merged smoke and sdn controller tiers in smoke tier. An overview of the Functest Structural Concept is depicted graphically below: -.. figure:: ../images/concepts_mapping_final.png +.. figure:: ../../../images/concepts_mapping_final.png :align: center :alt: Functest Concepts Structure @@ -203,8 +213,7 @@ NoSQL database. The goal is to populate the database with results from different sources and scenarios and to show them on a `Functest Dashboard`_. A screenshot of a live Functest Dashboard is shown below: -** TODO ** -.. figure:: ../images/FunctestDashboardDanube.png +.. figure:: ../../../images/FunctestDashboardDanube.png :align: center :alt: Functest Dashboard diff --git a/docs/testing/user/userguide/runfunctest.rst b/docs/testing/user/userguide/runfunctest.rst index e7ab84b2..8a3ba8c7 100644 --- a/docs/testing/user/userguide/runfunctest.rst +++ b/docs/testing/user/userguide/runfunctest.rst @@ -48,33 +48,34 @@ command:: root@22e436918db0:~/repos/functest/ci# functest tier list - 0. healthcheck: - ['healthcheck', 'connection_check', 'api_check',] + ['connection_check', 'api_check', 'snaps_health_check',] - 1. smoke: - ['vping_ssh', 'vping_userdata', 'tempest_smoke_serial', 'rally_sanity', 'snaps_smoke', 'odl'] + ['vping_ssh', 'vping_userdata', 'tempest_smoke_serial', 'odl', 'rally_sanity', 'refstack_defcore', 'snaps_smoke'] - 2. features: - ['doctor', 'security_scan'] + ['doctor', 'domino', 'promise', security_scan'] - 3. components: ['tempest_full_parallel', 'rally_full'] - 4. vnf: - ['cloudify_ims'] + ['cloudify_ims', 'orchestra_ims', 'vyos_vrouter'] and root@22e436918db0:~/repos/functest/ci# functest testcase list - healthcheck api_check connection_check + snaps_health_check vping_ssh vping_userdata snaps_smoke + refstack_defcore tempest_smoke_serial rally_sanity odl - doctor - security_scan tempest_full_parallel rally_full - cloudify_ims + vyos_vrouter + +Note the list of test cases depend on the installer and the scenario. More specific details on specific Tiers or Test Cases can be seen wih the 'show' command:: @@ -117,55 +118,260 @@ More specific details on specific Tiers or Test Cases can be seen wih the To execute a Test Tier or Test Case, the 'run' command is used:: root@22e436918db0:~/repos/functest/ci# functest tier run healthcheck - Executing command: 'python /home/opnfv/repos/functest/ci/run_tests.py -t healthcheck' - 2016-06-30 11:44:56,933 - run_tests - INFO - Sourcing the OpenStack RC file... - 2016-06-30 11:44:56,937 - run_tests - INFO - ############################################ - 2016-06-30 11:44:56,938 - run_tests - INFO - Running tier 'healthcheck' - 2016-06-30 11:44:56,938 - run_tests - INFO - ############################################ - 2016-06-30 11:44:56,938 - run_tests - INFO - ============================================ - 2016-06-30 11:44:56,938 - run_tests - INFO - Running test case 'healthcheck'... - 2016-06-30 11:44:56,938 - run_tests - INFO - ============================================ - 2016-06-30 11:44:56,953 - healtcheck - INFO - Testing Keystone API... - 2016-06-30 11:45:05,351 - healtcheck - INFO - ...Keystone OK! - 2016-06-30 11:45:05,354 - healtcheck - INFO - Testing Glance API... - 2016-06-30 11:45:29,746 - healtcheck - INFO - ... Glance OK! - 2016-06-30 11:45:29,749 - healtcheck - INFO - Testing Cinder API... - 2016-06-30 11:45:37,502 - healtcheck - INFO - ...Cinder OK! - 2016-06-30 11:45:37,505 - healtcheck - INFO - Testing Neutron API... - 2016-06-30 11:45:39,664 - healtcheck - INFO - External network found. ccd98ad6-d34a-4768-b03c-e28ecfcd51ca - 2016-06-30 11:45:39,667 - healtcheck - INFO - 1. Create Networks... - 2016-06-30 11:45:44,227 - healtcheck - INFO - 2. Create subnets... - 2016-06-30 11:45:46,805 - healtcheck - INFO - 4. Create Routers... - 2016-06-30 11:45:54,261 - healtcheck - INFO - ...Neutron OK! - 2016-06-30 11:45:54,264 - healtcheck - INFO - Testing Nova API... - 2016-06-30 11:47:12,272 - healtcheck - INFO - ...Nova OK! - 2016-06-30 11:47:12,274 - healtcheck - INFO - Checking if instances get an IP from DHCP... - : - : - 2016-06-30 11:48:17,832 - healtcheck - INFO - ...DHCP OK! - 2016-06-30 11:48:17,835 - healtcheck - INFO - Health check passed! - 2016-06-30 11:48:17,837 - clean_openstack - INFO - +++++++++++++++++++++++++++++++ - 2016-06-30 11:48:17,837 - clean_openstack - INFO - Cleaning OpenStack resources... - 2016-06-30 11:48:17,837 - clean_openstack - INFO - +++++++++++++++++++++++++++++++ - Version 1 is deprecated, use alternative version 2 instead. - WARNING:cinderclient.api_versions:Version 1 is deprecated, use alternative version 2 instead. - 2016-06-30 11:48:18,272 - clean_openstack - INFO - Removing Nova instances... - 2016-06-30 11:48:24,439 - clean_openstack - INFO - ------------------------------------------- - 2016-06-30 11:48:24,440 - clean_openstack - INFO - Removing Glance images... - 2016-06-30 11:48:35,853 - clean_openstack - INFO - ------------------------------------------- - 2016-06-30 11:48:35,854 - clean_openstack - INFO - Removing Cinder volumes... - 2016-06-30 11:48:37,344 - clean_openstack - INFO - ------------------------------------------- - 2016-06-30 11:48:37,344 - clean_openstack - INFO - Removing floating IPs... - 2016-06-30 11:48:37,467 - clean_openstack - INFO - ------------------------------------------- - 2016-06-30 11:48:37,467 - clean_openstack - INFO - Removing Neutron objects - 2016-06-30 11:48:53,633 - clean_openstack - INFO - ------------------------------------------- - 2016-06-30 11:48:53,633 - clean_openstack - INFO - Removing Security groups... - 2016-06-30 11:48:53,689 - clean_openstack - INFO - ------------------------------------------- - 2016-06-30 11:48:53,689 - clean_openstack - INFO - Removing Users... - 2016-06-30 11:48:54,444 - clean_openstack - INFO - ------------------------------------------- - 2016-06-30 11:48:54,444 - clean_openstack - INFO - Removing Tenants... - 2016-06-30 11:48:54,711 - clean_openstack - INFO - ------------------------------------------- - + 2017-03-21 13:34:21,400 - run_tests - INFO - ############################################ + 2017-03-21 13:34:21,400 - run_tests - INFO - Running tier 'healthcheck' + 2017-03-21 13:34:21,400 - run_tests - INFO - ############################################ + 2017-03-21 13:34:21,401 - run_tests - INFO - + + 2017-03-21 13:34:21,401 - run_tests - INFO - ============================================ + 2017-03-21 13:34:21,401 - run_tests - INFO - Running test case 'connection_check'... + 2017-03-21 13:34:21,401 - run_tests - INFO - ============================================ + test_glance_connect_fail (snaps.openstack.utils.tests.glance_utils_tests.GlanceSmokeTests) ... ok + test_glance_connect_success (snaps.openstack.utils.tests.glance_utils_tests.GlanceSmokeTests) ... ok + test_keystone_connect_fail (snaps.openstack.utils.tests.keystone_utils_tests.KeystoneSmokeTests) ... ok + test_keystone_connect_success (snaps.openstack.utils.tests.keystone_utils_tests.KeystoneSmokeTests) ... ok + test_neutron_connect_fail (snaps.openstack.utils.tests.neutron_utils_tests.NeutronSmokeTests) ... ok + test_neutron_connect_success (snaps.openstack.utils.tests.neutron_utils_tests.NeutronSmokeTests) ... ok + test_retrieve_ext_network_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronSmokeTests) ... ok + test_nova_connect_fail (snaps.openstack.utils.tests.nova_utils_tests.NovaSmokeTests) ... ok + test_nova_connect_success (snaps.openstack.utils.tests.nova_utils_tests.NovaSmokeTests) ... ok + + ---------------------------------------------------------------------- + Ran 9 tests in 3.768s + + OK + 2017-03-21 13:34:26,570 - functest.core.testcase_base - INFO - connection_check OK + 2017-03-21 13:34:26,918 - functest.core.testcase_base - INFO - The results were successfully pushed to DB + 2017-03-21 13:34:26,918 - run_tests - INFO - Test execution time: 00:05 + 2017-03-21 13:34:26,918 - run_tests - INFO - + + 2017-03-21 13:34:26,918 - run_tests - INFO - ============================================ + 2017-03-21 13:34:26,918 - run_tests - INFO - Running test case 'api_check'... + 2017-03-21 13:34:26,919 - run_tests - INFO - ============================================ + test_create_project_minimal (snaps.openstack.utils.tests.keystone_utils_tests.KeystoneUtilsTests) ... ok + test_create_user_minimal (snaps.openstack.utils.tests.keystone_utils_tests.KeystoneUtilsTests) ... ok + test_create_delete_user (snaps.openstack.tests.create_user_tests.CreateUserSuccessTests) ... ok + test_create_user (snaps.openstack.tests.create_user_tests.CreateUserSuccessTests) ... ok + test_create_user_2x (snaps.openstack.tests.create_user_tests.CreateUserSuccessTests) ... + 2017-03-21 13:34:32,684 - create_user - INFO - Found user with name - CreateUserSuccessTests-7e741e11-c9fd-489-name ok + test_create_delete_project (snaps.openstack.tests.create_project_tests.CreateProjectSuccessTests) ... ok + test_create_project (snaps.openstack.tests.create_project_tests.CreateProjectSuccessTests) ... ok + test_create_project_2x (snaps.openstack.tests.create_project_tests.CreateProjectSuccessTests) ... + 2017-03-21 13:34:35,922 - create_image - INFO - Found project with name - CreateProjectSuccessTests-b38e08ce-2862-48a-name ok + test_create_project_sec_grp_one_user (snaps.openstack.tests.create_project_tests.CreateProjectUserTests) ... + 2017-03-21 13:34:37,907 - OpenStackSecurityGroup - INFO - Creating security group CreateProjectUserTests-ab8801f6-dad8-4f9-name... + 2017-03-21 13:34:37,907 - neutron_utils - INFO - Retrieving security group with name - CreateProjectUserTests-ab8801f6-dad8-4f9-name + 2017-03-21 13:34:38,376 - neutron_utils - INFO - Creating security group with name - CreateProjectUserTests-ab8801f6-dad8-4f9-name + 2017-03-21 13:34:38,716 - neutron_utils - INFO - Retrieving security group rules associate with the security group - CreateProjectUserTests-ab8801f6-dad8-4f9-name + 2017-03-21 13:34:38,762 - neutron_utils - INFO - Retrieving security group with ID - 821419cb-c54c-41b4-a61b-fb30e5dd2ec5 + 2017-03-21 13:34:38,886 - neutron_utils - INFO - Retrieving security group with ID - 821419cb-c54c-41b4-a61b-fb30e5dd2ec5 + 2017-03-21 13:34:39,000 - neutron_utils - INFO - Retrieving security group with name - CreateProjectUserTests-ab8801f6-dad8-4f9-name + 2017-03-21 13:34:39,307 - neutron_utils - INFO - Deleting security group rule with ID - d85fafc0-9649-45c9-a00e-452f3d5c09a6 + 2017-03-21 13:34:39,531 - neutron_utils - INFO - Deleting security group rule with ID - 69d79c09-bc3b-4975-9353-5f43aca51237 + 2017-03-21 13:34:39,762 - neutron_utils - INFO - Deleting security group with name - CreateProjectUserTests-ab8801f6-dad8-4f9-name ok + test_create_project_sec_grp_two_users (snaps.openstack.tests.create_project_tests.CreateProjectUserTests) ... + 2017-03-21 13:34:43,511 - OpenStackSecurityGroup - INFO - Creating security group CreateProjectUserTests-4d9261a6-e008-44b-name... + 2017-03-21 13:34:43,511 - neutron_utils - INFO - Retrieving security group with name - CreateProjectUserTests-4d9261a6-e008-44b-name + 2017-03-21 13:34:44,090 - neutron_utils - INFO - Creating security group with name - CreateProjectUserTests-4d9261a6-e008-44b-name + 2017-03-21 13:34:44,784 - neutron_utils - INFO - Retrieving security group rules associate with the security group - CreateProjectUserTests-4d9261a6-e008-44b-name + 2017-03-21 13:34:44,864 - neutron_utils - INFO - Retrieving security group with ID - 780193e4-9bd2-4f2e-a14d-b01abf74c832 + 2017-03-21 13:34:45,233 - neutron_utils - INFO - Retrieving security group with ID - 780193e4-9bd2-4f2e-a14d-b01abf74c832 + 2017-03-21 13:34:45,332 - neutron_utils - INFO - Retrieving security group with name - CreateProjectUserTests-4d9261a6-e008-44b-name + 2017-03-21 13:34:45,779 - OpenStackSecurityGroup - INFO - Creating security group CreateProjectUserTests-4d9261a6-e008-44b-name... + 2017-03-21 13:34:45,779 - neutron_utils - INFO - Retrieving security group with name - CreateProjectUserTests-4d9261a6-e008-44b-name + 2017-03-21 13:34:46,112 - neutron_utils - INFO - Retrieving security group rules associate with the security group - CreateProjectUserTests-4d9261a6-e008-44b-name + 2017-03-21 13:34:46,184 - neutron_utils - INFO - Retrieving security group with ID - 780193e4-9bd2-4f2e-a14d-b01abf74c832 + 2017-03-21 13:34:46,296 - neutron_utils - INFO - Retrieving security group with ID - 780193e4-9bd2-4f2e-a14d-b01abf74c832 + 2017-03-21 13:34:46,387 - neutron_utils - INFO - Deleting security group rule with ID - 2320a573-ec56-47c5-a1ba-ec514d30114b + 2017-03-21 13:34:46,636 - neutron_utils - INFO - Deleting security group rule with ID - 6186282b-db37-4e47-becc-a3886079c069 + 2017-03-21 13:34:46,780 - neutron_utils - INFO - Deleting security group with name - CreateProjectUserTests-4d9261a6-e008-44b-name + 2017-03-21 13:34:47,006 - neutron_utils - INFO - Deleting security group rule with ID - 2320a573-ec56-47c5-a1ba-ec514d30114b + 2017-03-21 13:34:47,072 - OpenStackSecurityGroup - WARNING - Rule not found, cannot delete - Security group rule 2320a573-ec56-47c5-a1ba-ec514d30114b does not exist + Neutron server returns request_ids: ['req-d74eb2e2-b26f-4236-87dc-7255866141d9'] + 2017-03-21 13:34:47,072 - neutron_utils - INFO - Deleting security group rule with ID - 6186282b-db37-4e47-becc-a3886079c069 + 2017-03-21 13:34:47,118 - OpenStackSecurityGroup - WARNING - Rule not found, cannot delete - Security group rule 6186282b-db37-4e47-becc-a3886079c069 does not exist + Neutron server returns request_ids: ['req-8c0a5a24-be90-4844-a9ed-2a85cc6f59a5'] + 2017-03-21 13:34:47,118 - neutron_utils - INFO - Deleting security group with name - CreateProjectUserTests-4d9261a6-e008-44b-name + 2017-03-21 13:34:47,172 - OpenStackSecurityGroup - WARNING - Security Group not found, cannot delete - Security group 780193e4-9bd2-4f2e-a14d-b01abf74c832 does not exist + Neutron server returns request_ids: ['req-c6e1a6b5-43e0-4d46-bb68-c2e1672d4d21'] ok + test_create_image_minimal_file (snaps.openstack.utils.tests.glance_utils_tests.GlanceUtilsTests) ... ok + test_create_image_minimal_url (snaps.openstack.utils.tests.glance_utils_tests.GlanceUtilsTests) ... ok + test_create_network (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsNetworkTests) ... + 2017-03-21 13:35:22,275 - neutron_utils - INFO - Creating network with name NeutronUtilsNetworkTests-c06c20e0-d78f-4fa4-8401-099a7a6cab2e-pub-net + 2017-03-21 13:35:23,965 - neutron_utils - INFO - Deleting network with name NeutronUtilsNetworkTests-c06c20e0-d78f-4fa4-8401-099a7a6cab2e-pub-net ok + test_create_network_empty_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsNetworkTests) ... ok + test_create_network_null_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsNetworkTests) ... ok + test_create_subnet (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSubnetTests) ... + 2017-03-21 13:35:25,495 - neutron_utils - INFO - Creating network with name NeutronUtilsSubnetTests-4f440a5f-54e3-4455-ab9b-39dfe06f6d21-pub-net + 2017-03-21 13:35:26,841 - neutron_utils - INFO - Creating subnet with name NeutronUtilsSubnetTests-4f440a5f-54e3-4455-ab9b-39dfe06f6d21-pub-subnet + 2017-03-21 13:35:28,311 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsSubnetTests-4f440a5f-54e3-4455-ab9b-39dfe06f6d21-pub-subnet + 2017-03-21 13:35:29,585 - neutron_utils - INFO - Deleting network with name NeutronUtilsSubnetTests-4f440a5f-54e3-4455-ab9b-39dfe06f6d21-pub-net ok + test_create_subnet_empty_cidr (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSubnetTests) ... + 2017-03-21 13:35:31,013 - neutron_utils - INFO - Creating network with name NeutronUtilsSubnetTests-41fc0db4-71ee-47e6-bec9-316273e5bcc0-pub-net + 2017-03-21 13:35:31,652 - neutron_utils - INFO - Deleting network with name NeutronUtilsSubnetTests-41fc0db4-71ee-47e6-bec9-316273e5bcc0-pub-net ok + test_create_subnet_empty_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSubnetTests) ... + 2017-03-21 13:35:32,379 - neutron_utils - INFO - Creating network with name NeutronUtilsSubnetTests-1030e0cb-1714-4d18-8619-a03bac0d0257-pub-net + 2017-03-21 13:35:33,516 - neutron_utils - INFO - Creating subnet with name NeutronUtilsSubnetTests-1030e0cb-1714-4d18-8619-a03bac0d0257-pub-subnet + 2017-03-21 13:35:34,160 - neutron_utils - INFO - Deleting network with name NeutronUtilsSubnetTests-1030e0cb-1714-4d18-8619-a03bac0d0257-pub-net ok + test_create_subnet_null_cidr (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSubnetTests) ... + 2017-03-21 13:35:35,784 - neutron_utils - INFO - Creating network with name NeutronUtilsSubnetTests-1d7522fd-3fb5-4b1c-8741-97d7c47a5f7d-pub-net + 2017-03-21 13:35:36,367 - neutron_utils - INFO - Deleting network with name NeutronUtilsSubnetTests-1d7522fd-3fb5-4b1c-8741-97d7c47a5f7d-pub-net ok + test_create_subnet_null_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSubnetTests) ... + 2017-03-21 13:35:37,055 - neutron_utils - INFO - Creating network with name NeutronUtilsSubnetTests-0a8ac1b2-e5d4-4522-a079-7e17945e482e-pub-net + 2017-03-21 13:35:37,691 - neutron_utils - INFO - Deleting network with name NeutronUtilsSubnetTests-0a8ac1b2-e5d4-4522-a079-7e17945e482e-pub-net ok + test_add_interface_router (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:35:38,994 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-433818c9-4472-49a8-9241-791ad0a71d3f-pub-net + 2017-03-21 13:35:40,311 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-433818c9-4472-49a8-9241-791ad0a71d3f-pub-subnet + 2017-03-21 13:35:41,713 - neutron_utils - INFO - Creating router with name - NeutronUtilsRouterTests-433818c9-4472-49a8-9241-791ad0a71d3f-pub-router + 2017-03-21 13:35:44,131 - neutron_utils - INFO - Adding interface to router with name NeutronUtilsRouterTests-433818c9-4472-49a8-9241-791ad0a71d3f-pub-router + 2017-03-21 13:35:45,725 - neutron_utils - INFO - Removing router interface from router named NeutronUtilsRouterTests-433818c9-4472-49a8-9241-791ad0a71d3f-pub-router + 2017-03-21 13:35:47,464 - neutron_utils - INFO - Deleting router with name - NeutronUtilsRouterTests-433818c9-4472-49a8-9241-791ad0a71d3f-pub-router + 2017-03-21 13:35:48,670 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-433818c9-4472-49a8-9241-791ad0a71d3f-pub-subnet + 2017-03-21 13:35:50,921 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-433818c9-4472-49a8-9241-791ad0a71d3f-pub-net ok + test_add_interface_router_null_router (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:35:52,230 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-1fc2de16-2d3e-497b-b947-022b1bf9d90c-pub-net + 2017-03-21 13:35:53,662 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-1fc2de16-2d3e-497b-b947-022b1bf9d90c-pub-subnet + 2017-03-21 13:35:55,203 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-1fc2de16-2d3e-497b-b947-022b1bf9d90c-pub-subnet + 2017-03-21 13:35:55,694 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-1fc2de16-2d3e-497b-b947-022b1bf9d90c-pub-net ok + test_add_interface_router_null_subnet (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:35:57,392 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-2e4fb9f3-312b-4954-8015-435464fdc8b0-pub-net + 2017-03-21 13:35:58,215 - neutron_utils - INFO - Creating router with name - NeutronUtilsRouterTests-2e4fb9f3-312b-4954-8015-435464fdc8b0-pub-router + 2017-03-21 13:36:00,369 - neutron_utils - INFO - Adding interface to router with name NeutronUtilsRouterTests-2e4fb9f3-312b-4954-8015-435464fdc8b0-pub-router + 2017-03-21 13:36:00,369 - neutron_utils - INFO - Deleting router with name - NeutronUtilsRouterTests-2e4fb9f3-312b-4954-8015-435464fdc8b0-pub-router + 2017-03-21 13:36:02,742 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-2e4fb9f3-312b-4954-8015-435464fdc8b0-pub-net ok + test_create_port (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:05,010 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-dde05ce1-a2f8-4c5e-a028-e1ca0e11a05b-pub-net + 2017-03-21 13:36:05,996 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-dde05ce1-a2f8-4c5e-a028-e1ca0e11a05b-pub-subnet + 2017-03-21 13:36:09,103 - neutron_utils - INFO - Creating port for network with name - NeutronUtilsRouterTests-dde05ce1-a2f8-4c5e-a028-e1ca0e11a05b-pub-net + 2017-03-21 13:36:10,312 - neutron_utils - INFO - Deleting port with name NeutronUtilsRouterTests-dde05ce1-a2f8-4c5e-a028-e1ca0e11a05b-port + 2017-03-21 13:36:11,045 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-dde05ce1-a2f8-4c5e-a028-e1ca0e11a05b-pub-subnet + 2017-03-21 13:36:14,265 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-dde05ce1-a2f8-4c5e-a028-e1ca0e11a05b-pub-net ok + test_create_port_empty_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:16,250 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-b986a259-e873-431c-bde4-b2771ace4549-pub-net + 2017-03-21 13:36:16,950 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-b986a259-e873-431c-bde4-b2771ace4549-pub-subnet + 2017-03-21 13:36:17,798 - neutron_utils - INFO - Creating port for network with name - NeutronUtilsRouterTests-b986a259-e873-431c-bde4-b2771ace4549-pub-net + 2017-03-21 13:36:18,544 - neutron_utils - INFO - Deleting port with name NeutronUtilsRouterTests-b986a259-e873-431c-bde4-b2771ace4549-port + 2017-03-21 13:36:19,582 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-b986a259-e873-431c-bde4-b2771ace4549-pub-subnet + 2017-03-21 13:36:21,606 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-b986a259-e873-431c-bde4-b2771ace4549-pub-net ok + test_create_port_invalid_ip (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:23,779 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-7ab3a329-9dd8-4e6f-9d52-aafb47ea5122-pub-net + 2017-03-21 13:36:25,201 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-7ab3a329-9dd8-4e6f-9d52-aafb47ea5122-pub-subnet + 2017-03-21 13:36:25,599 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-7ab3a329-9dd8-4e6f-9d52-aafb47ea5122-pub-subnet + 2017-03-21 13:36:26,220 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-7ab3a329-9dd8-4e6f-9d52-aafb47ea5122-pub-net ok + test_create_port_invalid_ip_to_subnet (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:27,112 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-c016821d-cd4f-4e0f-8f8c-d5cef3392e64-pub-net + 2017-03-21 13:36:28,720 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-c016821d-cd4f-4e0f-8f8c-d5cef3392e64-pub-subnet + 2017-03-21 13:36:29,457 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-c016821d-cd4f-4e0f-8f8c-d5cef3392e64-pub-subnet + 2017-03-21 13:36:29,909 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-c016821d-cd4f-4e0f-8f8c-d5cef3392e64-pub-net ok + test_create_port_null_ip (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:31,037 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-9a86227f-6041-4b04-86a7-1701fb86baa3-pub-net + 2017-03-21 13:36:31,695 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-9a86227f-6041-4b04-86a7-1701fb86baa3-pub-subnet + 2017-03-21 13:36:32,305 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-9a86227f-6041-4b04-86a7-1701fb86baa3-pub-subnet + 2017-03-21 13:36:33,553 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-9a86227f-6041-4b04-86a7-1701fb86baa3-pub-net ok + test_create_port_null_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:34,593 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-42efa897-4f65-4d9b-b19d-fbc61f97c966-pub-net + 2017-03-21 13:36:35,217 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-42efa897-4f65-4d9b-b19d-fbc61f97c966-pub-subnet + 2017-03-21 13:36:36,648 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-42efa897-4f65-4d9b-b19d-fbc61f97c966-pub-subnet + 2017-03-21 13:36:37,251 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-42efa897-4f65-4d9b-b19d-fbc61f97c966-pub-net ok + test_create_port_null_network_object (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:37,885 - neutron_utils - INFO - Creating network with name NeutronUtilsRouterTests-617f4110-45c1-4900-bad1-a6204f34dd64-pub-net + 2017-03-21 13:36:38,468 - neutron_utils - INFO - Creating subnet with name NeutronUtilsRouterTests-617f4110-45c1-4900-bad1-a6204f34dd64-pub-subnet + 2017-03-21 13:36:40,005 - neutron_utils - INFO - Deleting subnet with name NeutronUtilsRouterTests-617f4110-45c1-4900-bad1-a6204f34dd64-pub-subnet + 2017-03-21 13:36:41,637 - neutron_utils - INFO - Deleting network with name NeutronUtilsRouterTests-617f4110-45c1-4900-bad1-a6204f34dd64-pub-net ok + test_create_router_empty_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... ok + test_create_router_null_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... ok + test_create_router_simple (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:43,424 - neutron_utils - INFO - Creating router with name - NeutronUtilsRouterTests-b6a2dafc-38d4-4c46-bb41-2ba9e1c0084e-pub-router + 2017-03-21 13:36:45,013 - neutron_utils - INFO - Deleting router with name - NeutronUtilsRouterTests-b6a2dafc-38d4-4c46-bb41-2ba9e1c0084e-pub-router ok + test_create_router_with_public_interface (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsRouterTests) ... + 2017-03-21 13:36:47,829 - neutron_utils - INFO - Creating router with name - NeutronUtilsRouterTests-d268dda2-7a30-4d3d-a008-e5aa4592637d-pub-router + 2017-03-21 13:36:49,448 - neutron_utils - INFO - Deleting router with name - NeutronUtilsRouterTests-d268dda2-7a30-4d3d-a008-e5aa4592637d-pub-router ok + test_create_delete_simple_sec_grp (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSecurityGroupTests) ... + 2017-03-21 13:36:51,067 - neutron_utils - INFO - Creating security group with name - NeutronUtilsSecurityGroupTests-1543e861-ea38-4fbe-9723-c27552e3eb7aname + 2017-03-21 13:36:51,493 - neutron_utils - INFO - Retrieving security group with name - NeutronUtilsSecurityGroupTests-1543e861-ea38-4fbe-9723-c27552e3eb7aname + 2017-03-21 13:36:51,568 - neutron_utils - INFO - Deleting security group with name - NeutronUtilsSecurityGroupTests-1543e861-ea38-4fbe-9723-c27552e3eb7aname + 2017-03-21 13:36:51,772 - neutron_utils - INFO - Retrieving security group with name - NeutronUtilsSecurityGroupTests-1543e861-ea38-4fbe-9723-c27552e3eb7aname ok + test_create_sec_grp_no_name (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSecurityGroupTests) ... ok + test_create_sec_grp_no_rules (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSecurityGroupTests) ... + 2017-03-21 13:36:52,253 - neutron_utils - INFO - Creating security group with name - NeutronUtilsSecurityGroupTests-57c60864-f46c-4391-ba99-6acc4dd123ddname + 2017-03-21 13:36:52,634 - neutron_utils - INFO - Retrieving security group with name - NeutronUtilsSecurityGroupTests-57c60864-f46c-4391-ba99-6acc4dd123ddname + 2017-03-21 13:36:52,718 - neutron_utils - INFO - Deleting security group with name - NeutronUtilsSecurityGroupTests-57c60864-f46c-4391-ba99-6acc4dd123ddname ok + test_create_sec_grp_one_rule (snaps.openstack.utils.tests.neutron_utils_tests.NeutronUtilsSecurityGroupTests) ... + 2017-03-21 13:36:53,082 - neutron_utils - INFO - Creating security group with name - NeutronUtilsSecurityGroupTests-a3ac62bb-a7e8-4fc2-ba4c-e656f1f3c9a1name + 2017-03-21 13:36:53,483 - neutron_utils - INFO - Retrieving security group rules associate with the security group - NeutronUtilsSecurityGroupTests-a3ac62bb-a7e8-4fc2-ba4c-e656f1f3c9a1name + 2017-03-21 13:36:53,548 - neutron_utils - INFO - Creating security group to security group - NeutronUtilsSecurityGroupTests-a3ac62bb-a7e8-4fc2-ba4c-e656f1f3c9a1name + 2017-03-21 13:36:53,548 - neutron_utils - INFO - Retrieving security group with name - NeutronUtilsSecurityGroupTests-a3ac62bb-a7e8-4fc2-ba4c-e656f1f3c9a1name + 2017-03-21 13:36:53,871 - neutron_utils - INFO - Retrieving security group with name - NeutronUtilsSecurityGroupTests-a3ac62bb-a7e8-4fc2-ba4c-e656f1f3c9a1name + 2017-03-21 13:36:53,944 - neutron_utils - INFO - Retrieving security group rules associate with the security group - NeutronUtilsSecurityGroupTests-a3ac62bb-a7e8-4fc2-ba4c-e656f1f3c9a1name + 2017-03-21 13:36:53,991 - neutron_utils - INFO - Retrieving security group with name - NeutronUtilsSecurityGroupTests-a3ac62bb-a7e8-4fc2-ba4c-e656f1f3c9a1name + 2017-03-21 13:36:54,069 - neutron_utils - INFO - Deleting security group rule with ID - 7f76046c-d043-46e0-9d12-4b983525810b + 2017-03-21 13:36:54,185 - neutron_utils - INFO - Deleting security group rule with ID - f18a9ed1-466f-4373-a6b2-82bd317bc838 + 2017-03-21 13:36:54,338 - neutron_utils - INFO - Deleting security group rule with ID - fe34a3d0-948e-47c1-abad-c3ec8d33b2fb + 2017-03-21 13:36:54,444 - neutron_utils - INFO - Deleting security group with name - NeutronUtilsSecurityGroupTests-a3ac62bb-a7e8-4fc2-ba4c-e656f1f3c9a1name ok + test_create_delete_keypair (snaps.openstack.utils.tests.nova_utils_tests.NovaUtilsKeypairTests) ... + 2017-03-21 13:36:54,637 - nova_utils - INFO - Creating keypair with name - NovaUtilsKeypairTests-5ce69b6f-d8d0-4b66-bd25-30a22cf3bda0 ok + test_create_key_from_file (snaps.openstack.utils.tests.nova_utils_tests.NovaUtilsKeypairTests) ... + 2017-03-21 13:36:58,989 - nova_utils - INFO - Saved public key to - tmp/NovaUtilsKeypairTests-df3e848d-a467-4cc4-99d5-022eb67eee94.pub + 2017-03-21 13:36:58,990 - nova_utils - INFO - Saved private key to - tmp/NovaUtilsKeypairTests-df3e848d-a467-4cc4-99d5-022eb67eee94 + 2017-03-21 13:36:58,990 - nova_utils - INFO - Saving keypair to - tmp/NovaUtilsKeypairTests-df3e848d-a467-4cc4-99d5-022eb67eee94.pub + 2017-03-21 13:36:58,990 - nova_utils - INFO - Creating keypair with name - NovaUtilsKeypairTests-df3e848d-a467-4cc4-99d5-022eb67eee94 ok + test_create_keypair (snaps.openstack.utils.tests.nova_utils_tests.NovaUtilsKeypairTests) ... + 2017-03-21 13:36:59,807 - nova_utils - INFO - Creating keypair with name - NovaUtilsKeypairTests-fc7f7ffd-80f6-43df-bd41-a3c014ba8c3d ok + test_floating_ips (snaps.openstack.utils.tests.nova_utils_tests.NovaUtilsKeypairTests) ... + 2017-03-21 13:37:02,765 - nova_utils - INFO - Creating floating ip to external network - admin_floating_net ok + test_create_delete_flavor (snaps.openstack.utils.tests.nova_utils_tests.NovaUtilsFlavorTests) ... ok + test_create_flavor (snaps.openstack.utils.tests.nova_utils_tests.NovaUtilsFlavorTests) ... ok + test_create_clean_flavor (snaps.openstack.tests.create_flavor_tests.CreateFlavorTests) ... ok + test_create_delete_flavor (snaps.openstack.tests.create_flavor_tests.CreateFlavorTests) ... ok + test_create_flavor (snaps.openstack.tests.create_flavor_tests.CreateFlavorTests) ... ok + test_create_flavor_existing (snaps.openstack.tests.create_flavor_tests.CreateFlavorTests) ... + 2017-03-21 13:37:18,545 - create_image - INFO - Found flavor with name - CreateFlavorTests-3befc152-4319-4f9c-82d4-75f8941d9533name ok + + ---------------------------------------------------------------------- + Ran 48 tests in 171.000s + + OK + 2017-03-21 13:37:18,620 - functest.core.testcase_base - INFO - api_check OK + 2017-03-21 13:37:18,977 - functest.core.testcase_base - INFO - The results were successfully pushed to DB + 2017-03-21 13:37:18,977 - run_tests - INFO - Test execution time: 02:52 + 2017-03-21 13:37:18,981 - run_tests - INFO - + + 2017-03-21 13:37:18,981 - run_tests - INFO - ============================================ + 2017-03-21 13:37:18,981 - run_tests - INFO - Running test case 'snaps_health_check'... + 2017-03-21 13:37:18,981 - run_tests - INFO - ============================================ + 2017-03-21 13:37:19,098 - file_utils - INFO - Attempting to read OS environment file - /home/opnfv/functest/conf/openstack.creds + 2017-03-21 13:37:19,099 - openstack_tests - INFO - OS Credentials = OSCreds - username=admin, password=admin, auth_url=http://192.168.10.7:5000/v3, project_name=admin, identity_api_version=3, image_api_version=1, network_api_version=2, compute_api_version=2, user_domain_id=default, proxy_settings=None + 2017-03-21 13:37:19,434 - file_utils - INFO - Attempting to read OS environment file - /home/opnfv/functest/conf/openstack.creds + 2017-03-21 13:37:19,435 - openstack_tests - INFO - OS Credentials = OSCreds - username=admin, password=admin, auth_url=http://192.168.10.7:5000/v3, project_name=admin, identity_api_version=3, image_api_version=1, network_api_version=2, compute_api_version=2, user_domain_id=default, proxy_settings=None + test_check_vm_ip_dhcp (snaps.openstack.tests.create_instance_tests.SimpleHealthCheck) ... + 2017-03-21 13:37:26,082 - create_image - INFO - Creating image + 2017-03-21 13:37:28,793 - create_image - INFO - Image is active with name - SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-image + 2017-03-21 13:37:28,793 - create_image - INFO - Image is now active with name - SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-image + 2017-03-21 13:37:28,794 - OpenStackNetwork - INFO - Creating neutron network SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-priv-net... + 2017-03-21 13:37:29,308 - neutron_utils - INFO - Creating network with name SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-priv-net + 2017-03-21 13:37:30,771 - neutron_utils - INFO - Creating subnet with name SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-priv-subnet + 2017-03-21 13:37:36,974 - neutron_utils - INFO - Creating port for network with name - SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-priv-net + 2017-03-21 13:37:38,188 - create_instance - INFO - Creating VM with name - SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-inst + 2017-03-21 13:37:41,538 - create_instance - INFO - Created instance with name - SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-inst + 2017-03-21 13:37:59,577 - create_instance - INFO - VM is - ACTIVE + 2017-03-21 13:37:59,577 - create_instance_tests - INFO - Looking for expression Lease of.*obtained in the console log + 2017-03-21 13:37:59,830 - create_instance_tests - INFO - DHCP lease obtained logged in console + 2017-03-21 13:37:59,830 - create_instance_tests - INFO - With correct IP address + 2017-03-21 13:37:59,830 - create_instance - INFO - Deleting Port - SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5dport-1 + 2017-03-21 13:37:59,830 - neutron_utils - INFO - Deleting port with name SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5dport-1 + 2017-03-21 13:38:00,705 - create_instance - INFO - Deleting VM instance - SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-inst + 2017-03-21 13:38:01,412 - create_instance - INFO - Checking deletion status + 2017-03-21 13:38:04,938 - create_instance - INFO - VM has been properly deleted VM with name - SimpleHealthCheck-23244728-5a5a-4545-9b16-50257a595e5d-inst + ok + + ---------------------------------------------------------------------- + Ran 1 test in 46.982s + + OK + 2017-03-21 13:38:06,417 - functest.core.testcase_base - INFO - snaps_health_check OK + 2017-03-21 13:38:06,778 - functest.core.testcase_base - INFO - The results were successfully pushed to DB + 2017-03-21 13:38:06,779 - run_tests - INFO - Test execution time: 00:47 + 2017-03-21 13:38:06,779 - run_tests - INFO - and root@22e436918db0:~/repos/functest/ci# functest testcase run vping_ssh @@ -206,12 +412,12 @@ command is used with 'functest tier':: root@22e436918db0:~/repos/functest/ci# functest tier get-tests healthcheck Test cases in tier 'healthcheck': - ['healthcheck'] + ['connection_check', 'api_check', 'snaps_health_check'] Please note that for some scenarios some test cases might not be launched. For example, the last example displayed only the 'odl' testcase for the given -environment. In this particular system the deployment does not support the 'onos' SDN +environment. In this particular system the deployment does not support the 'ocl' SDN Controller Test Case; for example. **Important** If you use the command 'functest tier run ', then the @@ -229,32 +435,35 @@ two possibilities:: Functest includes a cleaning mechanism in order to remove all the OpenStack resources except those present before running any test. The script -*$REPOS_DIR/functest/functest/utils/generate_defaults.py* is called once when setting up +*$REPOS_DIR/functest/functest/utils/openstack_snapshot.py* is called once when setting up the Functest environment (i.e. CLI command 'functest env prepare') to snapshot all the OpenStack resources (images, networks, volumes, security groups, tenants, users) so that an eventual cleanup does not remove any of these defaults. -The script **clean_openstack.py** which is located in +It is also called before running a test except if it is disabled by configuration +in the testcases.yaml file (clean_flag=false). This flag has been added as some +upstream tests already include their own cleaning mechanism (e.g. Rally). + +The script **openstack_clean.py** which is located in *$REPOS_DIR/functest/functest/utils/* is normally called after a test execution. It is in charge of cleaning the OpenStack resources that are not specified in the defaults file generated previously which is stored in -*/home/opnfv/functest/conf/os_defaults.yaml* in the Functest docker container. +*/home/opnfv/functest/conf/openstack_snapshot.yaml* in the Functest docker container. It is important to mention that if there are new OpenStack resources created -manually after preparing the Functest environment, they will be removed, unless -you use the special method of invoking the test case with specific suppression -of clean up. (See the `Troubleshooting`_ section). +manually after the snapshot done before running the tests, they will be removed, +unless you use the special method of invoking the test case with specific +suppression of clean up. (See the `Troubleshooting`_ section). The reason to include this cleanup meachanism in Functest is because some -test suites such as Tempest or Rally create a lot of resources (users, -tenants, networks, volumes etc.) that are not always properly cleaned, so this -function has been set to keep the system as clean as it was before a -full Functest execution. +test suites create a lot of resources (users, tenants, networks, volumes etc.) +that are not always properly cleaned, so this function has been set to keep the +system as clean as it was before a full Functest execution. Although the Functest CLI provides an easy way to run any test, it is possible to do a direct call to the desired test script. For example: - python $REPOS_DIR/functest/functest/opnfv_tests/OpenStack/vPing/vPing_ssh.py -d + python $REPOS_DIR/functest/functest/opnfv_tests/openstack/vping/vping_ssh.py Automated testing @@ -282,38 +491,18 @@ The mechanism remains however as part of the CI evolution. CI provides some useful information passed to the container as environment variables: - * Installer (apex|compass|daisy|fuel|joid), stored in INSTALLER_TYPE + * Installer (apex|compass|fuel|joid), stored in INSTALLER_TYPE * Installer IP of the engine or VM running the actual deployment, stored in INSTALLER_IP * The scenario [controller]-[feature]-[mode], stored in DEPLOY_SCENARIO with - * controller = (odl|onos|ocl|nosdn) - * feature = (ovs(dpdk)|kvm|sfc|bgpvpn|multisites) + * controller = (odl|ocl|nosdn|onos) + * feature = (ovs(dpdk)|kvm|sfc|bgpvpn|multisites|netready|ovs_dpdk_bar) * mode = (ha|noha) The constraints per test case are defined in the Functest configuration file */home/opnfv/repos/functest/functest/ci/testcases.yaml*:: tiers: - - - name: healthcheck - order: 0 - ci_loop: '(daily)|(weekly)' - description : >- - First tier to be executed to verify the basic - operations in the VIM. - testcases: - - - name: healthcheck - criteria: 'status == "PASS"' - blocking: true - description: >- - This test case verifies the basic OpenStack services like - Keystone, Glance, Cinder, Neutron and Nova. - - dependencies: - installer: '' - scenario: '' - - name: smoke order: 1 @@ -343,13 +532,14 @@ We may distinguish 2 levels in the test case description: At the tier level, we define the following parameters: - * ci_loop: indicate if in automated mode, the test case must be run in daily and/or weekly jobs + * ci_loop: indicate if in automated mode, the test case must be run in dail and/or weekly jobs * description: a high level view of the test case For a given test case we defined: * the name of the test case * the criteria (experimental): a criteria used to declare the test case as PASS or FAIL * blocking: if set to true, if the test is failed, the execution of the following tests is canceled + * clean_flag: shall the functect internal mechanism be invoked after the test * the description of the test case * the dependencies: a combination of 2 regex on the scenario and the installer name * run: In Danube we introduced the notion of abstract class in order to harmonize the way to run internal, feature or vnf tests diff --git a/docs/testing/user/userguide/troubleshooting.rst b/docs/testing/user/userguide/troubleshooting.rst index 84550191..bcd9e1c8 100644 --- a/docs/testing/user/userguide/troubleshooting.rst +++ b/docs/testing/user/userguide/troubleshooting.rst @@ -44,8 +44,8 @@ These test cases can be run inside the container, using new Functest CLI as foll The Functest CLI is designed to route a call to the corresponding internal python scripts, located in paths: -*$REPOS_DIR/functest/functest/opnfv_tests/vPing/CI/libraries/vPing_ssh.py* and -*$REPOS_DIR/functest/functest/opnfv_tests/vPing/CI/libraries/vPing_userdata.py* +*$REPOS_DIR/functest/functest/opnfv_tests/openstack/vping/vping_ssh.py* and +*$REPOS_DIR/functest/functest/opnfv_tests/openstack/vping/vping_userdata.py* Notes: @@ -122,7 +122,7 @@ This test case creates a floating IP on the external network and assigns it to the second instance **opnfv-vping-2**. The purpose of this is to establish a SSH connection to that instance and SCP a script that will ping the first instance. This script is located in the repository under -*$REPOS_DIR/functest/functest/opnfv_tests/OpenStack/vPing/ping.sh* and takes an IP as +*$REPOS_DIR/functest/functest/opnfv_tests/openstack/vping/ping.sh* and takes an IP as a parameter. When the SCP is completed, the test will do an SSH call to that script inside the second instance. Some problems can happen here:: @@ -238,7 +238,8 @@ of the following | execution test cases are | Rally in Functest, does not contain all the needed | | missing | parameters or some parameters are not set properly. | | | The tempest.conf file is located in directory | -| | '/home/opnfv/.rally/tempest/for-deployment-' | +| | '/home/opnfv/.rally/verification/verifier- | +| | /for-deployment-' | | | in the Functest Docker container. Use the "rally | | | deployment list" command in order to check the UUID | | | the UUID of the current deployment. | @@ -257,30 +258,6 @@ Rally The same error causes which were mentioned above for Tempest test cases, may also lead to errors in Rally as well. -It is possible to run only one Rally scenario, instead of the whole suite. -To do that, call the alternative python script as follows:: - - python $REPOS_DIR/functest/functest/opnfv_tests/OpenStack/rally/run_rally-cert.py -h - usage: run_rally-cert.py [-h] [-d] [-r] [-s] [-v] [-n] test_name - - positional arguments: - test_name Module name to be tested. Possible values are : [ - authenticate | glance | cinder | heat | keystone | neutron | - nova | quotas | requests | vm | all ] The 'all' value - performs all possible test scenarios - - optional arguments: - -h, --help show this help message and exit - -d, --debug Debug mode - -r, --report Create json result file - -s, --smoke Smoke test mode - -v, --verbose Print verbose info about the progress - -n, --noclean Don't clean the created resources for this test. - -For example, to run the Glance scenario with debug information:: - - python $REPOS_DIR/functest/functest/opnfv_tests/OpenStack/rally/run_rally-cert.py -d glance - Possible scenarios are: * authenticate * glance @@ -294,14 +271,10 @@ Possible scenarios are: * vm To know more about what those scenarios are doing, they are defined in directory: -*$REPOS_DIR/functest/functest/opnfv_tests/OpenStack/rally/scenario* +*$REPOS_DIR/functest/functest/opnfv_tests/openstack/rally/scenario* For more info about Rally scenario definition please refer to the Rally official documentation. `[3]`_ -If the flag *all* is specified, it will run all the scenarios one by one. Please -note that this might take some time (~1,5hr), taking around 1 hour alone to -complete the Nova scenario. - To check any possible problems with Rally, the logs are stored under */home/opnfv/functest/results/rally/* in the Functest Docker container. @@ -322,10 +295,8 @@ If any of the other test cases fails, check that Neutron and ODL have been correctly configured to work together. Check Neutron configuration files, accounts, IP addresses etc.). - ONOS ^^^^ - Please refer to the ONOS documentation. `ONOSFW User Guide`_ . @@ -335,14 +306,8 @@ Features Please refer to the dedicated feature user guides for details. -security_scan -^^^^^^^^^^^^^ - -See OpenSCAP web site: https://www.open-scap.org/ - - -NFV +VNF --- cloudify_ims @@ -378,10 +343,5 @@ described in the following table: +-----------------------------------+------------------------------------+ -parser -^^^^^^ - -For now log info is the only way to do trouble shooting - .. _`OPNFV Functest Developer Guide`: http://artifacts.opnfv.org/functest/docs/devguide/# -- 2.16.6