aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ansible/scale_out_test_templates.yml4
-rw-r--r--docs/release/release-notes/release-notes.rst875
-rw-r--r--docs/testing/user/userguide/08-api.rst521
-rw-r--r--samples/check_connectivity.yaml31
-rw-r--r--samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml42
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml32
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml20
-rw-r--r--samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml14
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-10.yaml260
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-2.yaml76
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-4.yaml122
-rw-r--r--samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml57
-rw-r--r--tests/opnfv/test_suites/opnfv_os-odl-fdio_dvr-noha_daily.yaml (renamed from opnfv_os-odl-fdio_dvr-noha_daily.yaml)0
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_check_connectivity.py84
-rw-r--r--yardstick/benchmark/contexts/standalone/ovs_dpdk.py1
-rw-r--r--yardstick/benchmark/scenarios/lib/check_connectivity.py99
16 files changed, 1609 insertions, 629 deletions
diff --git a/ansible/scale_out_test_templates.yml b/ansible/scale_out_test_templates.yml
index 4213816fa..487319f2a 100644
--- a/ansible/scale_out_test_templates.yml
+++ b/ansible/scale_out_test_templates.yml
@@ -40,6 +40,10 @@
dest: ../samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_{{ num_vnfs }}.yaml
- template:
+ src: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml
+ dest: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-{{ num_vnfs }}.yaml
+
+- template:
src: ../samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_out.yaml
dest: ../samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_{{ num_vnfs }}.yaml
diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst
index bbd7e8417..c998f0fbf 100644
--- a/docs/release/release-notes/release-notes.rst
+++ b/docs/release/release-notes/release-notes.rst
@@ -1,18 +1,16 @@
-=======
License
=======
-OPNFV Danube release note for Yardstick Docs
+OPNFV Euphrates release note for Yardstick 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 <http://creativecommons.org/licenses/by/4.0/>.
-The *Yardstick framework*, the *Yardstick test cases* are opensource software,
+The *Yardstick framework*, the *Yardstick test cases* are open-source software,
licensed under the terms of the Apache License, Version 2.0.
-=========================================
-OPNFV Danube Release Note for Yardstick
-=========================================
+OPNFV Euphrates Release Note for Yardstick
+==========================================
.. toctree::
:maxdepth: 2
@@ -25,35 +23,24 @@ OPNFV Danube Release Note for Yardstick
Abstract
-========
+--------
This document describes the release note of Yardstick project.
Version History
-===============
-
-+----------------+--------------------+---------------------------------+
-| *Date* | *Version* | *Comment* |
-| | | |
-+----------------+--------------------+---------------------------------+
-| | 3.2 | Yardstick for Danube release |
-| | | |
-| | | Note: The 3.2 tag is due to a |
-| | | code issue during Danube 3.1 |
-| | | release |
-| | | |
-+----------------+--------------------+---------------------------------+
-| May 4th, 2017 | 2.0 | Yardstick for Danube release |
-| | | |
-+----------------+--------------------+---------------------------------+
-| Mar 31st, 2017 | 1.0 | Yardstick for Danube release |
-| | | |
-+----------------+--------------------+---------------------------------+
+---------------
++------------------+-----------+---------------------------------+
+| *Date* | *Version* | *Comment* |
+| | | |
++------------------+-----------+---------------------------------+
+| October 20, 2017 | 5.0.0 | Yardstick for Euphrates release |
+| | | |
++------------------+-----------+---------------------------------+
Important Notes
-===============
+---------------
The software delivered in the OPNFV Yardstick_ Project, comprising the
*Yardstick framework*, the *Yardstick test cases* and the experimental
@@ -63,11 +50,10 @@ NFV-TST001_.
The *Yardstick* framework is *installer*, *infrastructure* and *application*
independent.
+OPNFV Euphrates Release
+-----------------------
-OPNFV Danube Release
-======================
-
-This Danube release provides *Yardstick* as a framework for NFVI testing
+This Euphrates release provides *Yardstick* as a framework for NFVI testing
and OPNFV feature testing, automated in the OPNFV CI pipeline, including:
* Documentation generated with Sphinx
@@ -93,9 +79,9 @@ and OPNFV feature testing, automated in the OPNFV CI pipeline, including:
* Yardstick test cases yaml files
-* Yardstick plug-in configration yaml files, plug-in install/remove scripts
+* Yardstick plug-in configuration yaml files, plug-in install/remove scripts
-For Danube release, the *Yardstick framework* is used for the following
+For Euphrates release, the *Yardstick framework* is used for the following
testing:
* OPNFV platform testing - generic test cases to measure the categories:
@@ -127,8 +113,7 @@ testing:
* virtual Traffic Classifier
The *Yardstick framework* is developed in the OPNFV community, by the
-Yardstick_ team. The *virtual Traffic Classifier* is a part of the Yardstick
-Project.
+Yardstick_ team.
.. note:: The test case description template used for the Yardstick test cases
is based on the document ETSI-ISG NFV-TST001_; the results report template
@@ -136,336 +121,201 @@ Project.
Release Data
-============
-
-+--------------------------------------+--------------------------------------+
-| **Project** | Yardstick |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Repo/tag** | yardstick/Danube.3.2 |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Yardstick Docker image tag** | Danube.3.2 |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Release designation** | Danube |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Release date** | August 15th, 2017 |
-| | |
-+--------------------------------------+--------------------------------------+
-| **Purpose of the delivery** | OPNFV Danube release 3.0 |
-| | |
-+--------------------------------------+--------------------------------------+
+------------
+
++--------------------------------+-----------------------+
+| **Project** | Yardstick |
+| | |
++--------------------------------+-----------------------+
+| **Repo/tag** | yardstick/opnfv-5.0.0 |
+| | |
++--------------------------------+-----------------------+
+| **Yardstick Docker image tag** | opnfv-5.0.0 |
+| | |
++--------------------------------+-----------------------+
+| **Release designation** | Euphrates |
+| | |
++--------------------------------+-----------------------+
+| **Release date** | October 20, 2017 |
+| | |
++--------------------------------+-----------------------+
+| **Purpose of the delivery** | OPNFV Euphrates 5.0.0 |
+| | |
++--------------------------------+-----------------------+
Deliverables
-============
+------------
Documents
----------
+^^^^^^^^^
- - User Guide: http://docs.opnfv.org/en/stable-danube/submodules/yardstick/docs/testing/user/userguide/index.html
+ - User Guide: http://docs.opnfv.org/en/stable-euphrates/submodules/yardstick/docs/testing/user/userguide/index.html
- - Developer Guide: http://docs.opnfv.org/en/stable-danube/submodules/yardstick/docs/testing/developer/devguide/index.html
+ - Developer Guide: http://docs.opnfv.org/en/stable-euphrates/submodules/yardstick/docs/testing/developer/devguide/index.html
Software Deliverables
----------------------
-
-
- - The Yardstick Docker image: https://hub.docker.com/r/opnfv/yardstick (tag: danube.3.2)
-
-
-**Contexts**
-
-+---------------------+-------------------------------------------------------+
-| **Context** | **Description** |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Heat* | Models orchestration using OpenStack Heat |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Node* | Models Baremetal, Controller, Compute |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Standalone* | Models VM running on Non-Managed NFVi |
-| | |
-+---------------------+-------------------------------------------------------+
-
-
-**Runners**
-
-+---------------------+-------------------------------------------------------+
-| **Runner** | **Description** |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Arithmetic* | Steps every run arithmetically according to specified |
-| | input value |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Duration* | Runs for a specified period of time |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Iteration* | Runs for a specified number of iterations |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Sequence* | Selects input value to a scenario from an input file |
-| | and runs all entries sequentially |
-| | |
-+---------------------+-------------------------------------------------------+
-
-
-**Scenarios**
-
-+---------------------+-------------------------------------------------------+
-| **Category** | **Delivered** |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Availability* | Attacker: |
-| | |
-| | * baremetal, process |
-| | |
-| | HA tools: |
-| | |
-| | * check host, openstack, process, service |
-| | * kill process |
-| | * start/stop service |
-| | |
-| | Monitor: |
-| | |
-| | * command, process |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Compute* | * cpuload |
-| | |
-| | * cyclictest |
-| | |
-| | * lmbench |
-| | |
-| | * lmbench_cache |
-| | |
-| | * perf |
-| | |
-| | * unixbench |
-| | |
-| | * ramspeed |
-| | |
-| | * cachestat |
-| | |
-| | * memeoryload |
-| | |
-| | * computecapacity |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Networking* | * iperf3 |
-| | |
-| | * netperf |
-| | |
-| | * netperf_node |
-| | |
-| | * ping |
-| | |
-| | * ping6 |
-| | |
-| | * pktgen |
-| | |
-| | * sfc |
-| | |
-| | * sfc with tacker |
-| | |
-| | * vtc instantion validation |
-| | |
-| | * vtc instantion validation with noisy neighbors |
-| | |
-| | * vtc throughput |
-| | |
-| | * vtc throughput in the presence of noisy neighbors |
-| | |
-| | * networkcapacity |
-| | |
-| | * netutilization |
-| | |
-| | * nstat |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Parser* | Tosca2Heat |
-| | |
-+---------------------+-------------------------------------------------------+
-| *Storage* | fio |
-| | |
-| | storagecapacity |
-| | |
-+---------------------+-------------------------------------------------------+
-| *StorPerf* | storperf |
-| | |
-+---------------------+-------------------------------------------------------+
-| *NSB* | vPE thoughput test case |
-| | |
-+---------------------+-------------------------------------------------------+
-
-
-**Test Results Output**
-
-+-----------------------------+-----------------------------------------------+
-| **Dispatcher** | **Description** |
-| | |
-+-----------------------------+-----------------------------------------------+
-| file | Log to a file. |
-| | |
-+-----------------------------+-----------------------------------------------+
-| http | Post data to html. |
-| | |
-+-----------------------------+-----------------------------------------------+
-| influxdb | Post data to influxDB. |
-| | |
-+-----------------------------+-----------------------------------------------+
-
-
-Delivered Test cases
---------------------
-
-* Generic NFVI test cases
-
- * OPNFV_YARDSTICK_TCOO1 - NW Performance
-
- * OPNFV_YARDSTICK_TCOO2 - NW Latency
-
- * OPNFV_YARDSTICK_TCOO4 - Cache Utilization
-
- * OPNFV_YARDSTICK_TCOO5 - Storage Performance
-
- * OPNFV_YARDSTICK_TCOO8 - Packet Loss Extended Test
-
- * OPNFV_YARDSTICK_TCOO9 - Packet Loss
-
- * OPNFV_YARDSTICK_TCO10 - Memory Latency
-
- * OPNFV_YARDSTICK_TCO11 - Packet Delay Variation Between VMs
-
- * OPNFV_YARDSTICK_TCO12 - Memory Bandwidth
-
- * OPNFV_YARDSTICK_TCO14 - Processing Speed
-
- * OPNFV_YARDSTICK_TCO24 - CPU Load
-
- * OPNFV_YARDSTICK_TCO37 - Latency, CPU Load, Throughput, Packet Loss
-
- * OPNFV_YARDSTICK_TCO38 - Latency, CPU Load, Throughput, Packet Loss Extended
- Test
-
- * OPNFV_YARDSTICK_TCO42 - Network Performance
-
- * OPNFV_YARDSTICK_TCO43 - Network Latency Between NFVI Nodes
-
- * OPNFV_YARDSTICK_TCO44 - Memory Utilization
-
- * OPNFV_YARDSTICK_TCO55 - Compute Capacity
-
- * OPNFV_YARDSTICK_TCO61 - Network Utilization
-
- * OPNFV_YARDSTICK_TCO63 - Storage Capacity
-
- * OPNFV_YARDSTICK_TCO69 - Memory Bandwidth
-
- * OPNFV_YARDSTICK_TCO70 - Latency, Memory Utilization, Throughput, Packet
- Loss
-
- * OPNFV_YARDSTICK_TCO71 - Latency, Cache Utilization, Throughput, Packet Loss
-
- * OPNFV_YARDSTICK_TCO72 - Latency, Network Utilization, Throughput, Packet
- Loss
-
- * OPNFV_YARDSTICK_TC073 - Network Latency and Throughput Between Nodes
-
- * OPNFV_YARDSTICK_TCO75 - Network Capacity and Scale
-
- * OPNFV_YARDSTICK_TCO76 - Network frame error rate
-
-* Test Cases for OPNFV HA Project:
-
- * OPNFV_YARDSTICK_TCO19 - HA: Control node Openstack service down
-
- * OPNFV_YARDSTICK_TC025 - HA: OpenStacK Controller Node abnormally down
-
- * OPNFV_YARDSTICK_TCO45 - HA: Control node Openstack service down - neutron
- server
+^^^^^^^^^^^^^^^^^^^^^
+
+
+ - The Yardstick Docker image: https://hub.docker.com/r/opnfv/yardstick (tag: opnfv-5.0.0)
+
+
+New Contexts
+############
+
++--------------+-------------------------------------------+
+| **Context** | **Description** |
+| | |
++--------------+-------------------------------------------+
+| *Heat* | Models orchestration using OpenStack Heat |
+| | |
++--------------+-------------------------------------------+
+| *Node* | Models Baremetal, Controller, Compute |
+| | |
++--------------+-------------------------------------------+
+| *Standalone* | Models VM running on Non-Managed NFVi |
+| | |
++--------------+-------------------------------------------+
+| *Kubernetes* | Models VM running on Non-Managed NFVi |
+| | |
++--------------+-------------------------------------------+
+
+
+New Runners
+###########
+
++--------------+-------------------------------------------------------+
+| **Runner** | **Description** |
+| | |
++--------------+-------------------------------------------------------+
+| *Arithmetic* | Steps every run arithmetically according to specified |
+| | input value |
+| | |
++--------------+-------------------------------------------------------+
+| *Duration* | Runs for a specified period of time |
+| | |
++--------------+-------------------------------------------------------+
+| *Iteration* | Runs for a specified number of iterations |
+| | |
++--------------+-------------------------------------------------------+
+| *Sequence* | Selects input value to a scenario from an input file |
+| | and runs all entries sequentially |
+| | |
++--------------+-------------------------------------------------------+
+
+
+New Scenarios
+#############
+
++----------------+-----------------------------------------------------+
+| **Category** | **Delivered** |
+| | |
++----------------+-----------------------------------------------------+
+| *Availability* | Attacker: |
+| | |
+| | * baremetal, process |
+| | |
+| | HA tools: |
+| | |
+| | * check host, openstack, process, service |
+| | * kill process |
+| | * start/stop service |
+| | |
+| | Monitor: |
+| | |
+| | * command, process |
+| | |
++----------------+-----------------------------------------------------+
+| *Compute* | * cpuload |
+| | |
+| | * cyclictest |
+| | |
+| | * lmbench |
+| | |
+| | * lmbench_cache |
+| | |
+| | * perf |
+| | |
+| | * unixbench |
+| | |
+| | * ramspeed |
+| | |
+| | * cachestat |
+| | |
+| | * memeoryload |
+| | |
+| | * computecapacity |
+| | |
++----------------+-----------------------------------------------------+
+| *Networking* | * iperf3 |
+| | |
+| | * netperf |
+| | |
+| | * netperf_node |
+| | |
+| | * ping |
+| | |
+| | * ping6 |
+| | |
+| | * pktgen |
+| | |
+| | * sfc |
+| | |
+| | * sfc with tacker |
+| | |
+| | * vtc instantion validation |
+| | |
+| | * vtc instantion validation with noisy neighbors |
+| | |
+| | * vtc throughput |
+| | |
+| | * vtc throughput in the presence of noisy neighbors |
+| | |
+| | * networkcapacity |
+| | |
+| | * netutilization |
+| | |
+| | * nstat |
+| | |
++----------------+-----------------------------------------------------+
+| *Parser* | Tosca2Heat |
+| | |
++----------------+-----------------------------------------------------+
+| *Storage* | fio |
+| | |
+| | storagecapacity |
+| | |
++----------------+-----------------------------------------------------+
+| *StorPerf* | storperf |
+| | |
++----------------+-----------------------------------------------------+
+| *NSB* | vPE thoughput test case |
+| | |
++----------------+-----------------------------------------------------+
+
+
+
+New Test cases
+^^^^^^^^^^^^^^
- * OPNFV_YARDSTICK_TC046 - HA: Control node Openstack service down - keystone
-
- * OPNFV_YARDSTICK_TCO47 - HA: Control node Openstack service down - glance
- api
-
- * OPNFV_YARDSTICK_TC048 - HA: Control node Openstack service down - cinder
- api
-
- * OPNFV_YARDSTICK_TCO49 - HA: Control node Openstack service down - swift
- proxy
-
- * OPNFV_YARDSTICK_TC050 - HA: OpenStack Controller Node Network High
- Availability
-
- * OPNFV_YARDSTICK_TCO51 - HA: OpenStack Controller Node CPU Overload High
- Availability
-
- * OPNFV_YARDSTICK_TC052 - HA: OpenStack Controller Node Disk I/O Block High
- Availability
-
- * OPNFV_YARDSTICK_TCO53 - HA: OpenStack Controller Load Balance Service High
- Availability
-
- * OPNFV_YARDSTICK_TC054 - HA: OpenStack Virtual IP High Availability
-
-* Test Case for OPNFV IPv6 Project:
-
- * OPNFV_YARDSTICK_TCO27 - IPv6 connectivity
-
-* Test Case for OPNFV KVM Project:
-
- * OPNFV_YARDSTICK_TCO28 - KVM Latency measurements
-
-* Test Case for OPNFV Parser Project:
-
- * OPNFV_YARDSTICK_TCO40 - Verify Parser Yang-to-Tosca
-
-* Test Case for OPNFV StorPerf Project:
-
- * OPNFV_YARDSTICK_TCO74 - Storperf
-
-* Test Cases for Virtual Traffic Classifier:
-
- * OPNFV_YARDSTICK_TC006 - Virtual Traffic Classifier Data Plane Throughput
-
-* Benchmarking Test:
-
- * OPNFV_YARDSTICK_TC007 - Virtual Traffic Classifier Data Plane Throughput
-
-* Benchmarking in presence of noisy neighbors Test:
-
- * OPNFV_YARDSTICK_TC020 - Virtual Traffic Classifier Instantiation Test
-
- * OPNFV_YARDSTICK_TC021 - Virtual Traffic Classifier Instantiation in
- presence of noisy neighbors Test
Version Change
-==============
+--------------
Module Version Changes
-----------------------
+^^^^^^^^^^^^^^^^^^^^^^
This is the fourth tracked release of Yardstick. It is based on following
upstream versions:
-- ONOS Ibis
-
-- OpenStack Newton
-
-- OpenDaylight Boron
+- OpenStack Ocata
Document Version Changes
-------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^
This is the fourth tracked version of the Yardstick framework in OPNFV.
It includes the following documentation updates:
@@ -480,7 +330,7 @@ It includes the following documentation updates:
Feature additions
------------------
+^^^^^^^^^^^^^^^^^
- Yardstick RESTful API support
@@ -494,7 +344,7 @@ Feature additions
- yardstick report CLI
- - Node context support openstack configuration via Ansible
+ - Node context support OpenStack configuration via Ansible
- Https support
@@ -502,78 +352,78 @@ Feature additions
Scenario Matrix
-===============
-
-For Danube 3.0, Yardstick was tested on the following scenarios:
-
-+-------------------------+---------+---------+---------+---------+
-| Scenario | Apex | Compass | Fuel | Joid |
-+=========================+=========+=========+=========+=========+
-| os-nosdn-nofeature-noha | | | X | X |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-nofeature-ha | X | X | X | X |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-nofeature-ha | | X | X | X |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-nofeature-noha| | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l3-nofeature-ha | X | X | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l3-nofeature-noha| | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-onos-sfc-ha | | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-onos-nofeature-ha | | X | | X |
-+-------------------------+---------+---------+---------+---------+
-| os-onos-nofeature-noha | | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-sfc-ha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-sfc-noha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-bgpvpn-ha | X | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-bgpvpn-noha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-kvm-ha | X | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-kvm-noha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-ovs-ha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-ovs-noha | | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-ocl-nofeature-ha | | X | | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-lxd-ha | | | | X |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-lxd-noha | | | | X |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-fdio-ha | X | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl_l2-fdio-noha | X | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-odl-gluon-noha | X | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-openo-ha | | X | | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-kvm_ovs_dpdk | | | X | |
-| -noha | | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-kvm_ovs_dpdk-ha| | | X | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-kvm_ovs_dpdk | | | X | |
-| _bar-ha | | | | |
-+-------------------------+---------+---------+---------+---------+
-| os-nosdn-kvm_ovs_dpdk | | | X | |
-| _bar-noha | | | | |
-+-------------------------+---------+---------+---------+---------+
-| opnfv_os-ovn-nofeature- | X | | | |
-| noha_daily | | | | |
-+-------------------------+---------+---------+---------+---------+
+---------------
+
+For Euphrates 5.0.0, Yardstick was tested on the following scenarios:
+
++--------------------------+------+---------+------+------+
+| Scenario | Apex | Compass | Fuel | Joid |
++==========================+======+=========+======+======+
+| os-nosdn-nofeature-noha | | | X | X |
++--------------------------+------+---------+------+------+
+| os-nosdn-nofeature-ha | X | X | X | X |
++--------------------------+------+---------+------+------+
+| os-odl_l2-nofeature-ha | | X | X | X |
++--------------------------+------+---------+------+------+
+| os-odl_l2-nofeature-noha | | | X | |
++--------------------------+------+---------+------+------+
+| os-odl_l3-nofeature-ha | X | X | X | |
++--------------------------+------+---------+------+------+
+| os-odl_l3-nofeature-noha | | | X | |
++--------------------------+------+---------+------+------+
+| os-onos-sfc-ha | | | | |
++--------------------------+------+---------+------+------+
+| os-onos-nofeature-ha | | X | | X |
++--------------------------+------+---------+------+------+
+| os-onos-nofeature-noha | | | | |
++--------------------------+------+---------+------+------+
+| os-odl_l2-sfc-ha | | | X | |
++--------------------------+------+---------+------+------+
+| os-odl_l2-sfc-noha | | | X | |
++--------------------------+------+---------+------+------+
+| os-odl_l2-bgpvpn-ha | X | | X | |
++--------------------------+------+---------+------+------+
+| os-odl_l2-bgpvpn-noha | | | X | |
++--------------------------+------+---------+------+------+
+| os-nosdn-kvm-ha | X | | X | |
++--------------------------+------+---------+------+------+
+| os-nosdn-kvm-noha | | | X | |
++--------------------------+------+---------+------+------+
+| os-nosdn-ovs-ha | | | X | |
++--------------------------+------+---------+------+------+
+| os-nosdn-ovs-noha | | | X | |
++--------------------------+------+---------+------+------+
+| os-ocl-nofeature-ha | | X | | |
++--------------------------+------+---------+------+------+
+| os-nosdn-lxd-ha | | | | X |
++--------------------------+------+---------+------+------+
+| os-nosdn-lxd-noha | | | | X |
++--------------------------+------+---------+------+------+
+| os-nosdn-fdio-ha | X | | | |
++--------------------------+------+---------+------+------+
+| os-odl_l2-fdio-noha | X | | | |
++--------------------------+------+---------+------+------+
+| os-odl-gluon-noha | X | | | |
++--------------------------+------+---------+------+------+
+| os-nosdn-openo-ha | | X | | |
++--------------------------+------+---------+------+------+
+| os-nosdn-kvm_ovs_dpdk | | | X | |
+| -noha | | | | |
++--------------------------+------+---------+------+------+
+| os-nosdn-kvm_ovs_dpdk-ha | | | X | |
++--------------------------+------+---------+------+------+
+| os-nosdn-kvm_ovs_dpdk | | | X | |
+| _bar-ha | | | | |
++--------------------------+------+---------+------+------+
+| os-nosdn-kvm_ovs_dpdk | | | X | |
+| _bar-noha | | | | |
++--------------------------+------+---------+------+------+
+| opnfv_os-ovn-nofeature- | X | | | |
+| noha_daily | | | | |
++--------------------------+------+---------+------+------+
Test results
-============
+------------
Test results are available in:
@@ -581,180 +431,81 @@ Test results are available in:
The reporting pages can be found at:
- * apex: http://testresults.opnfv.org/reporting/yardstick/release/danube/index-status-apex.html
- * compass: http://testresults.opnfv.org/reporting/yardstick/release/danube/index-status-compass.html
- * fuel: http://testresults.opnfv.org/reporting/yardstick/release/danube/index-status-fuel.html
- * joid: http://testresults.opnfv.org/reporting/yardstick/release/danube/index-status-joid.html
-
++---------------+-------------------------------------------------------------------------------------+
+| apex | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-apex.html |
++---------------+-------------------------------------------------------------------------------------+
+| compass | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-compass.html |
++---------------+-------------------------------------------------------------------------------------+
+| fuel\@x86 | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-fuel@x86.html |
++---------------+-------------------------------------------------------------------------------------+
+| fuel\@aarch64 | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-fuel@aarch64.html |
++---------------+-------------------------------------------------------------------------------------+
+| joid | http://testresults.opnfv.org/reporting/euphrates/yardstick/status-joid.html |
++---------------+-------------------------------------------------------------------------------------+
Known Issues/Faults
-------------
+^^^^^^^^^^^^^^^^^^^
- - Floating IP not supported in bgpvpn scenario
- - VM instance cannot get floating IP in compass-os-odl_l2-nofeature-ha scenario
+Corrected Faults
+^^^^^^^^^^^^^^^^
-.. note:: The faults not related to *Yardstick* framework, addressing scenarios
- which were not fully verified, are listed in the OPNFV installer's release
- notes.
+Euphrates 5.0.0:
++---------------------+--------------------------------------------+
+| **JIRA REFERENCE** | **DESCRIPTION** |
+| | |
++---------------------+--------------------------------------------+
+| JIRA: YARDSTICK-599 | Could not load EntryPoint.parse when using |
+| | 'openstack -h' |
++---------------------+--------------------------------------------+
+| JIRA: YARDSTICK-602 | Don't rely on staic ip addresses as they |
+| | are dynamic |
++---------------------+--------------------------------------------+
-Corrected Faults
-----------------
-
-Danube.3.2:
-
-+----------------------------+------------------------------------------------+
-| **JIRA REFERENCE** | **DESCRIPTION** |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-776 | Bugfix: cannot run task if without |
-| | yardstick.conf in danube |
-+----------------------------+------------------------------------------------+
-
-
-Danube.3.1:
-
-+----------------------------+------------------------------------------------+
-| **JIRA REFERENCE** | **DESCRIPTION** |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-714 | Add yardstick env influxdb/grafana command for |
-| | CentOS |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-655 | Monitor command in tc019 may not show the |
-| | real nova-api service status |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-397 | HA testing framework improvement |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-660 | Improve monitor_process pass criteria |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-657 | HA monitor_multi bug, |
-| | KeyError: 'max_outage_time' |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-647 | TC025 fault_type value is wrong when using |
-| | baremetal pod scripts |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-659 | Terminate openstack service process using kill |
-| | command in HA test cases |
-+----------------------------+------------------------------------------------+
-| JIRA: ARMBAND-275 | Yardstick TC005 fails with |
-| | "Cannot map zero-fill pages" error |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-561 | Bugfix: AttributeError: 'dict' object has no |
-| | attribute 'split' if run sample/ping-hot.yaml |
-+----------------------------+------------------------------------------------+
-| JIRA: ARMBAND-268 | ERROR No JSON object could be decoded from |
-| | LMBENCH in TC010 |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-680 | storperf test case tc074 do not get results |
-| | |
-+----------------------------+------------------------------------------------+
-
-Danube.2.0:
-
-+----------------------------+------------------------------------------------+
-| **JIRA REFERENCE** | **DESCRIPTION** |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-608 | Set work directory in Yardstick container |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-616 | Bugfix: https support should adapt insecure |
-| | situation |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-620 | Yardstick virtualenv support |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-621 | Bugfix: fix query job status in TC074 |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-622 | Bugfix: take test case modification into |
-| | effect in load_images.sh |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-623 | change openrc file path to |
-| | /etc/yardstick/openstack.creds |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-624 | Add opnfv_os-ovn-nofeature-noha_daily test |
-| | suite |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-628 | Bugfix: Make tc019 and tc025 accept |
-| | --task-args options |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-629 | Bugfix: yardstick env prepare cmd do not |
-| | support other installer |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-632 | Bugfix: KeyError when using http dispatcher |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-633 | Bugfix: Environment Compatibility Issues in HA |
-| | Test Cases |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-634 | fix ha issue when run tc050~tc054 in ci |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-635 | Bugfix: Local Openstack Operation in HA test |
-| | frameworks |
-+----------------------------+------------------------------------------------+
-
-Danube.1.0:
-
-+----------------------------+------------------------------------------------+
-| **JIRA REFERENCE** | **DESCRIPTION** |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-599 | Could not load EntryPoint.parse when using |
-| | 'openstack -h' |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-602 | Don't rely on staic ip addresses as they |
-| | are dynamic |
-+----------------------------+------------------------------------------------+
-
-
-Danube 3.2 known restrictions/issues
-====================================
+
+Euphratess 5.0.0 known restrictions/issues
+------------------------------------------
+-----------+-----------+----------------------------------------------+
-| Installer | Scenario | Issue |
+| Installer | Scenario | Issue |
+===========+===========+==============================================+
-| any | *-bgpvpn | Floating ips not supported. Some Test cases |
+| any | \*-bgpvpn | Floating ips not supported. Some Test cases |
| | | related to floating ips are excluded. |
+-----------+-----------+----------------------------------------------+
-| any | odl_l3-* | Some test cases related to using floating IP |
+| any | odl_l3-\* | Some test cases related to using floating IP |
| | | addresses fail because of a known ODL bug. |
| | | |
+-----------+-----------+----------------------------------------------+
-| compass | odl_l2-* | In some test cases, VM instance will failed |
+| compass | odl_l2-\* | In some test cases, VM instance will failed |
| | | raising network interfaces. |
| | | |
+-----------+-----------+----------------------------------------------+
Open JIRA tickets
-=================
-
-+----------------------------+------------------------------------------------+
-| **JIRA REFERENCE** | **DESCRIPTION** |
-| | |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-626 | Fio and Lmbench don't work in Ubuntu-arm64 |
-| | image |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-603 | Timeout waiting for floating ip |
-| | (which actually pingable) |
-+----------------------------+------------------------------------------------+
-| JIRA: YARDSTICK-412 | IPv6 test case should add support for newton |
-| | |
-+----------------------------+------------------------------------------------+
+-----------------
+
++---------------------+----------------------------------------------+
+| **JIRA REFERENCE** | **DESCRIPTION** |
+| | |
++---------------------+----------------------------------------------+
+| JIRA: YARDSTICK-626 | Fio and Lmbench don't work in Ubuntu-arm64 |
+| | image |
++---------------------+----------------------------------------------+
+| JIRA: YARDSTICK-603 | Timeout waiting for floating ip |
+| | (which actually pingable) |
++---------------------+----------------------------------------------+
+| JIRA: YARDSTICK-412 | IPv6 test case should add support for newton |
+| | |
++---------------------+----------------------------------------------+
Useful links
-============
+------------
- wiki project page: https://wiki.opnfv.org/display/yardstick/Yardstick
- - wiki Yardstick Danube release planing page: https://wiki.opnfv.org/display/yardstick/Yardstick+Danube+Release+Planning
+ - wiki Yardstick Euphrates release planing page: https://wiki.opnfv.org/display/yardstick/Yardstick+Euphrates+Release+Planning
- Yardstick repo: https://git.opnfv.org/cgit/yardstick
diff --git a/docs/testing/user/userguide/08-api.rst b/docs/testing/user/userguide/08-api.rst
index 1d9ea6d64..ff6e62228 100644
--- a/docs/testing/user/userguide/08-api.rst
+++ b/docs/testing/user/userguide/08-api.rst
@@ -10,7 +10,7 @@ Yardstick Restful API
Abstract
--------
-Yardstick support restful API in danube.
+Yardstick support restful API since Danube.
Available API
@@ -19,19 +19,19 @@ Available API
/yardstick/env/action
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to do some work related to environment. For now, we support:
+Description: This API is used to prepare Yardstick test environment. For Euphrates, it supports:
-1. Prepare yardstick environment(Including fetch openrc file, get external network and load images)
-2. Start a InfluxDB docker container and config yardstick output to InfluxDB.
-3. Start a Grafana docker container and config with the InfluxDB.
+1. Prepare yardstick test environment, including set external network environment variable, load Yardstick VM images and create flavors;
+2. Start an InfluxDB Docker container and config Yardstick output to InfluxDB;
+3. Start a Grafana Docker container and config it with the InfluxDB.
-Which API to call will depend on the Parameters.
+Which API to call will depend on the parameters.
Method: POST
-Prepare Yardstick Environment
+Prepare Yardstick test environment
Example::
{
@@ -41,7 +41,7 @@ Example::
This is an asynchronous API. You need to call /yardstick/asynctask API to get the task result.
-Start and Config InfluxDB docker container
+Start and config an InfluxDB docker container
Example::
{
@@ -51,7 +51,7 @@ Example::
This is an asynchronous API. You need to call /yardstick/asynctask API to get the task result.
-Start and Config Grafana docker container
+Start and config a Grafana docker container
Example::
{
@@ -64,13 +64,13 @@ This is an asynchronous API. You need to call /yardstick/asynctask API to get th
/yardstick/asynctask
^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to get the status of asynchronous task
+Description: This API is used to get the status of asynchronous tasks
Method: GET
-Get the status of asynchronous task
+Get the status of asynchronous tasks
Example::
http://localhost:8888/yardstick/asynctask?task_id=3f3f5e03-972a-4847-a5f8-154f1b31db8c
@@ -81,13 +81,13 @@ The returned status will be 0(running), 1(finished) and 2(failed).
/yardstick/testcases
^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to list all release test cases now in yardstick.
+Description: This API is used to list all released Yardstick test cases.
Method: GET
-Get a list of release test cases
+Get a list of released test cases
Example::
http://localhost:8888/yardstick/testcases
@@ -96,13 +96,13 @@ Example::
/yardstick/testcases/release/action
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to run a yardstick release test case.
+Description: This API is used to run a Yardstick released test case.
Method: POST
-Run a release test case
+Run a released test case
Example::
{
@@ -119,7 +119,7 @@ This is an asynchronous API. You need to call /yardstick/results to get the resu
/yardstick/testcases/samples/action
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to run a yardstick sample test case.
+Description: This API is used to run a Yardstick sample test case.
Method: POST
@@ -139,10 +139,25 @@ Example::
This is an asynchronous API. You need to call /yardstick/results to get the result.
+/yardstick/testcases/<testcase_name>/docs
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Description: This API is used to the documentation of a certain released test case.
+
+
+Method: GET
+
+
+Get the documentation of a certain test case
+Example::
+
+ http://localhost:8888/yardstick/taskcases/opnfv_yardstick_tc002/docs
+
+
/yardstick/testsuites/action
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Description: This API is used to run a yardstick test suite.
+Description: This API is used to run a Yardstick test suite.
Method: POST
@@ -162,11 +177,27 @@ Example::
This is an asynchronous API. You need to call /yardstick/results to get the result.
+/yardstick/tasks/<task_id>/log
+
+Description: This API is used to get the real time log of test case execution.
+
+
+Method: GET
+
+
+Get real time of test case execution
+Example::
+
+ http://localhost:8888/yardstick/tasks/14795be8-f144-4f54-81ce-43f4e3eab33f/log?index=0
+
+
/yardstick/results
^^^^^^^^^^^^^^^^^^
+Description: This API is used to get the test results of tasks. If you call /yardstick/testcases/samples/action API, it will return a task id. You can use the returned task id to get the results by using this API.
+
-Description: This API is used to get the test results of certain task. If you call /yardstick/testcases/samples/action API, it will return a task id. You can use the returned task id to get the results by using this API.
+Method: GET
Get test results of one task
@@ -175,3 +206,457 @@ Example::
http://localhost:8888/yardstick/results?task_id=3f3f5e03-972a-4847-a5f8-154f1b31db8c
This API will return a list of test case result
+
+
+/api/v2/yardstick/openrcs/action
+
+Description: This API provides functionality of handling OpenStack credential file (openrc). For Euphrates, it supports:
+
+1. Upload an openrc file for an OpenStack environment;
+2. Update an openrc file;
+3. Get openrc file information;
+4. Delete an openrc file.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Upload an openrc file for an OpenStack environment
+Example::
+
+ {
+ 'action': 'upload_openrc',
+ 'args': {
+ 'file': file,
+ 'environment_id': environment_id
+ }
+ }
+
+
+METHOD: POST
+
+
+Update an openrc file
+Example::
+
+ {
+ 'action': 'update_openrc',
+ 'args': {
+ 'openrc': {
+ "EXTERNAL_NETWORK": "ext-net",
+ "OS_AUTH_URL": "http://192.168.23.51:5000/v3",
+ "OS_IDENTITY_API_VERSION": "3",
+ "OS_IMAGE_API_VERSION": "2",
+ "OS_PASSWORD": "console",
+ "OS_PROJECT_DOMAIN_NAME": "default",
+ "OS_PROJECT_NAME": "admin",
+ "OS_TENANT_NAME": "admin",
+ "OS_USERNAME": "admin",
+ "OS_USER_DOMAIN_NAME": "default"
+ },
+ 'environment_id': environment_id
+ }
+ }
+
+
+METHOD: GET
+
+Get openrc file information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/openrcs/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+METHOD: DELETE
+
+
+Delete openrc file
+Example::
+
+ http://localhost:8888/api/v2/yardstick/openrcs/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+/api/v2/yardstick/pods/action
+
+Description: This API provides functionality of handling Yardstick pod file (pod.yaml). For Euphrates, it supports:
+
+1. Upload a pod file;
+2. Get pod file information;
+3. Delete an openrc file.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Upload a pod.yaml file
+Example::
+
+ {
+ 'action': 'upload_pod_file',
+ 'args': {
+ 'file': file,
+ 'environment_id': environment_id
+ }
+ }
+
+
+METHOD: GET
+
+Get pod file information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/pods/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+METHOD: DELETE
+
+Delete openrc file
+Example::
+
+ http://localhost:8888/api/v2/yardstick/pods/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+/api/v2/yardstick/images/action
+
+Description: This API is used to do some work related to Yardstick VM images. For Euphrates, it supports:
+
+1. Load Yardstick VM images;
+2. Get image's information;
+3. Delete images.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Load VM images
+Example::
+
+ {
+ 'action': 'load_images'
+ }
+
+
+METHOD: GET
+
+Get image information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/images/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+METHOD: DELETE
+
+Delete images
+Example::
+
+ http://localhost:8888/api/v2/yardstick/images/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+/api/v2/yardstick/tasks/action
+
+Description: This API is used to do some work related to yardstick tasks. For Euphrates, it supports:
+
+1. Create a Yardstick task;
+2. run a Yardstick task;
+3. Add a test case to a task;
+4. Add a test suite to a task;
+5. Get a tasks' information;
+6. Delete a task.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Create a Yardstick task
+Example::
+
+ {
+ 'action': 'create_task',
+ 'args': {
+ 'name': 'task1',
+ 'project_id': project_id
+ }
+ }
+
+
+METHOD: PUT
+
+
+Run a task
+Example::
+
+ {
+ 'action': 'run'
+ }
+
+
+METHOD: PUT
+
+
+Add a test case to a task
+Example::
+
+ {
+ 'action': 'add_case',
+ 'args': {
+ 'case_name': 'opnfv_yardstick_tc002',
+ 'case_content': case_content
+ }
+ }
+
+
+METHOD: PUT
+
+
+Add a test suite to a task
+Example::
+
+ {
+ 'action': 'add_suite',
+ 'args': {
+ 'suite_name': 'opnfv_smoke',
+ 'suite_content': suite_content
+ }
+ }
+
+
+METHOD: GET
+
+Get a task's information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/tasks/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+METHOD: DELETE
+
+Delete a task
+Example::
+ http://localhost:8888/api/v2/yardstick/tasks/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+/api/v2/yardstick/testcases/action
+
+Description: This API is used to do some work related to yardstick testcases. For Euphrates, it supports:
+
+1. Upload a test case;
+2. Get all released test cases' information;
+3. Get a certain released test case's information;
+4. Delete a test case.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Upload a test case
+Example::
+
+ {
+ 'action': 'upload_case',
+ 'args': {
+ 'file': file
+ }
+ }
+
+
+METHOD: GET
+
+
+Get all released test cases' information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/testcases
+
+
+METHOD: GET
+
+
+Get a certain released test case's information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/testcases/opnfv_yardstick_tc002
+
+
+METHOD: DELETE
+
+
+Delete a certain test case
+Example::
+ http://localhost:8888/api/v2/yardstick/testcases/opnfv_yardstick_tc002
+
+
+/api/v2/yardstick/testsuites/action
+
+Description: This API is used to do some work related to yardstick test suites. For Euphrates, it supports:
+
+1. Create a test suite;
+2. Get a certain test suite's information;
+3. Get all test suites;
+4. Delete a test case.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Create a test suite
+Example::
+
+ {
+ 'action': 'create_sutie',
+ 'args': {
+ 'name': <suite_name>,
+ 'testcases': [
+ 'opnfv_yardstick_tc002'
+ ]
+ }
+ }
+
+
+METHOD: GET
+
+
+Get a certain test suite's information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/testsuites/<suite_name>
+
+
+METHOD: GET
+
+
+Get all test suite
+Example::
+
+ http://localhost:8888/api/v2/yardstick/testsuites
+
+
+METHOD: DELETE
+
+
+Delete a certain test suite
+Example::
+
+ http://localhost:8888/api/v2/yardstick/testsuites/<suite_name>
+
+
+/api/v2/yardstick/projects/action
+
+Description: This API is used to do some work related to yardstick test projects. For Euphrates, it supports:
+
+1. Create a Yardstick project;
+2. Get a certain project's information;
+3. Get all projects;
+4. Delete a project.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Create a Yardstick project
+Example::
+
+ {
+ 'action': 'create_project',
+ 'args': {
+ 'name': 'project1'
+ }
+ }
+
+
+METHOD: GET
+
+
+Get a certain project's information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/projects/<project_id>
+
+
+METHOD: GET
+
+
+Get all projects' information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/projects
+
+
+METHOD: DELETE
+
+
+Delete a certain project
+Example::
+
+ http://localhost:8888/api/v2/yardstick/projects/<project_id>
+
+
+/api/v2/yardstick/containers/action
+
+Description: This API is used to do some work related to Docker containers. For Euphrates, it supports:
+
+1. Create a Grafana Docker container;
+2. Create an InfluxDB Docker container;
+3. Get a certain container's information;
+4. Delete a container.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Create a Grafana Docker container
+Example::
+
+ {
+ 'action': 'create_grafana',
+ 'args': {
+ 'environment_id': <environment_id>
+ }
+ }
+
+
+METHOD: POST
+
+
+Create an InfluxDB Docker container
+Example::
+
+ {
+ 'action': 'create_influxdb',
+ 'args': {
+ 'environment_id': <environment_id>
+ }
+ }
+
+
+METHOD: GET
+
+
+Get a certain container's information
+Example::
+
+ http://localhost:8888/api/v2/yardstick/containers/<container_id>
+
+
+METHOD: DELETE
+
+
+Delete a certain container
+Example::
+
+ http://localhost:8888/api/v2/yardstick/containers/<container_id>
diff --git a/samples/check_connectivity.yaml b/samples/check_connectivity.yaml
new file mode 100644
index 000000000..47f7d2c81
--- /dev/null
+++ b/samples/check_connectivity.yaml
@@ -0,0 +1,31 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+ type: CheckConnectivity
+ options:
+ src_ip_addr: '192.168.23.2'
+ dest_ip_addr: '192.168.23.10'
+ ssh_user: 'root'
+ ssh_passwd: 'root'
+ # ssh_key:
+ ssh_port: 22
+ ssh_timeout: 600
+ ping_parameter: "-s 2048"
+
+ runner:
+ type: Iteration
+ iterations: 1
+
+ sla:
+ status: True
+ action: assert
diff --git a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
index 78cb0fe44..9c6cd7fc4 100644
--- a/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
+++ b/samples/vnf_samples/nsut/acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
@@ -19,8 +19,8 @@ scenarios:
traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
topology: acl-tg-topology.yaml
nodes:
- tg__0: trafficgen_1.yardstick
- vnf__0: vnf.yardstick
+ tg__0: tg_0.yardstick
+ vnf__0: vnf_0.yardstick
options:
framesize:
uplink: {64B: 100}
@@ -56,27 +56,37 @@ context:
pgrp1:
policy: "availability"
servers:
- vnf:
+ vnf_0:
floating_ip: true
placement: "pgrp1"
- trafficgen_1:
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_0:
+ - xe0
+ downlink_0:
+ - xe1
+ tg_0:
floating_ip: true
placement: "pgrp1"
+ network_ports:
+ mgmt:
+ - mgmt
+ uplink_0:
+ - xe0
+ downlink_0:
+ - xe1
networks:
mgmt:
cidr: '10.0.1.0/24'
- xe0:
- cidr: '10.0.2.0/24'
+ uplink_0:
+ cidr: '10.1.0.0/24'
gateway_ip: 'null'
-# port_security_enabled: False
- allowed_address_pairs:
- - ip_address:
- '0.0.0.0/0'
- xe1:
- cidr: '10.0.3.0/24'
+ port_security_enabled: False
+ enable_dhcp: 'false'
+ downlink_0:
+ cidr: '10.1.1.0/24'
gateway_ip: 'null'
-# port_security_enabled: False
- allowed_address_pairs:
- - ip_address:
- '0.0.0.0/0'
+ port_security_enabled: False
+ enable_dhcp: 'false'
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml
index cf60ba1f9..1d9c4e1c6 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml
@@ -15,22 +15,22 @@
---
schema: yardstick:task:0.1
scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-10.yaml
- topology: vfw-tg-topology-3node-10.yaml
- nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
- vnf__0: vnf_0.yardstick
- vnf__1: vnf_1.yardstick
- vnf__2: vnf_2.yardstick
- vnf__3: vnf_3.yardstick
- vnf__4: vnf_4.yardstick
- vnf__5: vnf_5.yardstick
- vnf__6: vnf_6.yardstick
- vnf__7: vnf_7.yardstick
- vnf__8: vnf_8.yardstick
- vnf__9: vnf_9.yardstick
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-10.yaml
+ topology: vfw-tg-topology-3node-10.yaml
+ nodes:
+ tg__0: tg_0.yardstick
+ tg__1: tg_1.yardstick
+ vnf__0: vnf_0.yardstick
+ vnf__1: vnf_1.yardstick
+ vnf__2: vnf_2.yardstick
+ vnf__3: vnf_3.yardstick
+ vnf__4: vnf_4.yardstick
+ vnf__5: vnf_5.yardstick
+ vnf__6: vnf_6.yardstick
+ vnf__7: vnf_7.yardstick
+ vnf__8: vnf_8.yardstick
+ vnf__9: vnf_9.yardstick
options:
framesize:
uplink: {64B: 100}
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml
index 64633eb77..bd29ab76c 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml
@@ -15,16 +15,16 @@
---
schema: yardstick:task:0.1
scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-4.yaml
- topology: vfw-tg-topology-3node-4.yaml
- nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
- vnf__0: vnf_0.yardstick
- vnf__1: vnf_1.yardstick
- vnf__2: vnf_2.yardstick
- vnf__3: vnf_3.yardstick
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-4.yaml
+ topology: vfw-tg-topology-3node-4.yaml
+ nodes:
+ tg__0: tg_0.yardstick
+ tg__1: tg_1.yardstick
+ vnf__0: vnf_0.yardstick
+ vnf__1: vnf_1.yardstick
+ vnf__2: vnf_2.yardstick
+ vnf__3: vnf_3.yardstick
options:
framesize:
uplink: {64B: 100}
diff --git a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml
index 767ecbc1c..be15e4550 100644
--- a/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml
+++ b/samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml
@@ -15,14 +15,14 @@
---
schema: yardstick:task:0.1
scenarios:
-- type: NSPerf
- traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
- topology: vfw-tg-topology-3node-{{ num_vnfs }}.yaml
- nodes:
- tg__0: tg_0.yardstick
- tg__1: tg_1.yardstick
+ - type: NSPerf
+ traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
+ topology: vfw-tg-topology-3node-{{ num_vnfs }}.yaml
+ nodes:
+ tg__0: tg_0.yardstick
+ tg__1: tg_1.yardstick
{% for vnf_num in range(num_vnfs|int) %}
- vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
+ vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
{% endfor %}
options:
framesize:
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-10.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-10.yaml
new file mode 100644
index 000000000..99ac9e8c9
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-10.yaml
@@ -0,0 +1,260 @@
+# Copyright (c) 2016 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+nsd:nsd-catalog:
+ nsd:
+ - id: 10-vnf-correlated
+ name: 10-vnf-correlated
+ short-name: 10-vnf-correlated
+ description: 10-vnf-correlated
+ constituent-vnfd:
+ - member-vnf-index: '0'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '3'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '4'
+ vnfd-id-ref: vnf__2
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '5'
+ vnfd-id-ref: vnf__3
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '6'
+ vnfd-id-ref: vnf__4
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '7'
+ vnfd-id-ref: vnf__5
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '8'
+ vnfd-id-ref: vnf__6
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '9'
+ vnfd-id-ref: vnf__7
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '10'
+ vnfd-id-ref: vnf__8
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '11'
+ vnfd-id-ref: vnf__9
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+
+ vld:
+ - id: uplink_0
+ name: "tg__0 to vnf__0 link 0"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+ - id: downlink_0
+ name: "vnf__0 to tg__1 link 0"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1
+ - id: uplink_1
+ name: "tg__0 to vnf__1 link 1"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1
+ - id: downlink_1
+ name: "vnf__1 to tg__1 link 1"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__1
+ - id: uplink_2
+ name: "tg__0 to vnf__2 link 2"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '4'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__2
+ - id: downlink_2
+ name: "vnf__2 to tg__1 link 2"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '4'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__2
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: tg__1
+ - id: uplink_3
+ name: "tg__0 to vnf__3 link 3"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '5'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__3
+ - id: downlink_3
+ name: "vnf__3 to tg__1 link 3"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '5'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__3
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: tg__1
+ - id: uplink_4
+ name: "tg__0 to vnf__4 link 4"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe4
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '6'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__4
+ - id: downlink_4
+ name: "vnf__4 to tg__1 link 4"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '6'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__4
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe4
+ vnfd-id-ref: tg__1
+ - id: uplink_5
+ name: "tg__0 to vnf__5 link 5"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe5
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '7'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__5
+ - id: downlink_5
+ name: "vnf__5 to tg__1 link 5"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '7'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__5
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe5
+ vnfd-id-ref: tg__1
+ - id: uplink_6
+ name: "tg__0 to vnf__6 link 6"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe6
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '8'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__6
+ - id: downlink_6
+ name: "vnf__6 to tg__1 link 6"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '8'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__6
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe6
+ vnfd-id-ref: tg__1
+ - id: uplink_7
+ name: "tg__0 to vnf__7 link 7"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe7
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '9'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__7
+ - id: downlink_7
+ name: "vnf__7 to tg__1 link 7"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '9'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__7
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe7
+ vnfd-id-ref: tg__1
+ - id: uplink_8
+ name: "tg__0 to vnf__8 link 8"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe8
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '10'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__8
+ - id: downlink_8
+ name: "vnf__8 to tg__1 link 8"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '10'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__8
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe8
+ vnfd-id-ref: tg__1
+ - id: uplink_9
+ name: "tg__0 to vnf__9 link 9"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe9
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '11'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__9
+ - id: downlink_9
+ name: "vnf__9 to tg__1 link 9"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '11'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__9
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe9
+ vnfd-id-ref: tg__1
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-2.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-2.yaml
new file mode 100644
index 000000000..a1043c280
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-2.yaml
@@ -0,0 +1,76 @@
+# Copyright (c) 2016 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+nsd:nsd-catalog:
+ nsd:
+ - id: 2-vnf-correlated
+ name: 2-vnf-correlated
+ short-name: 2-vnf-correlated
+ description: 2-vnf-correlated
+ constituent-vnfd:
+ - member-vnf-index: '0'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '3'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+
+ vld:
+ - id: uplink_0
+ name: "tg__0 to vnf__0 link 0"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+ - id: downlink_0
+ name: "vnf__0 to tg__1 link 0"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1
+ - id: uplink_1
+ name: "tg__0 to vnf__1 link 1"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1
+ - id: downlink_1
+ name: "vnf__1 to tg__1 link 1"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__1
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-4.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-4.yaml
new file mode 100644
index 000000000..22e172d58
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-4.yaml
@@ -0,0 +1,122 @@
+# Copyright (c) 2016 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+nsd:nsd-catalog:
+ nsd:
+ - id: 4-vnf-correlated
+ name: 4-vnf-correlated
+ short-name: 4-vnf-correlated
+ description: 4-vnf-correlated
+ constituent-vnfd:
+ - member-vnf-index: '0'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #VNF type
+ - member-vnf-index: '2'
+ vnfd-id-ref: vnf__0
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '3'
+ vnfd-id-ref: vnf__1
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '4'
+ vnfd-id-ref: vnf__2
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+ - member-vnf-index: '5'
+ vnfd-id-ref: vnf__3
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+
+ vld:
+ - id: uplink_0
+ name: "tg__0 to vnf__0 link 0"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__0
+ - id: downlink_0
+ name: "vnf__0 to tg__1 link 0"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '2'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__0
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: tg__1
+ - id: uplink_1
+ name: "tg__0 to vnf__1 link 1"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__1
+ - id: downlink_1
+ name: "vnf__1 to tg__1 link 1"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '3'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__1
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: tg__1
+ - id: uplink_2
+ name: "tg__0 to vnf__2 link 2"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '4'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__2
+ - id: downlink_2
+ name: "vnf__2 to tg__1 link 2"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '4'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__2
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe2
+ vnfd-id-ref: tg__1
+ - id: uplink_3
+ name: "tg__0 to vnf__3 link 3"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '5'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__3
+ - id: downlink_3
+ name: "vnf__3 to tg__1 link 3"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '5'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__3
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe3
+ vnfd-id-ref: tg__1
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml
new file mode 100644
index 000000000..0052c4139
--- /dev/null
+++ b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml
@@ -0,0 +1,57 @@
+# Copyright (c) 2016 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+nsd:nsd-catalog:
+ nsd:
+ - id: {{ num_vnfs }}-vnf-correlated
+ name: {{ num_vnfs }}-vnf-correlated
+ short-name: {{ num_vnfs }}-vnf-correlated
+ description: {{ num_vnfs }}-vnf-correlated
+ constituent-vnfd:
+ - member-vnf-index: '0'
+ vnfd-id-ref: tg__0
+ VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml #VNF type
+ - member-vnf-index: '1'
+ vnfd-id-ref: tg__1
+ VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml #VNF type
+{% for vnf_num in range(num_vnfs|int) %}
+ - member-vnf-index: '{{ vnf_num + 2 }}'
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ VNF model: ../../vnf_descriptors/vfw_vnf.yaml #VNF type
+{% endfor %}
+
+ vld:
+{% for vnf_num in range(num_vnfs|int) %}
+ - id: uplink_{{ vnf_num }}
+ name: "tg__0 to vnf__{{ vnf_num }} link {{ vnf_num }}"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '0'
+ vnfd-connection-point-ref: xe{{ vnf_num }}
+ vnfd-id-ref: tg__0
+ - member-vnf-index-ref: '{{ vnf_num + 2 }}'
+ vnfd-connection-point-ref: xe0
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ - id: downlink_{{ vnf_num }}
+ name: "vnf__{{ vnf_num }} to tg__1 link {{ vnf_num }}"
+ type: ELAN
+ vnfd-connection-point-ref:
+ - member-vnf-index-ref: '{{ vnf_num + 2}}'
+ vnfd-connection-point-ref: xe1
+ vnfd-id-ref: vnf__{{ vnf_num }}
+ - member-vnf-index-ref: '1'
+ vnfd-connection-point-ref: xe{{ vnf_num }}
+ vnfd-id-ref: tg__1
+{% endfor %}
+
diff --git a/opnfv_os-odl-fdio_dvr-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-odl-fdio_dvr-noha_daily.yaml
index cd00b4c0c..cd00b4c0c 100644
--- a/opnfv_os-odl-fdio_dvr-noha_daily.yaml
+++ b/tests/opnfv/test_suites/opnfv_os-odl-fdio_dvr-noha_daily.yaml
diff --git a/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py b/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py
new file mode 100644
index 000000000..1fb2f89ca
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/lib/test_check_connectivity.py
@@ -0,0 +1,84 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Unittest for yardstick.benchmark.scenarios.lib.check_connectivity.CheckConnectivity
+
+from __future__ import absolute_import
+
+import mock
+import unittest
+
+from yardstick.benchmark.scenarios.lib import check_connectivity
+
+
+class CheckConnectivityTestCase(unittest.TestCase):
+
+ def setUp(self):
+ self.ctx = {
+ 'host': {
+ 'ip': '172.16.0.137',
+ 'user': 'root',
+ 'key_filename': 'mykey.key',
+ 'ssh_port': '22'
+ },
+ 'target': {
+ 'ipaddr': '172.16.0.138'
+ }
+ }
+
+ @mock.patch('yardstick.benchmark.scenarios.lib.check_connectivity.ssh')
+ def test_check_connectivity(self, mock_ssh):
+
+ args = {
+ 'options': {'src_ip_addr': '192.168.23.2',
+ 'dest_ip_addr': '192.168.23.10',
+ 'ssh_user': 'root',
+ 'ssh_passwd': 'root',
+ 'ssh_port': '22',
+ 'ssh_timeout': 600,
+ 'ping_parameter': "-s 2048"
+ },
+ 'sla': {'status': 'True',
+ 'action': 'assert'}
+ }
+
+ result = {}
+
+ obj = check_connectivity.CheckConnectivity(args, {})
+ obj.setup()
+ mock_ssh.SSH.execute.return_value = (0, '100', '')
+
+
+ @mock.patch('yardstick.benchmark.scenarios.lib.check_connectivity.ssh')
+ def test_check_connectivity_key(self, mock_ssh):
+
+ args = {
+ 'options': {'ssh_user': 'root',
+ 'ssh_key': '/root/.ssh/id_rsa',
+ 'ssh_port': '22',
+ 'ssh_timeout': 600,
+ 'ping_parameter': "-s 2048"
+ },
+ 'sla': {'status': 'True',
+ 'action': 'assert'}
+ }
+
+ result = {}
+
+ obj = check_connectivity.CheckConnectivity(args, self.ctx)
+ obj.setup()
+
+ mock_ssh.SSH.execute.return_value = (0, '100', '')
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/yardstick/benchmark/contexts/standalone/ovs_dpdk.py b/yardstick/benchmark/contexts/standalone/ovs_dpdk.py
index e990e46f5..fcb7bb66c 100644
--- a/yardstick/benchmark/contexts/standalone/ovs_dpdk.py
+++ b/yardstick/benchmark/contexts/standalone/ovs_dpdk.py
@@ -138,6 +138,7 @@ class OvsDpdkContext(Context):
cmd_list = [
"mkdir -p /usr/local/var/run/openvswitch",
+ "mkdir -p {}".format(os.path.dirname(log_path)),
"ovsdb-server --remote=punix:/{0}/{1} --pidfile --detach".format(vpath,
ovs_sock_path),
ovs_other_config.format("--no-wait ", "dpdk-init=true"),
diff --git a/yardstick/benchmark/scenarios/lib/check_connectivity.py b/yardstick/benchmark/scenarios/lib/check_connectivity.py
new file mode 100644
index 000000000..bdf52d4c8
--- /dev/null
+++ b/yardstick/benchmark/scenarios/lib/check_connectivity.py
@@ -0,0 +1,99 @@
+##############################################################################
+# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+from __future__ import print_function
+from __future__ import absolute_import
+
+import logging
+import yardstick.ssh as ssh
+
+from yardstick.benchmark.scenarios import base
+
+LOG = logging.getLogger(__name__)
+
+
+class CheckConnectivity(base.Scenario):
+ """Check connectivity between two VMs"""
+
+ __scenario_type__ = "CheckConnectivity"
+
+ def __init__(self, scenario_cfg, context_cfg):
+ self.scenario_cfg = scenario_cfg
+ self.context_cfg = context_cfg
+ self.options = self.scenario_cfg['options']
+
+ try:
+ self.source_ip_addr = self.options['src_ip_addr']
+ self.dest_ip_addr = self.options['dest_ip_addr']
+ except KeyError:
+ host = self.context_cfg['host']
+ target = self.context_cfg['target']
+ self.ssh_user = host.get('user', 'ubuntu')
+ self.ssh_port = host.get("ssh_port", 22)
+ self.source_ip_addr = host.get('ip', None)
+ self.dest_ip_addr = target.get('ipaddr', None)
+ self.ssh_key = host.get('key_filename', '/root/.ssh/id_rsa')
+ self.ssh_passwd = host.get('password', None)
+ self.ssh_timeout = 600
+ else:
+ self.ssh_user = self.options.get("ssh_user", 'ubuntu')
+ self.ssh_port = self.options.get("ssh_port", 22)
+ self.ssh_key = self.options.get("ssh_key", '/root/.ssh/id_rsa')
+ self.ssh_passwd = self.options.get("ssh_passwd", None)
+ self.ssh_timeout = self.options.get("ssh_timeout", 600)
+
+ self.connection = None
+ self.setup_done = False
+
+ def setup(self):
+ """scenario setup"""
+
+ if self.ssh_passwd is not None:
+ LOG.info("Log in via pw, user:%s, host:%s, pw:%s",
+ self.ssh_user, self.source_ip_addr, self.ssh_passwd)
+ self.connection = ssh.SSH(self.ssh_user,
+ self.source_ip_addr,
+ password=self.ssh_passwd,
+ port=self.ssh_port)
+ else:
+ LOG.info("Log in via key, user:%s, host:%s, key_filename:%s",
+ self.ssh_user, self.source_ip_addr, self.ssh_key)
+ self.connection = ssh.SSH(self.ssh_user,
+ self.source_ip_addr,
+ key_filename=self.ssh_key,
+ port=self.ssh_port)
+
+ self.connection.wait(timeout=self.ssh_timeout)
+ self.setup_done = True
+
+ def run(self, result): # pragma: no cover
+ """execute the test"""
+
+ if not self.setup_done:
+ self.setup()
+
+ cmd = 'ping -c 4 ' + self.dest_ip_addr
+ parameter = self.options.get('ping_parameter', None)
+ if parameter:
+ cmd += (" %s" % parameter)
+
+ LOG.info("Executing command: %s", cmd)
+ LOG.info("ping %s ==> %s", self.source_ip_addr, self.dest_ip_addr)
+ status, stdout, stderr = self.connection.execute(cmd)
+
+ conn_status = self.scenario_cfg['sla']['status']
+
+ if bool(status) != bool(conn_status):
+ LOG.info("%s ===> %s connectivity check passed!" % (self.source_ip_addr,
+ self.dest_ip_addr))
+ result['Check_Connectivity'] = 'PASS'
+ else:
+ LOG.info("%s ===> %s connectivity check failed!" % (self.source_ip_addr,
+ self.dest_ip_addr))
+ result['Check_Connectivity'] = 'FAIL'