summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xci/exec_test.sh2
-rw-r--r--docs/com/img/OPNFV_testing_group.pngbin0 -> 87295 bytes
-rw-r--r--docs/com/img/teamSummitBerlin.pngbin845680 -> 899923 bytes
-rwxr-xr-xdocs/com/pres/conversation.html61
-rwxr-xr-xdocs/com/pres/testapi.html26
-rw-r--r--testcases/Controllers/ODL/custom_tests/neutron/040__delete_ports.robot14
-rw-r--r--testcases/Controllers/ODL/custom_tests/neutron/050__delete_subnets.robot14
-rw-r--r--testcases/Controllers/ODL/custom_tests/neutron/060__delete_networks.robot16
-rw-r--r--testcases/Controllers/ODL/odlreport2db.py4
-rw-r--r--testcases/Controllers/ONOS/Teston/onosfunctest.py2
-rwxr-xr-xtestcases/OpenStack/rally/run_rally-cert.py9
-rw-r--r--testcases/OpenStack/tempest/run_tempest.py11
-rw-r--r--testcases/OpenStack/vPing/vPing_ssh.py2
-rw-r--r--testcases/OpenStack/vPing/vPing_userdata.py2
-rw-r--r--testcases/security_scan/security_scan.py7
-rw-r--r--testcases/vIMS/vIMS.py4
-rw-r--r--utils/openstack_utils.py17
17 files changed, 134 insertions, 57 deletions
diff --git a/ci/exec_test.sh b/ci/exec_test.sh
index 04f38e6a8..9d8d83d66 100755
--- a/ci/exec_test.sh
+++ b/ci/exec_test.sh
@@ -134,7 +134,7 @@ function run_test(){
# ${repos_dir}/ovno/Testcases/RunTests.sh
;;
"security_scan")
- echo "Sourcing Credentials ${FUNCTEST_CONF_DIR}/stackrc for security_scan test.."
+ echo "Sourcing Credentials ${FUNCTEST_CONF_DIR}/stackrc for undercloud .."
source ${FUNCTEST_CONF_DIR}/stackrc
python ${FUNCTEST_REPO_DIR}/testcases/security_scan/security_scan.py --config ${FUNCTEST_REPO_DIR}/testcases/security_scan/config.ini
;;
diff --git a/docs/com/img/OPNFV_testing_group.png b/docs/com/img/OPNFV_testing_group.png
new file mode 100644
index 000000000..4b8c2c053
--- /dev/null
+++ b/docs/com/img/OPNFV_testing_group.png
Binary files differ
diff --git a/docs/com/img/teamSummitBerlin.png b/docs/com/img/teamSummitBerlin.png
index f4fc8cb4f..d5c7f46aa 100644
--- a/docs/com/img/teamSummitBerlin.png
+++ b/docs/com/img/teamSummitBerlin.png
Binary files differ
diff --git a/docs/com/pres/conversation.html b/docs/com/pres/conversation.html
index 0fab448a2..df14f5142 100755
--- a/docs/com/pres/conversation.html
+++ b/docs/com/pres/conversation.html
@@ -63,7 +63,8 @@
<section data-markdown>
# Who are we?
- ![alt text](https://wiki.opnfv.org/download/attachments/2926690/Testing.png "OPNFV testing group")
+ ![team](../img/OPNFV_testing_group.png)
+ This is a representation...not a governance!
</section>
<section>
<section>
@@ -83,7 +84,7 @@
<tr>
<td>Yardstick</td>
<td>Umbrella project for performance/qualification testing</td>
- </tr>
+ </tr>
<tr>
<td>CPerf</td>
<td>SDN controller performance testing</td>
@@ -98,7 +99,11 @@
</tr>
<tr>
<td>Bottlenecks</td>
- <td>Detect possible bottlenecks </td>
+ <td>Detect possible bottlenecks</td>
+ </tr>
+ <tr>
+ <td>QTIP</td>
+ <td>Benchmark to boost performance</td>
</tr>
</tbody>
</table>
@@ -118,10 +123,10 @@
* Performance testing framework and NFVI Validation
* [Contributors](https://wiki.opnfv.org/display/yardstick/People)
* Yardstick presentation
- * How to Do a Pre-deployment NFVI Validation Quickly and Efficiently? Wednesday, June 22, 4:00 PM - 4:30 PM
- * Yardstick: A Pre-deployment NFVI Validation Tool. Thursday, June 23, 3:10 PM - 3:30 PM
+ * How to Do a Pre-deployment NFVI Validation Quickly and Efficiently? Wednesday, June 22, 4:00 PM - 4:30 PM
+ * Yardstick: A Pre-deployment NFVI Validation Tool. Thursday, June 23, 3:10 PM - 3:30 PM
* breakout sessions
- * Tomorrow 2PM (Yardstick in C)
+ * Tomorrow 2PM (Yardstick in C)
</section>
<section data-markdown>
# CPerf
@@ -131,6 +136,13 @@
</section>
<section data-markdown>
# StorPerf
+ * Cinder Volume Performance Testing
+ * Based on SNIA's SSD Test Specification
+ * Presentation
+ * StorPerf: Cinder Storage Performance Measurement.
+ Wednesday, June 22, 3:40 PM - 3:55 PM
+ * Breakout Session
+ * Tomorrow 10:15 (StorPerf Test Results Working Session)
</section>
<section data-markdown>
# VSPerf
@@ -138,21 +150,38 @@
<section data-markdown>
# Bottlenecks
</section>
+ <section data-markdown>
+ # QTIP
+
+ ## OPNFV Platform Benchmark
+
+ - Bottom up
+ - testing baremetal components first
+ - More than result
+ - comparing against reference
+ - Setup-Test-Diagnose-Improve
+ - a closed loop to boost platform performance
+
+ ## Breakout session
+
+ - 14:30~15:45, June 21st/Tuesday
+ - Room Tegel
+ </section>
</section>
<section>
<section data-markdown>
- # Upstream, upstream, upstream..
+ # Upstream, upstream, upstream..
</section>
<section data-markdown>
## We are on the shoulders of the giants
* Rally (OpenStack)
* ODL, ONOS, ...
* RobotFramework, Teston
- * .....
+ * .....
</section>
<section data-markdown>
- ## Time to give back
- ### How to improve work with testing upstream community
+ ## Time to give back
+ ### How to improve work with testing upstream community
</section>
</section>
@@ -162,20 +191,20 @@
<section data-markdown>
# Towards Telco Cloud KPI?
</section>
-
+
<section data-markdown>
# Testing group goals
* Define common needs (naming, rules, tools...)
- * Unify result collection, reporting, dashboarding, documentation
- * Share best practice: docker, CLI, ..
+ * Unify result collection, reporting, dashboarding, documentation
+ * Share best practice: docker, CLI, ..
* Identify testing domains
- * Encourage testing in poorly covered areas
+ * Encourage testing in poorly covered areas
</section>
<section data-markdown>
# The ultimate goal: define Telco Cloud KPIs
* Provide methodology and test suites to qualify a Telco Cloud
- * Provide reference benchs for plugfest/third party integration: compare apple with apple
+ * Provide reference benchs for plugfest/third party integration: compare apple with apple
</section>
</section>
@@ -186,7 +215,7 @@
</div>
<div class='footer'>
- <img src="../img/logo-OPNFV.png" alt="OPNFV logo">
+ <img src="../img/logo-OPNFV-Berlin.png" alt="OPNFV logo">
</div>
</div>
diff --git a/docs/com/pres/testapi.html b/docs/com/pres/testapi.html
index 37a8ea356..a0e266a19 100755
--- a/docs/com/pres/testapi.html
+++ b/docs/com/pres/testapi.html
@@ -62,9 +62,9 @@
</section>
<section data-markdown>
## Give a consistant view for
+ * Test resources (Pods)
* Test projects
* Test cases
- * Test resources (Pods)
* Test results
</section>
@@ -87,17 +87,9 @@
# API overview
</section>
<section data-markdown>
- ## API in Brahmaputra
- * Tornado + MongoDB
- * Simple data models aggreed with the testing group
- * No unit tests
- * Wiki and rst documentation
- </section>
-
- <section data-markdown>
- ## API in Brahmaputra
+ ## API storage structure
![testapi](https://wiki.opnfv.org/download/attachments/2926452/results_collection_structure.png?version=1&modificationDate=1459196347000&api=v2 "OPNFV API page")
- </section>
+ </section>
<section data-markdown>
## API in Brahmaputra
![testapi](../img/testapi0.png)
@@ -105,6 +97,14 @@
</section>
<section data-markdown>
+ ## API in Brahmaputra
+ * Tornado + MongoDB
+ * Simple data models aggreed with the testing group
+ * No unit tests
+ * Wiki and rst documentation
+ </section>
+
+ <section data-markdown>
## Lessons learned in B.
* Wiki documentation is painful
* Result model too simple
@@ -137,8 +137,8 @@
testresults.opnfv.org/test/testapi => testresults.opnfv.org/test/api/v1
http://testresults.opnfv.org/test/api/v1/projects
- http://testresults.opnfv.org/test/api/v1/projects/yardstick/cases
- http://testresults.opnfv.org/test/api/v1/results?case=Tempest&period=1
+ http://testresults.opnfv.org/test/api/v1/projects/qtip/cases
+ http://testresults.opnfv.org/test/api/v1/results?case=Tempest&period=1
</section>
<section>
<h3>One new field for pods</h3>
diff --git a/testcases/Controllers/ODL/custom_tests/neutron/040__delete_ports.robot b/testcases/Controllers/ODL/custom_tests/neutron/040__delete_ports.robot
index 7260d78de..b934ca5d3 100644
--- a/testcases/Controllers/ODL/custom_tests/neutron/040__delete_ports.robot
+++ b/testcases/Controllers/ODL/custom_tests/neutron/040__delete_ports.robot
@@ -1,6 +1,6 @@
*** Settings ***
Documentation Checking Port deleted in OpenStack are deleted also in OpenDaylight
-Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+Suite Setup Start Suite
Suite Teardown Delete All Sessions
Library RequestsLibrary
Variables ../../../variables/Variables.py
@@ -23,7 +23,6 @@ Delete New Port
Check Port Deleted
[Documentation] Check port deleted in OpenDaylight
[Tags] Check port deleted OpenDaylight
- Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH}
${resp} get request ODLSession ${ODLREST}
Should be Equal As Strings ${resp.status_code} 200
${ODLResult} To Json ${resp.content}
@@ -31,3 +30,14 @@ Check Port Deleted
Log ${ODLResult}
${resp} get request ODLSession ${ODLREST}/${PORTID}
Should be Equal As Strings ${resp.status_code} 404
+
+*** Keywords ***
+Check Port Exists
+ [Arguments] ${portid}
+ ${resp} get request ODLSession ${ODLREST}/${portid}
+ Should be Equal As Strings ${resp.status_code} 200
+
+Start Suite
+ Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+ Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH}
+ Check Port Exists ${PORTID}
diff --git a/testcases/Controllers/ODL/custom_tests/neutron/050__delete_subnets.robot b/testcases/Controllers/ODL/custom_tests/neutron/050__delete_subnets.robot
index ede9123f4..16e396fd0 100644
--- a/testcases/Controllers/ODL/custom_tests/neutron/050__delete_subnets.robot
+++ b/testcases/Controllers/ODL/custom_tests/neutron/050__delete_subnets.robot
@@ -1,6 +1,6 @@
*** Settings ***
Documentation Checking Subnets deleted in OpenStack are deleted also in OpenDaylight
-Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+Suite Setup Start Suite
Suite Teardown Delete All Sessions
Library RequestsLibrary
Variables ../../../variables/Variables.py
@@ -23,7 +23,6 @@ Delete New subnet
Check New subnet deleted
[Documentation] Check subnet deleted in OpenDaylight
[Tags] Check subnet deleted OpenDaylight
- Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH}
${resp} get request ODLSession ${ODLREST}
Should be Equal As Strings ${resp.status_code} 200
${ODLResult} To Json ${resp.content}
@@ -31,3 +30,14 @@ Check New subnet deleted
Log ${ODLResult}
${resp} get request ODLSession ${ODLREST}/${SUBNETID}
Should be Equal As Strings ${resp.status_code} 404
+
+*** Keywords ***
+Check Subnet Exists
+ [Arguments] ${subnetid}
+ ${resp} get request ODLSession ${ODLREST}/${subnetid}
+ Should be Equal As Strings ${resp.status_code} 200
+
+Start Suite
+ Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+ Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH}
+ Check Subnet Exists ${SUBNETID}
diff --git a/testcases/Controllers/ODL/custom_tests/neutron/060__delete_networks.robot b/testcases/Controllers/ODL/custom_tests/neutron/060__delete_networks.robot
index d917632b5..574e13248 100644
--- a/testcases/Controllers/ODL/custom_tests/neutron/060__delete_networks.robot
+++ b/testcases/Controllers/ODL/custom_tests/neutron/060__delete_networks.robot
@@ -1,6 +1,6 @@
*** Settings ***
Documentation Checking Network deleted in OpenStack are deleted also in OpenDaylight
-Suite Setup Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+Suite Setup Start Suite
Suite Teardown Delete All Sessions
Library RequestsLibrary
Variables ../../../variables/Variables.py
@@ -23,11 +23,21 @@ Delete Network
Check Network deleted
[Documentation] Check network deleted in OpenDaylight
[Tags] Check Network OpenDaylight
- Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH}
${resp} get request ODLSession ${ODLREST}
Should be Equal As Strings ${resp.status_code} 200
${ODLResult} To Json ${resp.content}
Set Suite Variable ${ODLResult}
Log ${ODLResult}
- ${resp} get request ODLSession ${ODLREST}/${NetID}
+ ${resp} get request ODLSession ${ODLREST}/${NETID}
Should be Equal As Strings ${resp.status_code} 404
+
+*** Keywords ***
+Check Network Exists
+ [Arguments] ${netid}
+ ${resp} get request ODLSession ${ODLREST}/${netid}
+ Should be Equal As Strings ${resp.status_code} 200
+
+Start Suite
+ Create Session OSSession http://${NEUTRON}:9696 headers=${X-AUTH}
+ Create Session ODLSession http://${CONTROLLER}:${PORT} headers=${HEADERS} auth=${AUTH}
+ Check Network Exists ${NETID}
diff --git a/testcases/Controllers/ODL/odlreport2db.py b/testcases/Controllers/ODL/odlreport2db.py
index 075de5a86..0c9f341c9 100644
--- a/testcases/Controllers/ODL/odlreport2db.py
+++ b/testcases/Controllers/ODL/odlreport2db.py
@@ -115,7 +115,7 @@ def main(argv):
data['description'] = all_data['suite']['@name']
data['version'] = all_data['@generator']
data['test_project'] = "functest"
- data['case_name'] = "ODL"
+ data['case_name'] = "odl"
data['pod_name'] = pod
data['installer'] = installer
@@ -144,7 +144,7 @@ def main(argv):
if (tests_failed < 1):
status = "PASS"
- functest_utils.push_results_to_db("functest",
+ functest_utils.push_results_to_db(data['test_project'],
data['case_name'],
None,
start_time,
diff --git a/testcases/Controllers/ONOS/Teston/onosfunctest.py b/testcases/Controllers/ONOS/Teston/onosfunctest.py
index 38935c5dd..058114bde 100644
--- a/testcases/Controllers/ONOS/Teston/onosfunctest.py
+++ b/testcases/Controllers/ONOS/Teston/onosfunctest.py
@@ -192,7 +192,7 @@ def main():
logger.error("Unable to set ONOS criteria")
functest_utils.push_results_to_db("functest",
- "ONOS",
+ "onos",
logger,
start_time,
stop_time,
diff --git a/testcases/OpenStack/rally/run_rally-cert.py b/testcases/OpenStack/rally/run_rally-cert.py
index 7822c7e9e..8afbccaa3 100755
--- a/testcases/OpenStack/rally/run_rally-cert.py
+++ b/testcases/OpenStack/rally/run_rally-cert.py
@@ -535,11 +535,16 @@ def main():
if total_success >= 90:
status = "passed"
+ if args.sanity:
+ case_name = "rally_sanity"
+ else:
+ case_name = "rally_full"
+
if args.report:
logger.debug("Pushing Rally summary into DB...")
functest_utils.push_results_to_db("functest",
- "Rally",
- logger,
+ case_name,
+ None,
start_time,
stop_time,
status,
diff --git a/testcases/OpenStack/tempest/run_tempest.py b/testcases/OpenStack/tempest/run_tempest.py
index f59ba5263..a16ba26f7 100644
--- a/testcases/OpenStack/tempest/run_tempest.py
+++ b/testcases/OpenStack/tempest/run_tempest.py
@@ -333,11 +333,16 @@ def run_tempest(OPTION):
"tests": int(num_tests), "failures": int(num_failures),
"errors": error_logs}
logger.info("Results: " + str(json_results))
- # TODO split Tempest smoke and full
+ # split Tempest smoke and full
+ if "smoke" in args.mode:
+ case_name = "tempest_smoke_serial"
+ else:
+ case_name = "tempest_full_parallel"
+
try:
ft_utils.push_results_to_db("functest",
- "Tempest",
- logger,
+ case_name,
+ None,
start_time,
stop_time,
status,
diff --git a/testcases/OpenStack/vPing/vPing_ssh.py b/testcases/OpenStack/vPing/vPing_ssh.py
index 3f90bc214..1609dd95b 100644
--- a/testcases/OpenStack/vPing/vPing_ssh.py
+++ b/testcases/OpenStack/vPing/vPing_ssh.py
@@ -429,7 +429,7 @@ def main():
try:
logger.debug("Pushing vPing SSH results into DB...")
functest_utils.push_results_to_db("functest",
- "vPing",
+ "vping_ssh",
logger,
start_time,
stop_time,
diff --git a/testcases/OpenStack/vPing/vPing_userdata.py b/testcases/OpenStack/vPing/vPing_userdata.py
index 5b7d2d90f..ff7158ee3 100644
--- a/testcases/OpenStack/vPing/vPing_userdata.py
+++ b/testcases/OpenStack/vPing/vPing_userdata.py
@@ -362,7 +362,7 @@ def main():
try:
logger.debug("Pushing vPing userdata results into DB...")
functest_utils.push_results_to_db("functest",
- "vPing_userdata",
+ "vping_userdata",
logger,
start_time,
stop_time,
diff --git a/testcases/security_scan/security_scan.py b/testcases/security_scan/security_scan.py
index 7ed85b64d..5910331a0 100644
--- a/testcases/security_scan/security_scan.py
+++ b/testcases/security_scan/security_scan.py
@@ -16,6 +16,7 @@ import argparse
import connect
import datetime
import os
+import sys
from ConfigParser import SafeConfigParser
from keystoneclient.auth.identity import v2
@@ -27,8 +28,8 @@ __author__ = 'Luke Hinds (lhinds@redhat.com)'
__url__ = 'https://wiki.opnfv.org/display/functest/Functest+Security'
# Global vars
-oscapbin = 'sudo /bin/oscap'
INSTALLER_IP = os.getenv('INSTALLER_IP')
+oscapbin = 'sudo /bin/oscap'
# Apex Spefic var needed to query Undercloud
if os.getenv('OS_AUTH_URL') is None:
@@ -37,7 +38,7 @@ if os.getenv('OS_AUTH_URL') is None:
else:
OS_AUTH_URL = os.getenv('OS_AUTH_URL')
-# argparse
+# args
parser = argparse.ArgumentParser(description='OPNFV OpenSCAP Scanner')
parser.add_argument('--config', action='store', dest='cfgfile',
help='Config file', required=True)
@@ -58,7 +59,7 @@ setup.getockey()
com = 'sudo hiera admin_password'
setup = connect.SetUp(com)
keypass = setup.keystonepass()
-auth = v2.Password(auth_url='http://{0}:5000/v2.0'.format(OS_AUTH_URL),
+auth = v2.Password(auth_url=OS_AUTH_URL,
username='admin',
password=str(keypass).rstrip(),
tenant_name='admin')
diff --git a/testcases/vIMS/vIMS.py b/testcases/vIMS/vIMS.py
index 260cb4ce2..a35eba98d 100644
--- a/testcases/vIMS/vIMS.py
+++ b/testcases/vIMS/vIMS.py
@@ -122,8 +122,8 @@ def step_failure(step_name, error_msg):
if step_name == "sig_test":
status = "PASS"
functest_utils.push_results_to_db("functest",
- "vIMS",
- logger,
+ "vims",
+ None,
start_time,
stop_time,
status,
diff --git a/utils/openstack_utils.py b/utils/openstack_utils.py
index 4084e1fc2..646df7aec 100644
--- a/utils/openstack_utils.py
+++ b/utils/openstack_utils.py
@@ -41,6 +41,14 @@ def get_credentials(service):
requesting the credentials.
"""
creds = {}
+
+ # Check that the env vars exists:
+ envvars = ('OS_USERNAME', 'OS_PASSWORD', 'OS_AUTH_URL', 'OS_TENANT_NAME')
+ for envvar in envvars:
+ if os.getenv(envvar) is None:
+ print("'%s' is not exported as an env variable." % envvar)
+ exit(-1)
+
# Unfortunately, each of the OpenStack client will request slightly
# different entries in their credentials dict.
if service.lower() in ("nova", "cinder"):
@@ -53,11 +61,10 @@ def get_credentials(service):
# The most common way to pass these info to the script is to do it through
# environment variables.
creds.update({
- "username": os.environ.get('OS_USERNAME', "admin"),
- password: os.environ.get("OS_PASSWORD", 'admin'),
- "auth_url": os.environ.get("OS_AUTH_URL",
- "http://192.168.20.71:5000/v2.0"),
- tenant: os.environ.get("OS_TENANT_NAME", "admin"),
+ "username": os.environ.get("OS_USERNAME"),
+ password: os.environ.get("OS_PASSWORD"),
+ "auth_url": os.environ.get("OS_AUTH_URL"),
+ tenant: os.environ.get("OS_TENANT_NAME")
})
cacert = os.environ.get("OS_CACERT")
if cacert is not None: