summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ansible/roles/cpu_pin_local_teardown/tasks/main.yaml (renamed from ansible/roles/cpu_pin_local_teardowm/tasks/main.yaml)0
-rw-r--r--ansible/roles/vcpu_pin_set_setup/tasks/main.yaml2
-rwxr-xr-xapi/api-prepare.sh33
-rw-r--r--api/conf.py28
-rw-r--r--api/resources/env_action.py73
-rw-r--r--api/resources/release_action.py6
-rw-r--r--api/resources/samples_action.py4
-rw-r--r--api/urls.py1
-rw-r--r--api/utils/common.py2
-rw-r--r--api/utils/daemonthread.py4
-rw-r--r--api/utils/influx.py8
-rw-r--r--api/yardstick.ini16
-rw-r--r--dashboard/KVMFORNFV-Packet-Forwarding2636
-rw-r--r--docker/Dockerfile56
-rw-r--r--docs/testing/user/userguide/04-installation.rst6
-rw-r--r--etc/yardstick/yardstick.yaml33
-rwxr-xr-xinstall.sh47
-rw-r--r--requirements.txt3
-rw-r--r--samples/storperf.yaml2
-rwxr-xr-xtests/ci/clean_images.sh2
-rwxr-xr-xtests/ci/load_images.sh43
-rwxr-xr-xtests/ci/prepare_env.sh50
-rwxr-xr-xtests/ci/yardstick-verify15
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml2
-rw-r--r--tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml62
-rw-r--r--tests/unit/benchmark/scenarios/storage/test_storperf.py4
-rw-r--r--tests/unit/common/test_utils.py21
-rw-r--r--yardstick/__init__.py4
-rw-r--r--yardstick/benchmark/contexts/heat.py2
-rw-r--r--yardstick/benchmark/contexts/node.py9
-rw-r--r--yardstick/benchmark/contexts/standalone.py2
-rw-r--r--yardstick/benchmark/core/task.py2
-rw-r--r--yardstick/benchmark/scenarios/availability/attacker/attacker_general.py21
-rw-r--r--yardstick/benchmark/scenarios/compute/cyclictest.py6
-rw-r--r--yardstick/benchmark/scenarios/networking/pktgen_dpdk.py10
-rw-r--r--yardstick/benchmark/scenarios/storage/storperf.py7
-rw-r--r--yardstick/common/constants.py101
-rw-r--r--yardstick/common/utils.py36
-rw-r--r--yardstick/definitions.py14
39 files changed, 3037 insertions, 336 deletions
diff --git a/ansible/roles/cpu_pin_local_teardowm/tasks/main.yaml b/ansible/roles/cpu_pin_local_teardown/tasks/main.yaml
index 29475421d..29475421d 100644
--- a/ansible/roles/cpu_pin_local_teardowm/tasks/main.yaml
+++ b/ansible/roles/cpu_pin_local_teardown/tasks/main.yaml
diff --git a/ansible/roles/vcpu_pin_set_setup/tasks/main.yaml b/ansible/roles/vcpu_pin_set_setup/tasks/main.yaml
index 2a456ab9a..2278525eb 100644
--- a/ansible/roles/vcpu_pin_set_setup/tasks/main.yaml
+++ b/ansible/roles/vcpu_pin_set_setup/tasks/main.yaml
@@ -18,4 +18,4 @@
lineinfile:
dest: /etc/nova/nova.conf
insertafter: 'DEFAULT'
- line: 'vcpu_pin_set={{cpu_set}}
+ line: 'vcpu_pin_set={{cpu_set}}'
diff --git a/api/api-prepare.sh b/api/api-prepare.sh
index 5cc65c959..7632d9da9 100755
--- a/api/api-prepare.sh
+++ b/api/api-prepare.sh
@@ -8,6 +8,36 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+: ${YARDSTICK_REPO_DIR:='/home/opnfv/repos/yardstick'}
+
+# generate uwsgi config file
+mkdir -p /etc/yardstick
+uwsgi_config='/etc/yardstick/yardstick.ini'
+if [[ ! -e "${uwsgi_config}" ]];then
+
+ cat << EOF > "${uwsgi_config}"
+[uwsgi]
+master = true
+debug = true
+chdir = ${YARDSTICK_REPO_DIR}/api
+module = server
+plugins = python
+processes = 10
+threads = 5
+async = true
+max-requests = 5000
+chmod-socket = 666
+callable = app_wrapper
+enable-threads = true
+close-on-exec = 1
+daemonize= /var/log/yardstick/uwsgi.log
+socket = /var/run/yardstick.sock
+EOF
+ if [[ "${YARDSTICK_VENV}" ]];then
+ echo "virtualenv = ${YARDSTICK_VENV}" >> "${uwsgi_config}"
+ fi
+fi
+
# nginx config
nginx_config='/etc/nginx/conf.d/yardstick.conf'
@@ -24,7 +54,6 @@ server {
}
}
EOF
-echo "daemon off;" >> /etc/nginx/nginx.conf
fi
# nginx service start when boot
@@ -42,7 +71,7 @@ autorestart = true
[program:yardstick_uwsgi]
user = root
-directory = /home/opnfv/repos/yardstick/api
+directory = /etc/yardstick
command = uwsgi -i yardstick.ini
autorestart = true
EOF
diff --git a/api/conf.py b/api/conf.py
deleted file mode 100644
index a4f332533..000000000
--- a/api/conf.py
+++ /dev/null
@@ -1,28 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 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 absolute_import
-from pyroute2 import IPDB
-
-
-# configuration for influxdb
-with IPDB() as ip:
- GATEWAY_IP = ip.routes['default'].gateway
-PORT = 8086
-
-TEST_CASE_PATH = '../tests/opnfv/test_cases/'
-
-SAMPLE_PATH = '../samples/'
-
-TEST_CASE_PRE = 'opnfv_yardstick_'
-
-TEST_SUITE_PATH = '../tests/opnfv/test_suites/'
-
-TEST_SUITE_PRE = 'opnfv_'
-
-OUTPUT_CONFIG_FILE_PATH = '/etc/yardstick/yardstick.conf'
diff --git a/api/resources/env_action.py b/api/resources/env_action.py
index 9d1686a1d..f6f43e5ac 100644
--- a/api/resources/env_action.py
+++ b/api/resources/env_action.py
@@ -19,17 +19,17 @@ import glob
from six.moves import configparser
from oslo_serialization import jsonutils
+from docker import Client
-from api import conf as api_conf
from api.database.handler import AsyncTaskHandler
from api.utils import influx
from api.utils.common import result_handler
-from docker import Client
-from yardstick.common import constants as config
+from yardstick.common import constants as consts
from yardstick.common import utils as yardstick_utils
from yardstick.common import openstack_utils
from yardstick.common.httpClient import HttpClient
+
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
@@ -46,12 +46,12 @@ def createGrafanaContainer(args):
def _create_grafana(task_id):
_create_task(task_id)
- client = Client(base_url=config.DOCKER_URL)
+ client = Client(base_url=consts.DOCKER_URL)
try:
- if not _check_image_exist(client, '%s:%s' % (config.GRAFANA_IMAGE,
- config.GRAFANA_TAGS)):
- client.pull(config.GRAFANA_IMAGE, config.GRAFANA_TAGS)
+ image = '{}:{}'.format(consts.GRAFANA_IMAGE, consts.GRAFANA_TAG)
+ if not _check_image_exist(client, image):
+ client.pull(consts.GRAFANA_IMAGE, consts.GRAFANA_TAG)
_create_grafana_container(client)
@@ -64,13 +64,12 @@ def _create_grafana(task_id):
_update_task_status(task_id)
except Exception as e:
_update_task_error(task_id, str(e))
- logger.debug('Error: %s', e)
+ logger.exception('Error: %s', e)
def _create_dashboard():
- url = 'http://admin:admin@%s:3000/api/dashboards/db' % api_conf.GATEWAY_IP
- path = os.path.join(config.YARDSTICK_REPOS_DIR, 'dashboard',
- '*dashboard.json')
+ url = 'http://admin:admin@%s:3000/api/dashboards/db' % consts.GRAFANA_IP
+ path = os.path.join(consts.REPOS_DIR, 'dashboard', '*dashboard.json')
for i in sorted(glob.iglob(path)):
with open(i) as f:
@@ -79,12 +78,12 @@ def _create_dashboard():
def _create_data_source():
- url = 'http://admin:admin@%s:3000/api/datasources' % api_conf.GATEWAY_IP
+ url = 'http://admin:admin@%s:3000/api/datasources' % consts.GRAFANA_IP
data = {
"name": "yardstick",
"type": "influxdb",
"access": "proxy",
- "url": "http://%s:8086" % api_conf.GATEWAY_IP,
+ "url": "http://%s:8086" % consts.INFLUXDB_IP,
"password": "root",
"user": "root",
"database": "yardstick",
@@ -101,8 +100,8 @@ def _create_grafana_container(client):
port_bindings = {k: k for k in ports}
host_config = client.create_host_config(port_bindings=port_bindings)
- container = client.create_container(image='%s:%s' % (config.GRAFANA_IMAGE,
- config.GRAFANA_TAGS),
+ container = client.create_container(image='%s:%s' % (consts.GRAFANA_IMAGE,
+ consts.GRAFANA_TAG),
ports=ports,
detach=True,
tty=True,
@@ -126,14 +125,14 @@ def createInfluxDBContainer(args):
def _create_influxdb(task_id):
_create_task(task_id)
- client = Client(base_url=config.DOCKER_URL)
+ client = Client(base_url=consts.DOCKER_URL)
try:
_change_output_to_influxdb()
- if not _check_image_exist(client, '%s:%s' % (config.INFLUXDB_IMAGE,
- config.INFLUXDB_TAG)):
- client.pull(config.INFLUXDB_IMAGE, tag=config.INFLUXDB_TAG)
+ if not _check_image_exist(client, '%s:%s' % (consts.INFLUXDB_IMAGE,
+ consts.INFLUXDB_TAG)):
+ client.pull(consts.INFLUXDB_IMAGE, tag=consts.INFLUXDB_TAG)
_create_influxdb_container(client)
@@ -153,8 +152,8 @@ def _create_influxdb_container(client):
port_bindings = {k: k for k in ports}
host_config = client.create_host_config(port_bindings=port_bindings)
- container = client.create_container(image='%s:%s' % (config.INFLUXDB_IMAGE,
- config.INFLUXDB_TAG),
+ container = client.create_container(image='%s:%s' % (consts.INFLUXDB_IMAGE,
+ consts.INFLUXDB_TAG),
ports=ports,
detach=True,
tty=True,
@@ -165,24 +164,26 @@ def _create_influxdb_container(client):
def _config_influxdb():
try:
client = influx.get_data_db_client()
- client.create_user(config.USER, config.PASSWORD, config.DATABASE)
- client.create_database(config.DATABASE)
+ client.create_user(consts.INFLUXDB_USER,
+ consts.INFLUXDB_PASS,
+ consts.INFLUXDB_DB_NAME)
+ client.create_database(consts.INFLUXDB_DB_NAME)
logger.info('Success to config influxDB')
except Exception as e:
logger.debug('Failed to config influxDB: %s', e)
def _change_output_to_influxdb():
- yardstick_utils.makedirs(config.YARDSTICK_CONFIG_DIR)
+ yardstick_utils.makedirs(consts.CONF_DIR)
parser = configparser.ConfigParser()
- parser.read(config.YARDSTICK_CONFIG_SAMPLE_FILE)
+ parser.read(consts.CONF_SAMPLE_FILE)
parser.set('DEFAULT', 'dispatcher', 'influxdb')
parser.set('dispatcher_influxdb', 'target',
- 'http://%s:8086' % api_conf.GATEWAY_IP)
+ 'http://%s:8086' % consts.INFLUXDB_IP)
- with open(config.YARDSTICK_CONFIG_FILE, 'w') as f:
+ with open(consts.CONF_FILE, 'w') as f:
parser.write(f)
@@ -213,7 +214,7 @@ def _prepare_env_daemon(task_id):
_create_directories()
- rc_file = config.OPENSTACK_RC_FILE
+ rc_file = consts.OPENRC
if not _already_source_openrc():
_get_remote_rc_file(rc_file, installer_ip, installer_type)
@@ -240,12 +241,12 @@ def _check_variables(installer_ip, installer_type):
if installer_type == 'undefined':
raise SystemExit('Missing INSTALLER_TYPE')
- elif installer_type not in config.INSTALLERS:
+ elif installer_type not in consts.INSTALLERS:
raise SystemExit('INSTALLER_TYPE is not correct')
def _create_directories():
- yardstick_utils.makedirs(config.YARDSTICK_CONFIG_DIR)
+ yardstick_utils.makedirs(consts.CONF_DIR)
def _source_file(rc_file):
@@ -254,7 +255,7 @@ def _source_file(rc_file):
def _get_remote_rc_file(rc_file, installer_ip, installer_type):
- os_fetch_script = os.path.join(config.RELENG_DIR, config.OS_FETCH_SCRIPT)
+ os_fetch_script = os.path.join(consts.RELENG_DIR, consts.FETCH_SCRIPT)
try:
cmd = [os_fetch_script, '-d', rc_file, '-i', installer_type,
@@ -287,17 +288,15 @@ def _append_external_network(rc_file):
def _clean_images():
- cmd = [config.CLEAN_IMAGES_SCRIPT]
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- cwd=config.YARDSTICK_REPOS_DIR)
+ cmd = [consts.CLEAN_IMAGES_SCRIPT]
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, cwd=consts.REPOS_DIR)
output = p.communicate()[0]
logger.debug('The result is: %s', output)
def _load_images():
- cmd = [config.LOAD_IMAGES_SCRIPT]
- p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- cwd=config.YARDSTICK_REPOS_DIR)
+ cmd = [consts.LOAD_IMAGES_SCRIPT]
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, cwd=consts.REPOS_DIR)
output = p.communicate()[0]
logger.debug('The result is: %s', output)
diff --git a/api/resources/release_action.py b/api/resources/release_action.py
index c5aa20afc..9016d4aa2 100644
--- a/api/resources/release_action.py
+++ b/api/resources/release_action.py
@@ -11,8 +11,8 @@ import uuid
import os
import logging
-from api import conf
from api.utils import common as common_utils
+from yardstick.common import constants as consts
logger = logging.getLogger(__name__)
@@ -24,8 +24,8 @@ def runTestCase(args):
except KeyError:
return common_utils.error_handler('Lack of testcase argument')
- testcase_name = conf.TEST_CASE_PRE + testcase
- testcase = os.path.join(conf.TEST_CASE_PATH, testcase_name + '.yaml')
+ testcase_name = consts.TESTCASE_PRE + testcase
+ testcase = os.path.join(consts.TESTCASE_DIR, testcase_name + '.yaml')
task_id = str(uuid.uuid4())
diff --git a/api/resources/samples_action.py b/api/resources/samples_action.py
index 490e48b25..3093864e0 100644
--- a/api/resources/samples_action.py
+++ b/api/resources/samples_action.py
@@ -11,8 +11,8 @@ import uuid
import os
import logging
-from api import conf
from api.utils import common as common_utils
+from yardstick.common import constants as consts
logger = logging.getLogger(__name__)
@@ -24,7 +24,7 @@ def runTestCase(args):
except KeyError:
return common_utils.error_handler('Lack of testcase argument')
- testcase = os.path.join(conf.SAMPLE_PATH, testcase_name + '.yaml')
+ testcase = os.path.join(consts.SAMPLE_CASE_DIR, testcase_name + '.yaml')
task_id = str(uuid.uuid4())
diff --git a/api/urls.py b/api/urls.py
index 3ccb67dbc..b9ddd4c72 100644
--- a/api/urls.py
+++ b/api/urls.py
@@ -7,6 +7,7 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
from __future__ import absolute_import
+
from api import views
from api.utils.common import Url
diff --git a/api/utils/common.py b/api/utils/common.py
index 3e9bf8f8b..f8b0d40ba 100644
--- a/api/utils/common.py
+++ b/api/utils/common.py
@@ -11,10 +11,10 @@ import collections
import logging
from flask import jsonify
+import six
from api.utils.daemonthread import DaemonThread
from yardstick.cmd.cli import YardstickCLI
-import six
logger = logging.getLogger(__name__)
diff --git a/api/utils/daemonthread.py b/api/utils/daemonthread.py
index 0049834eb..3d5625547 100644
--- a/api/utils/daemonthread.py
+++ b/api/utils/daemonthread.py
@@ -11,7 +11,7 @@ import threading
import os
import errno
-from api import conf
+from yardstick.common import constants as consts
from api.database.handlers import TasksHandler
@@ -43,7 +43,7 @@ class DaemonThread(threading.Thread):
def _handle_testsuite_file(task_id):
try:
- os.remove(os.path.join(conf.TEST_SUITE_PATH, task_id + '.yaml'))
+ os.remove(os.path.join(consts.TESTSUITE_DIR, task_id + '.yaml'))
except OSError as e:
if e.errno != errno.ENOENT:
raise
diff --git a/api/utils/influx.py b/api/utils/influx.py
index 08996b9c9..9bc6e9abe 100644
--- a/api/utils/influx.py
+++ b/api/utils/influx.py
@@ -14,7 +14,7 @@ import six.moves.configparser as ConfigParser
from six.moves.urllib.parse import urlsplit
from influxdb import InfluxDBClient
-from api import conf
+from yardstick.common import constants as consts
logger = logging.getLogger(__name__)
@@ -22,7 +22,7 @@ logger = logging.getLogger(__name__)
def get_data_db_client():
parser = ConfigParser.ConfigParser()
try:
- parser.read(conf.OUTPUT_CONFIG_FILE_PATH)
+ parser.read(consts.CONF_FILE)
if parser.get('DEFAULT', 'dispatcher') != 'influxdb':
raise RuntimeError
@@ -35,10 +35,10 @@ def get_data_db_client():
def _get_client(parser):
ip = _get_ip(parser.get('dispatcher_influxdb', 'target'))
- username = parser.get('dispatcher_influxdb', 'username')
+ user = parser.get('dispatcher_influxdb', 'username')
password = parser.get('dispatcher_influxdb', 'password')
db_name = parser.get('dispatcher_influxdb', 'db_name')
- return InfluxDBClient(ip, conf.PORT, username, password, db_name)
+ return InfluxDBClient(ip, consts.INFLUXDB_PORT, user, password, db_name)
def _get_ip(url):
diff --git a/api/yardstick.ini b/api/yardstick.ini
deleted file mode 100644
index d2e8956e2..000000000
--- a/api/yardstick.ini
+++ /dev/null
@@ -1,16 +0,0 @@
-[uwsgi]
-master = true
-debug = true
-chdir = /home/opnfv/repos/yardstick/api
-module = server
-plugins = python
-processes = 10
-threads = 5
-async = true
-max-requests = 5000
-chmod-socket = 666
-callable = app_wrapper
-enable-threads = true
-close-on-exec = 1
-daemonize= /var/log/yardstick/uwsgi.log
-socket = /var/run/yardstick.sock
diff --git a/dashboard/KVMFORNFV-Packet-Forwarding b/dashboard/KVMFORNFV-Packet-Forwarding
new file mode 100644
index 000000000..41f8c73e4
--- /dev/null
+++ b/dashboard/KVMFORNFV-Packet-Forwarding
@@ -0,0 +1,2636 @@
+{
+ "id": 50,
+ "title": "KVMFORNFV-Packet-Forwarding",
+ "originalTitle": "KVMFORNFV-Packet-Forwarding",
+ "tags": [
+ "KVMFORNFV"
+ ],
+ "style": "dark",
+ "timezone": "browser",
+ "editable": true,
+ "hideControls": false,
+ "sharedCrosshair": false,
+ "rows": [
+ {
+ "collapse": false,
+ "editable": true,
+ "height": 35,
+ "panels": [
+ {
+ "content": "<h5 style=\"font-family:Verdana\"> <a style=\"color:#31A7D3\"><center>OPNFV_KVMFORNFV_Packet_Forwarding - Real time benchmark</center> </a></h5>\n<center>\n<p>Packet forwarding latency tests measures the time taken by a Packet generated by the traffic generator to travel from the originating device through the network to the destination device.\nFor more information see <a style=\"color:#31A7D3\"; href=\"http://artifacts.opnfv.org/kvmfornfv/docs/index.html#document-release/userguide/packet_forwarding.userguide\">Packet_Forwarding</a></p>\n</center>\n\n\n",
+ "editable": true,
+ "error": false,
+ "id": 22,
+ "links": [],
+ "mode": "html",
+ "span": 12,
+ "style": {},
+ "title": "",
+ "type": "text"
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": false,
+ "title": "About",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "editable": true,
+ "height": 460,
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 2,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '64' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput 64",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 3,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '128' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "128"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput 128",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 4,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '512' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "512"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput 512",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 5,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '1024' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "1024"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput 1024",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 6,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '1518' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "1518"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput 1518",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "KVM4NFV-pvp-tput-OVS_with_DPDK_and_vHost_User",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "460",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 7,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '64' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput 64",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 8,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '128' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "128"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput 128",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 9,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '512' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "512"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput 512",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 10,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '1024' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "1024"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput 1024",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 11,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '1518' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "1518"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput 1518",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "KVM4NFV-phy2phy-tput-OVS_with_DPDK_and_vHost_User",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "460",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 12,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '64' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput_mod_vlan 64",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 13,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '128' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "128"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput_mod_vlan 128",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 14,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '512' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "512"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput_mod_vlan 512",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 15,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '1024' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "1024"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput_mod_vlan 1024",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 16,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"phy2phy_tput_mod_vlan_OVS_with_DPDK_and_vHost_User\" WHERE \"packet_size\" = '1518' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "1518"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "phy2phy_tput_mod_vlan 1518",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "KVM4NFV-phy2phy-tput-mod_vlan-OVS_with_DPDK_and_vHost_User",
+ "titleSize": "h6"
+ },
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "460",
+ "panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 17,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_SRIOV",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_SRIOV\" WHERE \"packet_size\" = '64' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "64"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput_SRIOV 64",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 18,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_SRIOV",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_SRIOV\" WHERE \"packet_size\" = '128' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "128"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput_SRIOV 128",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 19,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_SRIOV",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_SRIOV\" WHERE \"packet_size\" = '512' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "512"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput_SRIOV 512",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 20,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_SRIOV",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_SRIOV\" WHERE \"packet_size\" = '1024' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "1024"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput_SRIOV 1024",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": "yardstick-vtc",
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 21,
+ "leftYAxisLabel": "latency",
+ "legend": {
+ "alignAsTable": true,
+ "avg": true,
+ "current": false,
+ "max": true,
+ "min": true,
+ "show": true,
+ "total": false,
+ "values": true
+ },
+ "lines": true,
+ "linewidth": 1,
+ "nullPointMode": "null",
+ "percentage": false,
+ "pointradius": 3,
+ "points": true,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 6,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "dsType": "influxdb",
+ "groupBy": [],
+ "measurement": "pvp_tput_SRIOV",
+ "policy": "default",
+ "query": "SELECT \"min_value\", \"avg_value\", \"max_value\" FROM \"pvp_tput_SRIOV\" WHERE \"packet_size\" = '1518' AND $timeFilter",
+ "refId": "A",
+ "resultFormat": "time_series",
+ "select": [
+ [
+ {
+ "params": [
+ "min_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "avg_value"
+ ],
+ "type": "field"
+ }
+ ],
+ [
+ {
+ "params": [
+ "max_value"
+ ],
+ "type": "field"
+ }
+ ]
+ ],
+ "tags": [
+ {
+ "key": "packet_size",
+ "operator": "=",
+ "value": "1518"
+ }
+ ]
+ }
+ ],
+ "thresholds": [],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "pvp_tput_SRIOV 1518",
+ "tooltip": {
+ "shared": true,
+ "sort": 0,
+ "value_type": "individual"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "xaxis": {
+ "mode": "time",
+ "name": null,
+ "show": true,
+ "values": []
+ },
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ],
+ "yaxes": [
+ {
+ "format": "ns",
+ "label": "latency",
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": true
+ },
+ {
+ "format": "short",
+ "label": null,
+ "logBase": 1,
+ "max": null,
+ "min": null,
+ "show": false
+ }
+ ]
+ }
+ ],
+ "repeat": null,
+ "repeatIteration": null,
+ "repeatRowId": null,
+ "showTitle": true,
+ "title": "KVM4NFV-pvp-tput-SRIOV",
+ "titleSize": "h6"
+ }
+ ],
+ "time": {
+ "from": "now-7d",
+ "to": "now"
+ },
+ "timepicker": {
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "7d",
+ "30d"
+ ]
+ },
+ "templating": {
+ "list": []
+ },
+ "annotations": {
+ "list": []
+ },
+ "refresh": "1d",
+ "schemaVersion": 8,
+ "version": 4,
+ "links": []
+}
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 551693554..96a5d774d 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -15,51 +15,17 @@ ARG BRANCH=master
# GIT repo directory
ENV REPOS_DIR /home/opnfv/repos
+ENV IMAGE_DIR /home/opnfv/images/
# Set work directory
-WORKDIR /home/opnfv/repos
# Yardstick repo
ENV YARDSTICK_REPO_DIR ${REPOS_DIR}/yardstick
ENV RELENG_REPO_DIR ${REPOS_DIR}/releng
-RUN sed -i -e 's/^deb /deb [arch=amd64] /g' /etc/apt/sources.list
-RUN sed -i -e 's/^deb-src /# deb-src /g' /etc/apt/sources.list
-RUN echo "APT::Default-Release \"trusty\";" > /etc/apt/apt.conf.d/default-distro
-RUN echo "\n\
-deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial-updates universe \n\
-deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty main universe multiverse restricted \n\
-deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main universe multiverse restricted \n\
-deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-security main universe multiverse restricted \n\
-deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-proposed main universe multiverse restricted" >> /etc/apt/sources.list
-RUN echo "vm.mmap_min_addr = 0" > /etc/sysctl.d/mmap_min_addr.conf
-RUN dpkg --add-architecture arm64
-RUN apt-get update && apt-get install -y \
- qemu-user-static/xenial \
- libc6:arm64 \
- wget \
- expect \
- curl \
- git \
- sshpass \
- qemu-utils \
- kpartx \
- libffi-dev \
- libssl-dev \
- libzmq-dev \
- python \
- python-dev \
- libxml2-dev \
- libxslt1-dev \
- nginx \
- uwsgi \
- uwsgi-plugin-python \
- supervisor \
- python-setuptools && \
- easy_install -U setuptools==30.0.0
-
-RUN apt-get -y autoremove && \
- apt-get clean
+RUN apt-get update && apt-get install -y git python-setuptools python-pip
+RUN easy_install -U setuptools==30.0.0
+RUN pip install appdirs==1.4.0
RUN mkdir -p ${REPOS_DIR}
@@ -67,17 +33,17 @@ RUN git config --global http.sslVerify false
RUN git clone --depth 1 -b $BRANCH https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO_DIR}
RUN git clone --depth 1 https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO_DIR}
-# install yardstick + dependencies
-RUN cd ${YARDSTICK_REPO_DIR} && easy_install -U pip
-RUN cd ${YARDSTICK_REPO_DIR} && pip install -r requirements.txt
-RUN cd ${YARDSTICK_REPO_DIR} && pip install .
+WORKDIR ${YARDSTICK_REPO_DIR}
+RUN ${YARDSTICK_REPO_DIR}/install.sh
-RUN ${YARDSTICK_REPO_DIR}/api/api-prepare.sh
+RUN echo "daemon off;" >> /etc/nginx/nginx.conf
EXPOSE 5000
-ADD http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img /home/opnfv/images/
-ADD http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img /home/opnfv/images/
+ADD http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img ${IMAGE_DIR}
+ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img ${IMAGE_DIR}
COPY ./exec_tests.sh /usr/local/bin/
+
+WORKDIR ${REPOS_DIR}
CMD ["/usr/bin/supervisord"]
diff --git a/docs/testing/user/userguide/04-installation.rst b/docs/testing/user/userguide/04-installation.rst
index 7ea40eddd..c1325cab5 100644
--- a/docs/testing/user/userguide/04-installation.rst
+++ b/docs/testing/user/userguide/04-installation.rst
@@ -212,9 +212,9 @@ The created image can be added to OpenStack using the ``glance image-create`` or
--file /tmp/workspace/yardstick/yardstick-image.img
.. _`Cirros 0.3.5`: http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
-.. _`Ubuntu 14.04`: https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
+.. _`Ubuntu 16.04`: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
-Some Yardstick test cases use a `Cirros 0.3.5`_ image and/or a `Ubuntu 14.04`_ image. Add Cirros and Ubuntu images to OpenStack::
+Some Yardstick test cases use a `Cirros 0.3.5`_ image and/or a `Ubuntu 16.04`_ image. Add Cirros and Ubuntu images to OpenStack::
openstack image create \
--disk-format qcow2 \
@@ -226,7 +226,7 @@ Some Yardstick test cases use a `Cirros 0.3.5`_ image and/or a `Ubuntu 14.04`_ i
--disk-format qcow2 \
--container-format bare \
--file $ubuntu_image_file \
- Ubuntu-14.04
+ Ubuntu-16.04
The third way
diff --git a/etc/yardstick/yardstick.yaml b/etc/yardstick/yardstick.yaml
new file mode 100644
index 000000000..5b39fa08b
--- /dev/null
+++ b/etc/yardstick/yardstick.yaml
@@ -0,0 +1,33 @@
+dir:
+ conf: /etc/yardstick
+ repos: /home/opnfv/repos/yardstick
+ releng: /home/opnfv/repos/releng
+ log: /tmp/yardstick
+
+file:
+ openrc: /etc/yardstick/openstack.creds
+ fetch_script: utils/fetch_os_creds.sh
+ clean_image_script: tests/ci/clean_images.sh
+ load_image_script: tests/ci/load_images.sh
+ output_file: /tmp/yardstick.out
+ html_file: /tmp/yardstick.htm
+
+influxdb:
+ ip: 172.17.0.1
+ port: 8086
+ username: root
+ password: root
+ db_name: yardstick
+ image: tutum/influxdb
+ tag: 0.13
+
+grafana:
+ ip: 172.17.0.1
+ port: 3000
+ username: admin
+ password: admin
+ image: grafana/grafana
+ tag: 3.1.1
+
+api:
+ server_ip: 172.17.0.1
diff --git a/install.sh b/install.sh
index a918340ca..dc2663628 100755
--- a/install.sh
+++ b/install.sh
@@ -8,8 +8,26 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+# fit for arm64
+source_file=/etc/apt/sources.list
+sed -i -e 's/^deb \([^/[]\)/deb [arch=amd64] \1/g' "${source_file}"
+sed -i -e 's/^deb-src /# deb-src /g' "${source_file}"
+echo "APT::Default-Release \"trusty\";" > /etc/apt/apt.conf.d/default-distro
+
+sub_source_file=/etc/apt/sources.list.d/yardstick.list
+touch "${sub_source_file}"
+echo -e "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial-updates universe
+deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty main universe multiverse restricted
+deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main universe multiverse restricted
+deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-security main universe multiverse restricted
+deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-proposed main universe multiverse restricted" > "${sub_source_file}"
+echo "vm.mmap_min_addr = 0" > /etc/sysctl.d/mmap_min_addr.conf
+dpkg --add-architecture arm64
+
# install tools
apt-get update && apt-get install -y \
+ qemu-user-static/xenial \
+ libc6:arm64 \
wget \
expect \
curl \
@@ -19,38 +37,29 @@ apt-get update && apt-get install -y \
kpartx \
libffi-dev \
libssl-dev \
+ libzmq-dev \
python \
python-dev \
- python-pip \
- flake8
libxml2-dev \
libxslt1-dev \
nginx \
uwsgi \
uwsgi-plugin-python \
supervisor \
- python-setuptools && \
- easy_install -U setuptools
+ python-pip \
+ vim
apt-get -y autoremove && apt-get clean
+git config --global http.sslVerify false
-# fit for arm64
-source_file=/etc/apt/sources.list
-sed -i -e 's/^deb \([^/[]\)/deb [arch=amd64] \1/g' "${source_file}"
-sed -i -e 's/^deb-src /# deb-src /g' "${source_file}"
-
-sub_source_file=/etc/apt/sources.list.d/yardstick.list
-touch "${sub_source_file}"
-echo -e "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty main universe multiverse restricted
-deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main universe multiverse restricted
-deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-security main universe multiverse restricted
-deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ trusty-proposed main universe multiverse restricted" > "${sub_source_file}"
-echo "vm.mmap_min_addr = 0" > /etc/sysctl.d/mmap_min_addr.conf
-dpkg --add-architecture arm64
-apt-get install -y qemu-user-static libc6:arm64
# install yardstick + dependencies
easy_install -U pip
pip install -r requirements.txt
-pip install .
+pip install -e .
+
+/bin/bash "$(pwd)/api/api-prepare.sh"
+
+service nginx restart
+uwsgi -i /etc/yardstick/yardstick.ini
diff --git a/requirements.txt b/requirements.txt
index 80547f5cd..0e6db69e2 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -7,7 +7,7 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-appdirs==1.4.0
+ansible==2.2.0.0
Babel==2.3.4
backport-ipaddress==0.1
cliff==2.3.0
@@ -70,6 +70,7 @@ PyYAML==3.11
requests==2.10.0
requestsexceptions==1.1.3
scp==0.10.2
+shade==1.17.0
simplejson==3.8.2
six==1.10.0
stevedore==1.17.1
diff --git a/samples/storperf.yaml b/samples/storperf.yaml
index d8641fc0c..5000759e0 100644
--- a/samples/storperf.yaml
+++ b/samples/storperf.yaml
@@ -17,7 +17,7 @@ scenarios:
type: StorPerf
options:
agent_count: 1
- agent_image: "Ubuntu-14.04"
+ agent_image: "Ubuntu-16.04"
public_network: "ext-net"
volume_size: 2
# target:
diff --git a/tests/ci/clean_images.sh b/tests/ci/clean_images.sh
index 9e5e61edf..27da9e279 100755
--- a/tests/ci/clean_images.sh
+++ b/tests/ci/clean_images.sh
@@ -19,7 +19,7 @@ cleanup()
return
fi
- for image in $(openstack image list | grep -e cirros-0.3.5 -e yardstick-image -e Ubuntu-14.04 \
+ for image in $(openstack image list | grep -e cirros-0.3.5 -e yardstick-image -e Ubuntu-16.04 \
| awk '{print $2}'); do
echo "Deleting image $image..."
openstack image delete $image || true
diff --git a/tests/ci/load_images.sh b/tests/ci/load_images.sh
index ec3ec4604..2e22b83c2 100755
--- a/tests/ci/load_images.sh
+++ b/tests/ci/load_images.sh
@@ -45,26 +45,30 @@ build_yardstick_image()
echo "========== Build yardstick cloud image =========="
if [[ "$DEPLOY_SCENARIO" == *"-lxd-"* ]]; then
- local cmd
- cmd="sudo $(which yardstick-img-lxd-modify) $(pwd)/tools/ubuntu-server-cloudimg-modify.sh"
+ if [ ! -f "${RAW_IMAGE}" ];then
+ local cmd
+ cmd="sudo $(which yardstick-img-lxd-modify) $(pwd)/tools/ubuntu-server-cloudimg-modify.sh"
- # Build the image. Retry once if the build fails
- $cmd || $cmd
+ # Build the image. Retry once if the build fails
+ $cmd || $cmd
- if [ ! -f "${RAW_IMAGE}" ]; then
- echo "Failed building RAW image"
- exit 1
+ if [ ! -f "${RAW_IMAGE}" ]; then
+ echo "Failed building RAW image"
+ exit 1
+ fi
fi
else
- local cmd
- cmd="sudo $(which yardstick-img-modify) $(pwd)/tools/ubuntu-server-cloudimg-modify.sh"
+ if [ ! -f "${QCOW_IMAGE}" ];then
+ local cmd
+ cmd="sudo $(which yardstick-img-modify) $(pwd)/tools/ubuntu-server-cloudimg-modify.sh"
- # Build the image. Retry once if the build fails
- $cmd || $cmd
+ # Build the image. Retry once if the build fails
+ $cmd || $cmd
- if [ ! -f "${QCOW_IMAGE}" ]; then
- echo "Failed building QCOW image"
- exit 1
+ if [ ! -f "${QCOW_IMAGE}" ]; then
+ echo "Failed building QCOW image"
+ exit 1
+ fi
fi
fi
}
@@ -189,7 +193,7 @@ load_ubuntu_image()
echo
echo "========== Loading ubuntu cloud image =========="
- local ubuntu_image_file=/home/opnfv/images/trusty-server-cloudimg-amd64-disk1.img
+ local ubuntu_image_file=/home/opnfv/images/xenial-server-cloudimg-amd64-disk1.img
EXTRA_PARAMS=""
# VPP requires guest memory to be backed by large pages
@@ -202,7 +206,7 @@ load_ubuntu_image()
--container-format bare \
$EXTRA_PARAMS \
--file $ubuntu_image_file \
- Ubuntu-14.04)
+ Ubuntu-16.04)
echo "$output"
UBUNTU_IMAGE_ID=$(echo "$output" | grep " id " | awk '{print $(NF-1)}')
@@ -245,6 +249,13 @@ main()
QCOW_IMAGE="/tmp/workspace/yardstick/yardstick-image.img"
RAW_IMAGE="/tmp/workspace/yardstick/yardstick-image.tar.gz"
+ if [ -f /home/opnfv/images/yardstick-image.img ];then
+ QCOW_IMAGE='/home/opnfv/images/yardstick-image.img'
+ fi
+ if [ -f /home/opnfv/images/yardstick-image.tar.gz ];then
+ RAW_IMAGE='/home/opnfv/images/yardstick-image.tar.gz'
+ fi
+
build_yardstick_image
load_yardstick_image
if [ "${YARD_IMG_ARCH}" == "arm64" ]; then
diff --git a/tests/ci/prepare_env.sh b/tests/ci/prepare_env.sh
index be59b7f37..e8f287bcd 100755
--- a/tests/ci/prepare_env.sh
+++ b/tests/ci/prepare_env.sh
@@ -21,35 +21,41 @@ export EXTERNAL_NETWORK=$(echo $EXTERNAL_NETWORK | cut -f1 -d \;)
# Create openstack credentials
echo "INFO: Creating openstack credentials .."
-OPENRC=/home/opnfv/openrc
+mkdir -p /etc/yardstick
+OPENRC=/etc/yardstick/openstack.creds
INSTALLERS=(apex compass fuel joid)
-if [ ! -f $OPENRC ]; then
- # credentials file is not given, check if environment variables are set
- # to get the creds using fetch_os_creds.sh later on
- echo "INFO: Checking environment variables INSTALLER_TYPE and INSTALLER_IP"
- if [ -z ${INSTALLER_TYPE} ]; then
- echo "environment variable 'INSTALLER_TYPE' is not defined."
- exit 1
- elif [[ ${INSTALLERS[@]} =~ ${INSTALLER_TYPE} ]]; then
- echo "INSTALLER_TYPE env variable found: ${INSTALLER_TYPE}"
- else
- echo "Invalid env variable INSTALLER_TYPE=${INSTALLER_TYPE}"
- exit 1
- fi
+RC_VAR_EXIST=false
+if [ "${OS_AUTH_URL}" -a "${OS_USERNAME}" -a "${OS_PASSWORD}" -a "${EXTERNAL_NETWORK}" ];then
+ RC_VAR_EXIST=true
+fi
- if [ "$DEPLOY_TYPE" == "virt" ]; then
- FETCH_CRED_ARG="-v -d $OPENRC -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}"
- else
- FETCH_CRED_ARG="-d $OPENRC -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}"
- fi
+if [ "${RC_VAR_EXIST}" = false ]; then
+ if [ ! -f $OPENRC ];then
+ # credentials file is not given, check if environment variables are set
+ # to get the creds using fetch_os_creds.sh later on
+ echo "INFO: Checking environment variables INSTALLER_TYPE and INSTALLER_IP"
+ if [ -z ${INSTALLER_TYPE} ]; then
+ echo "environment variable 'INSTALLER_TYPE' is not defined."
+ exit 1
+ elif [[ ${INSTALLERS[@]} =~ ${INSTALLER_TYPE} ]]; then
+ echo "INSTALLER_TYPE env variable found: ${INSTALLER_TYPE}"
+ else
+ echo "Invalid env variable INSTALLER_TYPE=${INSTALLER_TYPE}"
+ exit 1
+ fi
- $RELENG_REPO_DIR/utils/fetch_os_creds.sh $FETCH_CRED_ARG
+ if [ "$DEPLOY_TYPE" == "virt" ]; then
+ FETCH_CRED_ARG="-v -d $OPENRC -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}"
+ else
+ FETCH_CRED_ARG="-d $OPENRC -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}"
+ fi
+ $RELENG_REPO_DIR/utils/fetch_os_creds.sh $FETCH_CRED_ARG
+ fi
+ source $OPENRC
fi
-source $OPENRC
-
export EXTERNAL_NETWORK INSTALLER_TYPE DEPLOY_TYPE NODE_NAME
# Prepare a admin-rc file for StorPerf integration
diff --git a/tests/ci/yardstick-verify b/tests/ci/yardstick-verify
index 2986c9f2f..096ea534f 100755
--- a/tests/ci/yardstick-verify
+++ b/tests/ci/yardstick-verify
@@ -97,18 +97,6 @@ error_exit()
set -o errexit
set -o pipefail
-install_yardstick()
-{
- echo
- echo "========== Installing yardstick =========="
-
- # uninstall previous version
- pip uninstall -y yardstick || true
-
- # Install yardstick
- pip install .
-}
-
install_storperf()
{
# Install Storper on huawei-pod1
@@ -320,9 +308,6 @@ main()
echo " external network: $net"
done
- # install yardstick
- install_yardstick
-
source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh
trap "error_exit" EXIT SIGTERM
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml
index 14604f844..326fdf53b 100644
--- a/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc074.yaml
@@ -20,7 +20,7 @@ scenarios:
type: StorPerf
options:
agent_count: 1
- agent_image: "Ubuntu-14.04"
+ agent_image: "Ubuntu-16.04"
public_network: {{public_network}}
volume_size: 4
block_sizes: "4096"
diff --git a/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml b/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml
new file mode 100644
index 000000000..9e20186bb
--- /dev/null
+++ b/tests/opnfv/test_suites/opnfv_os-ovn-nofeature-noha_daily.yaml
@@ -0,0 +1,62 @@
+##############################################################################
+# 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
+##############################################################################
+---
+# os-ovn-nofeature-noha daily task suite
+
+schema: "yardstick:suite:0.1"
+
+name: "os-ovn-nofeature-noha"
+test_cases_dir: "tests/opnfv/test_cases/"
+test_cases:
+-
+ file_name: opnfv_yardstick_tc002.yaml
+-
+ file_name: opnfv_yardstick_tc005.yaml
+-
+ file_name: opnfv_yardstick_tc010.yaml
+-
+ file_name: opnfv_yardstick_tc011.yaml
+-
+ file_name: opnfv_yardstick_tc012.yaml
+-
+ file_name: opnfv_yardstick_tc014.yaml
+-
+ file_name: opnfv_yardstick_tc037.yaml
+-
+ file_name: opnfv_yardstick_tc055.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"pod_info": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node5.yardstick-TC055"}'
+-
+ file_name: opnfv_yardstick_tc063.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"pod_info": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node5.yardstick-TC063"}'
+-
+ file_name: opnfv_yardstick_tc069.yaml
+-
+ file_name: opnfv_yardstick_tc070.yaml
+-
+ file_name: opnfv_yardstick_tc071.yaml
+-
+ file_name: opnfv_yardstick_tc072.yaml
+-
+ file_name: opnfv_yardstick_tc075.yaml
+ constraint:
+ installer: compass
+ pod: huawei-pod1
+ task_args:
+ huawei-pod1: '{"pod_info": "etc/yardstick/nodes/compass_sclab_physical/pod.yaml",
+ "host": "node1.LF"}'
diff --git a/tests/unit/benchmark/scenarios/storage/test_storperf.py b/tests/unit/benchmark/scenarios/storage/test_storperf.py
index adc9d47c6..00054d531 100644
--- a/tests/unit/benchmark/scenarios/storage/test_storperf.py
+++ b/tests/unit/benchmark/scenarios/storage/test_storperf.py
@@ -55,7 +55,7 @@ def mocked_requests_job_get(*args, **kwargs):
self.status_code = status_code
return MockResponseJobGet(
- '{"status": "completed",\
+ '{"Status": "Completed",\
"_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}',
200)
@@ -171,7 +171,7 @@ class StorPerfTestCase(unittest.TestCase):
s = storperf.StorPerf(args, self.ctx)
s.setup_done = True
- sample_output = '{"status": "completed",\
+ sample_output = '{"Status": "Completed",\
"_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}'
expected_result = jsonutils.loads(sample_output)
diff --git a/tests/unit/common/test_utils.py b/tests/unit/common/test_utils.py
index 267c71312..8f52b53b0 100644
--- a/tests/unit/common/test_utils.py
+++ b/tests/unit/common/test_utils.py
@@ -87,24 +87,21 @@ class ImportModulesFromPackageTestCase(unittest.TestCase):
class GetParaFromYaml(unittest.TestCase):
- def test_get_para_from_yaml_file_not_exist(self):
- file_path = '/etc/yardstick/hello.yaml'
- args = 'hello.world'
- para = utils.get_para_from_yaml(file_path, args)
- self.assertIsNone(para)
-
- def test_get_para_from_yaml_para_not_found(self):
+ @mock.patch('yardstick.common.utils.os.environ.get')
+ def test_get_param_para_not_found(self, get_env):
file_path = 'config_sample.yaml'
- file_path = self._get_file_abspath(file_path)
+ get_env.return_value = self._get_file_abspath(file_path)
args = 'releng.file'
- self.assertIsNone(utils.get_para_from_yaml(file_path, args))
+ default = 'hello'
+ self.assertTrue(utils.get_param(args, default), default)
- def test_get_para_from_yaml_para_exists(self):
+ @mock.patch('yardstick.common.utils.os.environ.get')
+ def test_get_param_para_exists(self, get_env):
file_path = 'config_sample.yaml'
- file_path = self._get_file_abspath(file_path)
+ get_env.return_value = self._get_file_abspath(file_path)
args = 'releng.dir'
para = '/home/opnfv/repos/releng'
- self.assertEqual(para, utils.get_para_from_yaml(file_path, args))
+ self.assertEqual(para, utils.get_param(args))
def _get_file_abspath(self, filename):
curr_path = os.path.dirname(os.path.abspath(__file__))
diff --git a/yardstick/__init__.py b/yardstick/__init__.py
index e19be36fd..2f5ae9feb 100644
--- a/yardstick/__init__.py
+++ b/yardstick/__init__.py
@@ -20,8 +20,8 @@ from yardstick.common import utils as yardstick_utils
# without having to install apexlake.
sys.path.append(os.path.dirname(apexlake.__file__))
-yardstick_utils.makedirs(constants.YARDSTICK_LOG_DIR)
-LOG_FILE = os.path.join(constants.YARDSTICK_LOG_DIR, 'yardstick.log')
+yardstick_utils.makedirs(constants.LOG_DIR)
+LOG_FILE = os.path.join(constants.LOG_DIR, 'yardstick.log')
LOG_FORMATTER = ('%(asctime)s '
'%(name)s %(filename)s:%(lineno)d '
'%(levelname)s %(message)s')
diff --git a/yardstick/benchmark/contexts/heat.py b/yardstick/benchmark/contexts/heat.py
index eb01d096f..d5dccd2a2 100644
--- a/yardstick/benchmark/contexts/heat.py
+++ b/yardstick/benchmark/contexts/heat.py
@@ -25,7 +25,7 @@ from yardstick.benchmark.contexts.model import PlacementGroup, ServerGroup
from yardstick.benchmark.contexts.model import Server
from yardstick.benchmark.contexts.model import update_scheduler_hints
from yardstick.orchestrator.heat import HeatTemplate, get_short_key_uuid
-from yardstick.definitions import YARDSTICK_ROOT_PATH
+from yardstick.common.constants import YARDSTICK_ROOT_PATH
LOG = logging.getLogger(__name__)
diff --git a/yardstick/benchmark/contexts/node.py b/yardstick/benchmark/contexts/node.py
index 8bf915609..a4a2cfc57 100644
--- a/yardstick/benchmark/contexts/node.py
+++ b/yardstick/benchmark/contexts/node.py
@@ -19,7 +19,7 @@ import pkg_resources
from yardstick import ssh
from yardstick.benchmark.contexts.base import Context
-from yardstick.common.constants import YARDSTICK_ROOT_PATH
+from yardstick.common import constants as consts
LOG = logging.getLogger(__name__)
@@ -57,7 +57,7 @@ class NodeContext(Context):
except IOError as ioerror:
if ioerror.errno == errno.ENOENT:
self.file_path = \
- os.path.join(YARDSTICK_ROOT_PATH, self.file_path)
+ os.path.join(consts.YARDSTICK_ROOT_PATH, self.file_path)
cfg = self.read_config_file()
else:
raise
@@ -108,8 +108,7 @@ class NodeContext(Context):
def _do_ansible_job(self, path):
cmd = 'ansible-playbook -i inventory.ini %s' % path
- base = '/home/opnfv/repos/yardstick/ansible'
- p = subprocess.Popen(cmd, shell=True, cwd=base)
+ p = subprocess.Popen(cmd, shell=True, cwd=consts.ANSIBLE_DIR)
p.communicate()
def _get_server(self, attr_name):
@@ -164,7 +163,7 @@ class NodeContext(Context):
def _execute_local_script(self, info):
script, options = self._get_script(info)
- script = os.path.join(YARDSTICK_ROOT_PATH, script)
+ script = os.path.join(consts.YARDSTICK_ROOT_PATH, script)
cmd = ['bash', script, options]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
diff --git a/yardstick/benchmark/contexts/standalone.py b/yardstick/benchmark/contexts/standalone.py
index 674e57f54..78eaac7ee 100644
--- a/yardstick/benchmark/contexts/standalone.py
+++ b/yardstick/benchmark/contexts/standalone.py
@@ -20,7 +20,7 @@ import collections
import yaml
from yardstick.benchmark.contexts.base import Context
-from yardstick.definitions import YARDSTICK_ROOT_PATH
+from yardstick.common.constants import YARDSTICK_ROOT_PATH
LOG = logging.getLogger(__name__)
diff --git a/yardstick/benchmark/core/task.py b/yardstick/benchmark/core/task.py
index 40122764c..3a151dbba 100644
--- a/yardstick/benchmark/core/task.py
+++ b/yardstick/benchmark/core/task.py
@@ -503,7 +503,7 @@ def check_environment():
auth_url = os.environ.get('OS_AUTH_URL', None)
if not auth_url:
try:
- source_env(constants.OPENSTACK_RC_FILE)
+ source_env(constants.OPENRC)
except IOError as e:
if e.errno != errno.EEXIST:
raise
diff --git a/yardstick/benchmark/scenarios/availability/attacker/attacker_general.py b/yardstick/benchmark/scenarios/availability/attacker/attacker_general.py
index 24888af98..ab5e99860 100644
--- a/yardstick/benchmark/scenarios/availability/attacker/attacker_general.py
+++ b/yardstick/benchmark/scenarios/availability/attacker/attacker_general.py
@@ -40,19 +40,19 @@ class GeneralAttacker(BaseAttacker):
if "action_parameter" in self._config:
actionParameter = self._config['action_parameter']
str = util.buildshellparams(actionParameter)
- LOG.debug("inject parameter is: {0}".format(actionParameter))
- LOG.debug("inject parameter values are: {0}"
- .format(list(actionParameter.values())))
- l = list(item for item in actionParameter.values())
+ LOG.debug("inject parameter is: %s", actionParameter)
+ LOG.debug("inject parameter values are: %s",
+ list(actionParameter.values()))
+ l = list(actionParameter.values())
self.action_param = str.format(*l)
if "rollback_parameter" in self._config:
rollbackParameter = self._config['rollback_parameter']
str = util.buildshellparams(rollbackParameter)
- LOG.debug("recover parameter is: {0}".format(rollbackParameter))
- LOG.debug("recover parameter values are: {0}".
- format(list(rollbackParameter.values())))
- l = list(item for item in rollbackParameter.values())
+ LOG.debug("recover parameter is: %s", rollbackParameter)
+ LOG.debug("recover parameter values are: %s",
+ list(rollbackParameter.values()))
+ l = list(rollbackParameter.values())
self.rollback_param = str.format(*l)
self.fault_cfg = BaseAttacker.attacker_cfgs.get(self.attack_key)
@@ -77,10 +77,9 @@ class GeneralAttacker(BaseAttacker):
"/bin/bash -s ",
stdin=stdin_file)
- LOG.debug("the inject_fault's exit status is: {0}".format(exit_status))
+ LOG.debug("the inject_fault's exit status is: %s", exit_status)
if exit_status == 0:
- LOG.debug("success,the inject_fault's output is: {0}"
- .format(stdout))
+ LOG.debug("success,the inject_fault's output is: %s", stdout)
else:
LOG.error(
"the inject_fault's error, stdout:%s, stderr:%s",
diff --git a/yardstick/benchmark/scenarios/compute/cyclictest.py b/yardstick/benchmark/scenarios/compute/cyclictest.py
index ae1d37324..9ca3a8a37 100644
--- a/yardstick/benchmark/scenarios/compute/cyclictest.py
+++ b/yardstick/benchmark/scenarios/compute/cyclictest.py
@@ -172,14 +172,15 @@ class Cyclictest(base.Scenario):
options = self.scenario_cfg["options"]
affinity = options.get("affinity", 1)
+ breaktrace = options.get("breaktrace", 1000)
interval = options.get("interval", 1000)
priority = options.get("priority", 99)
loops = options.get("loops", 1000)
threads = options.get("threads", 1)
histogram = options.get("histogram", 90)
- cmd_args = "-a %s -i %s -p %s -l %s -t %s -h %s %s" \
- % (affinity, interval, priority, loops,
+ cmd_args = "-a %s -b %s -i %s -p %s -l %s -t %s -h %s %s" \
+ % (affinity, breaktrace, interval, priority, loops,
threads, histogram, default_args)
cmd = "bash cyclictest_benchmark.sh %s" % (cmd_args)
LOG.debug("Executing command: %s", cmd)
@@ -221,6 +222,7 @@ def _test(): # pragma: no cover
options = {
"affinity": 2,
+ "breaktrace": 1000,
"interval": 100,
"priority": 88,
"loops": 10000,
diff --git a/yardstick/benchmark/scenarios/networking/pktgen_dpdk.py b/yardstick/benchmark/scenarios/networking/pktgen_dpdk.py
index 0b70629f8..7e3044dbb 100644
--- a/yardstick/benchmark/scenarios/networking/pktgen_dpdk.py
+++ b/yardstick/benchmark/scenarios/networking/pktgen_dpdk.py
@@ -137,10 +137,12 @@ class PktgenDPDKLatency(base.Scenario):
# wait for finishing test
time.sleep(1)
- cmd = "cat ~/result.log -vT \
- |awk '{match($0,/\[8;40H +[0-9]+/)} \
- {print substr($0,RSTART,RLENGTH)}' \
- |grep -v ^$ |awk '{if ($2 != 0) print $2}'"
+ cmd = r"""\
+cat ~/result.log -vT \
+|awk '{match($0,/\[8;40H +[0-9]+/)} \
+{print substr($0,RSTART,RLENGTH)}' \
+|grep -v ^$ |awk '{if ($2 != 0) print $2}'\
+"""
client_status, client_stdout, client_stderr = self.client.execute(cmd)
if client_status:
diff --git a/yardstick/benchmark/scenarios/storage/storperf.py b/yardstick/benchmark/scenarios/storage/storperf.py
index 6ea035133..672cfaba2 100644
--- a/yardstick/benchmark/scenarios/storage/storperf.py
+++ b/yardstick/benchmark/scenarios/storage/storperf.py
@@ -117,7 +117,8 @@ class StorPerf(base.Scenario):
"""Query the status of the supplied job_id and report on metrics"""
LOG.info("Fetching report for %s...", job_id)
report_res = requests.get('http://{}:5000/api/v1.0/jobs'.format
- (self.target), params={'id': job_id})
+ (self.target),
+ params={'id': job_id, 'type': 'status'})
report_res_content = jsonutils.loads(
report_res.content)
@@ -126,10 +127,10 @@ class StorPerf(base.Scenario):
raise RuntimeError("Failed to fetch report, error message:",
report_res_content["message"])
else:
- job_status = report_res_content["status"]
+ job_status = report_res_content["Status"]
LOG.debug("Job is: %s...", job_status)
- self.job_completed = job_status == "completed"
+ self.job_completed = job_status == "Completed"
# TODO: Support using StorPerf ReST API to read Job ETA.
diff --git a/yardstick/common/constants.py b/yardstick/common/constants.py
index 6550cc8fd..cb98c356d 100644
--- a/yardstick/common/constants.py
+++ b/yardstick/common/constants.py
@@ -9,61 +9,78 @@
from __future__ import absolute_import
import os
-DOCKER_URL = 'unix://var/run/docker.sock'
-
-# database config
-USER = 'root'
-PASSWORD = 'root'
-DATABASE = 'yardstick'
-
-INFLUXDB_IMAGE = 'tutum/influxdb'
-INFLUXDB_TAG = '0.13'
+from yardstick.common.utils import get_param
-GRAFANA_IMAGE = 'grafana/grafana'
-GRAFANA_TAGS = '3.1.1'
dirname = os.path.dirname
abspath = os.path.abspath
join = os.path.join
sep = os.path.sep
-INSTALLERS = ['apex', 'compass', 'fuel', 'joid']
-
+try:
+ SERVER_IP = get_param('api.server_ip')
+except KeyError:
+ try:
+ from pyroute2 import IPDB
+ except ImportError:
+ SERVER_IP = '172.17.0.1'
+ else:
+ with IPDB() as ip:
+ SERVER_IP = ip.routes['default'].gateway
+
+# dir
+CONF_DIR = get_param('dir.conf', '/etc/yardstick')
+REPOS_DIR = get_param('dir.repos', '/home/opnfv/repos/yardstick')
+RELENG_DIR = get_param('dir.releng', '/home/opnfv/repos/releng')
+LOG_DIR = get_param('dir.log', '/tmp/yardstick/')
YARDSTICK_ROOT_PATH = dirname(dirname(dirname(abspath(__file__)))) + sep
-
+CONF_SAMPLE_DIR = join(REPOS_DIR, 'etc/yardstick/')
+ANSIBLE_DIR = join(REPOS_DIR, 'ansible')
+SAMPLE_CASE_DIR = join(REPOS_DIR, 'samples')
TESTCASE_DIR = join(YARDSTICK_ROOT_PATH, 'tests/opnfv/test_cases/')
-
TESTSUITE_DIR = join(YARDSTICK_ROOT_PATH, 'tests/opnfv/test_suites/')
-YARDSTICK_REPOS_DIR = '/home/opnfv/repos/yardstick'
-
-YARDSTICK_LOG_DIR = '/tmp/yardstick/'
-
-YARDSTICK_CONFIG_DIR = '/etc/yardstick/'
-
-YARDSTICK_CONFIG_FILE = join(YARDSTICK_CONFIG_DIR, 'yardstick.conf')
-
-YARDSTICK_CONFIG_SAMPLE_DIR = join(YARDSTICK_ROOT_PATH, 'etc/yardstick/')
-
-YARDSTICK_CONFIG_SAMPLE_FILE = join(YARDSTICK_CONFIG_SAMPLE_DIR,
- 'yardstick.conf.sample')
-
-RELENG_DIR = '/home/opnfv/repos/releng'
-
-OS_FETCH_SCRIPT = 'utils/fetch_os_creds.sh'
-
-CLEAN_IMAGES_SCRIPT = 'tests/ci/clean_images.sh'
-
-LOAD_IMAGES_SCRIPT = 'tests/ci/load_images.sh'
-
-OPENSTACK_RC_FILE = join(YARDSTICK_CONFIG_DIR, 'openstack.creds')
+# file
+OPENRC = get_param('file.openrc', '/etc/yardstick/openstack.creds')
+CONF_FILE = join(CONF_DIR, 'yardstick.conf')
+CONF_SAMPLE_FILE = join(CONF_SAMPLE_DIR, 'yardstick.conf.sample')
+FETCH_SCRIPT = get_param('file.fetch_script', 'utils/fetch_os_creds.sh')
+FETCH_SCRIPT = join(RELENG_DIR, FETCH_SCRIPT)
+CLEAN_IMAGES_SCRIPT = get_param('file.clean_image_script',
+ 'tests/ci/clean_images.sh')
+CLEAN_IMAGES_SCRIPT = join(REPOS_DIR, CLEAN_IMAGES_SCRIPT)
+LOAD_IMAGES_SCRIPT = get_param('file.load_image_script',
+ 'tests/ci/load_images.sh')
+LOAD_IMAGES_SCRIPT = join(REPOS_DIR, LOAD_IMAGES_SCRIPT)
+DEFAULT_OUTPUT_FILE = get_param('file.output_file', '/tmp/yardstick.out')
+DEFAULT_HTML_FILE = get_param('file.html_file', '/tmp/yardstick.htm')
+
+# influxDB
+INFLUXDB_IP = get_param('influxdb.ip', SERVER_IP)
+INFLUXDB_PORT = get_param('influxdb.port', 8086)
+INFLUXDB_USER = get_param('influxdb.username', 'root')
+INFLUXDB_PASS = get_param('influxdb.password', 'root')
+INFLUXDB_DB_NAME = get_param('influxdb.db_name', 'yardstick')
+INFLUXDB_IMAGE = get_param('influxdb.image', 'tutum/influxdb')
+INFLUXDB_TAG = get_param('influxdb.tag', '0.13')
+
+# grafana
+GRAFANA_IP = get_param('grafana.ip', SERVER_IP)
+GRAFANA_PORT = get_param('grafana.port', 3000)
+GRAFANA_USER = get_param('grafana.username', 'admin')
+GRAFANA_PASS = get_param('grafana.password', 'admin')
+GRAFANA_IMAGE = get_param('grafana.image', 'grafana/grafana')
+GRAFANA_TAG = get_param('grafana.tag', '3.1.1')
+
+# api
+DOCKER_URL = 'unix://var/run/docker.sock'
+INSTALLERS = ['apex', 'compass', 'fuel', 'joid']
+SQLITE = 'sqlite:////tmp/yardstick.db'
BASE_URL = 'http://localhost:5000'
ENV_ACTION_API = BASE_URL + '/yardstick/env/action'
ASYNC_TASK_API = BASE_URL + '/yardstick/asynctask'
-SQLITE = 'sqlite:////tmp/yardstick.db'
-
-DEFAULT_OUTPUT_FILE = '/tmp/yardstick.out'
-
-DEFAULT_HTML_FILE = '/tmp/yardstick.htm'
+# general
+TESTCASE_PRE = 'opnfv_yardstick_'
+TESTSUITE_PRE = 'opnfv_'
diff --git a/yardstick/common/utils.py b/yardstick/common/utils.py
index d2be8000e..7035f3374 100644
--- a/yardstick/common/utils.py
+++ b/yardstick/common/utils.py
@@ -84,26 +84,30 @@ def import_modules_from_package(package):
try_append_module(module_name, sys.modules)
-def get_para_from_yaml(file_path, args):
-
- def func(a, b):
- if a is None:
- return None
- return a.get(b)
-
- if os.path.exists(file_path):
+def parse_yaml(file_path):
+ try:
with open(file_path) as f:
value = yaml.safe_load(f)
- value = reduce(func, args.split('.'), value)
+ except IOError:
+ return {}
+ except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
+ else:
+ return value
- if value is None:
- print('parameter not found')
- return None
- return value
- else:
- print('file not exist')
- return None
+def get_param(key, default=''):
+
+ conf_file = os.environ.get('CONF_FILE', '/etc/yardstick/yardstick.yaml')
+
+ conf = parse_yaml(conf_file)
+ try:
+ return reduce(lambda a, b: a[b], key.split('.'), conf)
+ except KeyError:
+ if not default:
+ raise
+ return default
def makedirs(d):
diff --git a/yardstick/definitions.py b/yardstick/definitions.py
deleted file mode 100644
index 64a4a80d4..000000000
--- a/yardstick/definitions.py
+++ /dev/null
@@ -1,14 +0,0 @@
-##############################################################################
-# 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 absolute_import
-import os
-
-dirname = os.path.dirname
-YARDSTICK_ROOT_PATH = dirname(dirname(os.path.abspath(__file__)))
-YARDSTICK_ROOT_PATH += os.path.sep